ピクセルごとに非線形最小二乗法を行い、その画像を出力する方法についてご教示ください
1 回表示 (過去 30 日間)
古いコメントを表示
各画像のピクセルごとに最小二乗法を行い、最終的にその最適化された値を画像として読み込みたいです。モデル関数は既知で、tとyも既知です。64*64などのmatrixになると関数をどのように設定すればいいか分からず、また、エラーが起こりピクセルごとの計算がうまくいきません。
-------------------------------------------------------------------------------------------------------------------- x1 = double(imread('1.png')); x2 = double(imread('2.png')); x3 = double(imread('3.png'));
t = [zeros(size(x1)) repmat(20,size(x1)) repmat(30,size(x1))];
y = [ones(size(x1)) x2./x1 x3./x1];
f = (exp(-x(1)*t) + exp(-(x(1)+x(2))*t)) - y;
%モデル関数とした場合に、
プログラムで利用できる最大変数サイズを超えました。
エラー lsqncommon (line 139) Jstr = sparse(ones(Jrows,Jcols));
エラー lsqnonlin (line 237) [xCurrent,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...
エラー lm (line 31) [x,resnorm,residual,exitflag,output] = lsqnonlin(@myfun1,x0); % Invoke optimizer
------------------------------------------------------------------------------------------------------------------ 「各ピクセルに対するlsqnonlin関数の使い方」と「各ピクセルごとに連続的に計算を行う」という点が分かっていません。何卒ご教示ください。
3 件のコメント
Tohru Kikawada
2017 年 1 月 20 日
エラーメッセージが出るプログラムの全体を見せていただけないでしょうか。
Could you let me know the whole code that emits the error.
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Get Started with MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!