こんにちは。
画像を射影変換するところなのですが、1つのファイルから複数の画像を読み取り、処理しようと試みました。
以下のコードで実行したのですが、2枚しか処理されません。手動で一枚だけ読み取れば射影変換のところは動くのですが、、、
やりたいこととしては、下記コードのI=imread(b{i});で読み取った画像全てを射影変換し、ファイル(face)に全て格納したいです。
何かアドバイス等いただけると幸いです。よろしくお願いいたします。
clc;clear;
rootfolder = fullfile('C:\Users\*** Lab\Desktop\MATLAB\フリー素材');
j = dir('*.jpg');
a=struct2table(j);
b=a.name;
for i=1:size(b,1)
I=imread(b{i});
mkdir('face');
oldFolder = cd('face');
for theta = -5:5
for s=-2:2
for c=-2:2
for size=7:8
o=0;o=o+1;
tm = projective2d([cosd(theta*2) -sind(theta*2) 0.0002*s; ...
sind(theta*2) cosd(theta*2) 0.0002*c; ...
0 0 1]);
outputImage = imwarp(I,tm);
outputImage2 = imresize(outputImage,0.1*size);
imwrite(outputImage,(sprintf('Oimg%d.png',o)));
imwrite(outputImage2,(sprintf('ORSimg%d.png',o)));
end
end
end
end
cd(oldFolder);
end