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

5 visualizaciones (últimos 30 días)
KENji
KENji el 14 de Sept. de 2017
Respondida: Jiro Doke el 14 de Sept. de 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);
入れ子関数で反復計算を行うにはどうするのが良いのでしょうか? よろしくお願い致します。

Respuesta aceptada

Jiro Doke
Jiro Doke el 14 de Sept. de 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

Más respuestas (0)

Categorías

Más información sobre プログラミング en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!