入れ子関数での反復計算、ループのさせ方

4 次查看(过去 30 天)
KENji
KENji 2017-9-14
回答: Jiro Doke 2017-9-14
フォルダ内にある画像ファイルを読み込んで、指定サイズに分割するコードを考えています。
jpegFiles = dir('*.jpg');
numfiles = length(jpegFiles);
mydata = cell(1, numfiles);
for k = 1:numfiles
mydata{k} = imread(jpegFiles(k).name);
end
画像の読み込みまでは、分かったのですが、 このコードのfor文を書き換えて、入れ子関数から、以下のようなコードを入れて画像を分割したいと考えています。
fun=@(bs) imwrite(bs.data,...
['./', int2str(bs.location(1)), '_', int2str(bs.location(2)), '.jpg']);
blockproc(mydata,[200 200] , fun);
入れ子関数で反復計算を行うにはどうするのが良いのでしょうか? よろしくお願い致します。

采纳的回答

Jiro Doke
Jiro Doke 2017-9-14
入れ子関数とはこのようなものですが
そのことについて聞かれているのでしょうか?上のコードからどう入れ子関数に関係しているのかいまいちわかりません。最終的にやろうとしていることは何ですか?見る限り現在のフォルダー内のJPGファイルをすべて読み込んだようですが、その後それぞれの画像を200x200の画像に分割したい、という事でしょうか。
もしそうだとしたら、入れ子関数は必要なく、普通に for ループを使えば良いと思います。
for k = 1:numfiles
fun=@(bs) imwrite(bs.data,...
['./', int2str(k), '_', int2str(bs.location(1)), '_', int2str(bs.location(2)), '.jpg']);
blockproc(mydata{k},[200 200] , fun);
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 プログラミング 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!