用matlab对图像进行批量旋转

来源:互联网 发布:网络暴力数据分析 编辑:程序博客网 时间:2024/04/28 08:53
%增加数据,通过对图像旋转,并将图像的大小调整回128*128操作来增加数据,****测试数据集close all;clear;%首先创建了5个用来存放旋转后图像的路径,旋转角度分别为0.1,0.5,2.4,4.3和6.3WTR1='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.jpgfor 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);    endend
0 0
原创粉丝点击