效果如图
可根据选择要切割得行数和列数修改数字即可
程序如下:
max_hang=4;
max_lie=4;
file_path='D:\photo\'; %图像文件夹路径
img_path_list=dir(strcat(file_path,'*.jpg'));%获取该文件夹下所有jpg格式的图像,是一个结构体,有data,name等成员
img_num=length(img_path_list);%获取图像的数量
if img_num >0 %文件夹下有图
for j=1:img_num %逐一读取图像
image_name=img_path_list(j).name;%图像名
image=imread(strcat(file_path,image_name));%拼接图像名
[ar,ac,ak] = size(image);%取图像的行数r和列数c
gao=ceil(ar/max_hang);
chang=ceil(ac/max_lie);
for i = 1:max_hang
for t = 1:max_lie
chang1=chang*(t-1)+1;
chang2=chang*t;
gao1=gao*(i-1)+1;
gao2=gao*i;
if gao2>=ar
gao2=ar;
end
if chang2>=ac
chang2=ac;
end
img_save = image(gao1:gao2,chang1:chang2,:);
% img_save =imcrop(image, [118, 85, 255, 255]);
imshow(img_save);
imwrite(img_save, strcat('D:\save\',num2str(j),'-', num2str(i),num2str(t),".jpg")); % 保存文件
end
end
end
end