필터 지우기
필터 지우기

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

조회 수: 5 (최근 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!