相信这个问题应该是每一个刚刚接触图像处理的小伙伴们在一开始最需要掌握的技能,否则一张一张的读取图片费时费力,并且遇到大型的项目工程,成百上千张图片一张一张进行读取也是非常不可行的。所以这里也为我自己总结一下这个方法,以便以后自己查阅。
示例代码:
clear; clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %参数配置 ObjDir = 'E:\test1\';%目标图片文件夹路径 OutputDir = 'E:\test2\';%输出文件夹路径 tnum = 3;%目标图片数目 %注: % 目标图片命名为:i.png(i取1到tnum) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i = 1:1:tnum bgFile = [ObjDir,int2str(i),'.png'];% 读入图片的完整路径 Background = imread(bgFile); % 读入图片、灰度化 figure(i),imshow(Background),title('修改后的图像') saveas(i,[OutputDir,int2str(i),'_bw.png']);%将处理后的图片保存到目标文件夹 end
第一步:设置路径,批量读取文件夹中的图片:
关键在于目标图片的完整路径的设置,在这里使用matlab中的方括号[]进行路径的整合
bgFile = [ObjDir,int2str(i),'.png'];% 读入图片的完整路径 int2str()函数:将整形转化为字符串;所以完整的路径就是 ObjDir+i+‘.png’ 即为:'E:\test1\1.png'再加入循环,即可批量读入图片
第二步:对图像进行处理
此步骤在于具体的图像处理,看应用场景的情况,我这里只是简单的对图片加上了相应的标题
注意:Matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象。每一个这样的窗口都有一些属性,例如窗口的尺寸、位置,等等。figure中的数字代表的是当前窗口的句柄,在下面的保存中可以用到
第三步:保存图像于输出路径
Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】
saveas(figure_handle,filename,fileformat) 第一个参数为需要保存图像的句柄,也可以用gcf来获取,然后可以加上图像的保存路径,使用方括号进行整合大功告成~~对应完整的程序应该可以理解吧,其中的函数不理解的可以自行help XX查看源码讲解