ファイル名に通し番号を含めたい(brockproc関数のループ処理)
Show older comments
以下を参考に画像を9等分しようとしています。
これを画像11枚についてループ処理したいです。ファイル名に連番(i)をふくめて保存するにはどうすればいいでしょうか。
上記では、以下のように別ファイルに関数cropAndSaveBlock.mを作成し、
function cropAndSaveBlock(bs)
save_loc = 'D:\easypcctest\20220408\cuts';
fileName = [save_loc, '\img', 'cut',int2str(bs.location(1)), '_', int2str(bs.location(2)), '.jpg'];
imwrite(bs.data, fileName)
end
それを本コードで呼び出しています。
%im_nameに画像名を格納しています。ファイル名以外はうまくいきます
for i=1:size(im_name,1)
I=imread(im_name{i});
[a, b]=size(I);
blockSize =[a/3 b/3];
blockproc(I, blockSize, @cropAndSaveBlock)
end
①cropAndSaveBlock.mのfileNameをいじってもうまくいきません(iがコードに属する変数ではないため?)
fileName = [save_loc, '\img',int2str(i), 'cut',int2str(bs.location(1)), '_', int2str(bs.location(2)), '.jpg'];
②cropAndSaveBlock.mの中身を本コードに直接書けばファイル名にiを入れられますが、brockproc関数はそのようなことが可能ではないという理解であっていますか(やってみるとbs.locationを解決できませんといわれます)
こうした別の関数を呼び出す操作に慣れていません。よろしくお願いいたします。
Accepted Answer
More Answers (0)
Categories
Find more on 近傍処理とブロック処理 in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!