利用matlab将一张图片分割成10×10的小图片,求程序!

2024年11月29日 05:28
有4个网友回答
网友(1):

% 图像切片代码

% my_imslice(filename)缺省方式,输出3×3 切片

% my_imslice(filename,rc,cc)输出 rc×cc 切片

function [rgb,mn] = my_imslice

p = imread(filename)

% 图片补齐及计算每片大小

[m,n,h] = size(p)

rp = rc*(fix(m/rc)+1*(mod(m,rc)==1))% 补齐后行像素

frow = fix(rp/rc)% 片行像素   

cp = cc*(fix(n/cc)+1*(mod(n,cc)==1))% 补齐后列像素

fcol = fix(cp/cc) % 片列像素 

mn = [frow fcol]

pp = p

pp(rp,cp,:) = 0; % 原始数据补齐

% 数据分片、显示

rgb = cell(rc,cc);

for r = 1:rc

end;

扩展资料:

Matlab包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。

新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。

参考资料来源:百度百科-MATLAB

网友(2):

楼上的太想当然了

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

如上代码已经过验证

网友(3):

挺简单。我就直接不开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

网友(4):

如何对许多图片进行分割成4X4的小图片