用matlab对图像进行批量旋转

%增加数据,通过对图像旋转,并将图像的大小调整回128*128操作来增加数据,****测试数据集
close all;
clear;
%首先创建了5个用来存放旋转后图像的路径,旋转角度分别为0.1,0.5,2.4,4.3和6.3
WTR1='I:\手掌静脉图像\data_rotate_small_resize\test\data_rotate_0.1_resize\';
WTR2='I:\手掌静脉图像\data_rotate_small_resize\test\data_rotate_0.5_resize\';
WTR3='I:\手掌静脉图像\data_rotate_small_resize\test\data_rotate_2.4_resize\';
WTR4='I:\手掌静脉图像\data_rotate_small_resize\test\data_rotate_4.3_resize\';
WTR5='I:\手掌静脉图像\data_rotate_small_resize\test\data_rotate_6.3_resize\';


new_folder1 = WTR1; % new_folder 保存要创建的文件夹,是绝对路径+文件夹名称
new_folder2 = WTR2;
new_folder3 = WTR3;
new_folder4 = WTR4;
new_folder5 = WTR5;

mkdir(new_folder1);  % 用mkdir()函数创建文件夹
mkdir(new_folder2);
mkdir(new_folder3);
mkdir(new_folder4);
mkdir(new_folder5);


%原图像放在“PolyU的ROI增强图像”文件夹下,有500个文件夹,标号分别是0001-0500,每个文件夹下有12张图片,标号分别为1_1.jpg到1_12.jpg
for ki=1:500
    for j=10:12
       I0=['I:\科\手掌静脉\数据库\ROI Database\PolyU的ROI增强图像\',sprintf('%04d',ki),'\','1_',num2str(j),'.jpg'];
       I=imread(I0);%读取原图像
       I01=imrotate(I,0.1);%用imrotate命令将图像旋转0.1°
       I11=I01(2:128,2:128);%舍弃旋转后图像的第一行和第一类,方便像素数量一致进行下一步的imresize操作。
       I1=imresize(I11,[128,128]);
       I02=imrotate(I,0.5);
       I12=I02(4:129,4:129);
       I2=imresize(I12,[128,128]);
       I03=imrotate(I,2.4);
       I13=I03(8:130,8:130);
       I3=imresize(I13,[128,128]);
       I04=imrotate(I,4.3);
       I14=I04(12:130,12:130);
       I4=imresize(I14,[128,128]);
       I05=imrotate(I,6.3);
       I15=I05(16:130,16:130);
       I5=imresize(I15,[128,128]);


%将旋转后的图像写入设置好的路径中      WTR11=strcat(WTR1,num2str(ki),'_',num2str(180+j),'.jpg');
       WTR12=strcat(WTR2,num2str(ki),'_',num2str(192+j),'.jpg');
       WTR13=strcat(WTR3,num2str(ki),'_',num2str(204+j),'.jpg');
       WTR14=strcat(WTR4,num2str(ki),'_',num2str(216+j),'.jpg');
       WTR15=strcat(WTR5,num2str(ki),'_',num2str(228+j),'.jpg');


       imwrite(I1,WTR11);
       imwrite(I2,WTR12);
       imwrite(I3,WTR13);
       imwrite(I4,WTR14);
       imwrite(I5,WTR15);

    end
end

你可能感兴趣的:(matlab)