当前位置:编程学习 > Matlab >>

利用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程序是书上的,但是我运行就是会出错求解释求更正

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,