% 图像切片代码
% 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
楼上的太想当然了
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
如何对许多图片进行分割成4X4的小图片