注意:
直接下拉有完整代码
如果要用Matlab来进行深度学习或者训练一下模型,对图像批量处理是少不了的,尤其是对文件的操作。
这就要用到fullfile和dir命令……
首先,fullfile命令是可以构成地址字符串的,也就是
d = fullfile('C:','Matlab','Data')
等价于d = C:\Matlab\Data
其次,就是dir命令,我觉得比较好用的几条:
1.dir ( ’ . ’ ) 列出当前目录下的所有子文件夹和子文件
2.dir ( ’ C:\Matlab ‘) 列出指定目录下的所有子文件夹和文件
3.dir( ’ *.jpg’ )列出当前目录后缀是.jpg文件的所有文件
然后,根据以上两条命令,我们就可以直接对Matlab文件中子文件下的图片进行批量操作。
我们开始需要找到图片文件的目录,path = 'C:\Desktop\ll'
然后利用dir命令导入该目录下的所有子文件sudir = dir(path)
然后,在用个for循环遍历所有子文件
for i=1:length(sudir)
subdir = fullfile(path,sudir(i).name)
并且每次遍历某个子文件时,我们在进入该子文件中对该目录下所有的图片进行操作因此,我们还得用一个for循环进行遍历,这次是遍历所有图片
cd(subdir)%这里是进入每个子文件夹内部
d = dir(['*.jpg'])
for j=1:length(d)
I = imread(d(j).name)
I = imresize(I,[227,227])%这里我是对图片进行统一规格
imwrite(I,d(j).name)%这里将图片修改后覆盖原来的图片
好了,我附上我的完整代码
clc
clear
clear all
path = 'C:\Desktop\ll'
sudir = dir(path)
for i=1:length(sudir)
subdir = fullfile(path,sudir(i).name)
cd(subdir)
d = dir(['*.jpg'])
for j=1:length(d)
I = imread(d(j).name)
I = imresize(I,[32,32])
imwrite(I,d(j).name)
end
end