Filter löschen
Filter löschen

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

8 Ansichten (letzte 30 Tage)
KENji
KENji am 14 Sep. 2017
Beantwortet: Jiro Doke am 14 Sep. 2017
フォルダ内にある画像ファイルを読み込んで、指定サイズに分割するコードを考えています。
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);
入れ子関数で反復計算を行うにはどうするのが良いのでしょうか? よろしくお願い致します。

Akzeptierte Antwort

Jiro Doke
Jiro Doke am 14 Sep. 2017
入れ子関数とはこのようなものですが
そのことについて聞かれているのでしょうか?上のコードからどう入れ子関数に関係しているのかいまいちわかりません。最終的にやろうとしていることは何ですか?見る限り現在のフォルダー内の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

Weitere Antworten (0)

Kategorien

Mehr zu プログラミング finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!