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

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 Center および File Exchangeプログラミング についてさらに検索

Community Treasure Hunt

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

Start Hunting!