利用matlab将一张图片分割成10×10的小图片,求程序!
追问:请问,我读取一个图片路径是E:\a.bmp,那个原始路径和分割图片后的路径怎么修改,由于我没学过这东西,毕设还需要用,麻烦您多费心了!我自己修改过后还是分不出来。。
直接改这两句就行了
src_path='E:\a.bmp'; %原始图片路径
dst_path='E:\pic_div\';%分割图片后保存路径
答案:楼上的太想当然了
clc
clear
src_path='c:\1.jpg'; %原始图片路径
dst_path='c:\pic_div\';%分割图片后保存路径
mkdir(dst_path);%路径不存在则生成
A = imread(src_path); %读入原始图片
[m,n,l] = size(A); %获得尺寸
for i = 1:10
for j = 1:10
m_start=1+(i-1)*fix(m/10);
m_end=i*fix(m/10);
n_start=1+(j-1)*fix(n/10);
n_end=j*fix(n/10);
AA=A(m_start:m_end,n_start:n_end,:); %将每块读入矩阵
imwrite(AA,[dst_path num2str(i) '-' num2str(j) '.jpg'],'jpg'); %保存每块图片
end
end
如上代码已经过验证
其他:挺简单。我就直接不开matlab在上面写了。
A = imread('abc.png');
[m,n] = size(A);
for i = 1:10:m
for j = 1:10:n
imwrite(A(i:i+10,j:j+10),[num2str(i) num2str(j) '.png'],'png');
end
end 楼上的同学,你的写法有问题,
当i=11时
A(i:i+10,j:j+10)就是A(11:21,11:21),这是不对的,应该是A(11:20,11:2),
挺简单。我就直接不开matlab在上面写了。
A = imread('abc.png');
[m,n] = size(A);
for i = 1:10:m
for j = 1:10:n
imwrite(A(i:i+10-1,j:j+10-1),[num2str(i) num2str(j) '.png'],'png');
end
end
上一个:matlab程序错位,求教
下一个:下面matlab程序是书上的,但是我运行就是会出错求解释求更正