利用matlab如何将一幅图片按尺寸分割成若干小图片

作者&投稿:伯牙吾台姿 (若有异议请与网页底部的电邮联系)
利用matlab将一张图片分割成10×10的小图片,求程序!~

% 图像切片代码
% 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

把图片读入,用imread函数,得到一个矩阵,然后从矩阵中提取小矩阵。

这样的图是没有现成的函数帮你切割出来单个小圆的,我不知道是谁替你想出的这个方法,也不知道你有什么目的,但这绝对是个笨办法,只能靠机械式的数学算法,程序编出来没有适用性,不过如果你要是只针对这一个图我可以给你程序:设原始图片是im_i,你事先还必须测量出来边缘到第一个圆心的距离设为a1(长边)和b1(短边)以及两圆心之间的距离a2,才能进行初始化
a=a2/2;
A=a1+a;
B=b1+a;
[M,N] = size(im_i);
im_o = zeros(M,N);
im1=im_i(0:A,0:B);%第一个圆
for k1=A:a2:M
for k2=B:a2:N
.
.
.
剩下的就那么存就行了,你这是定位到圆,假如你想把图片直接切割成M*N块的图像直接用imwrite就行了

你需要先知道每一个O占的大小 比如占8*8个像素
SkipStep=8;%每一个O的大小 和遍历的补偿
M=8;
N=8;
n=0;%编号
I=imread('**.jpg');
I=rgb2gray(I);%灰度转化
[H,W]=size(I);
xStepNum = floor((W-N)/SkipStep+1);%朝负无穷方向取整 宽度方向block移动的次数
yStepNum = floor((H-M)/SkipStep+1);%朝负无穷方向取整 高度y方向移动的次数
for j=1:xStepNum%一列一列来取的
for m=1:yStepNum
n=n+1;
PImg=I((m-1)*SkipStep+1:(m-1)*SkipStep+M,(k-1)*SkipStep+1:(k-1)*SkipStep+N);%分割图像
y='jpg';
w=strcat(n,'.',y);
imwrite(PImg,w);%保存分割出来的图片 格式为jpg 名字为编号n
end
end
但是这样也把不是O的取出来了,你可以知道没有O的地方的n 你到时候不用即可

imread读进来就是个矩阵,想怎么分怎么分


matlab中如何求导?
以下是一个简单的示例代码,演示了如何在MATLAB中使用符号计算工具箱来求导:matlab 加载符号计算工具箱 syms x 定义符号表达式 y = x^2 + 3*x + 2;求一阶导数 dy = diff(y, x);disp(dy); % 输出: 2*x + 3 求二阶导数 d2y = diff(y, x, 2);disp(d2y); % 输出: 2 在这个...

MATLAB如何提取矩阵行列?
MATLAB提取矩阵的行列主要通过索引和冒号运算符来实现。在MATLAB中,矩阵是一个非常重要的数据结构,经常用于存储和处理多维数据。提取矩阵的特定行或列是数据分析和处理中的常见操作。MATLAB提供了灵活而强大的索引机制来访问和提取矩阵的行列数据。要提取矩阵的某一行,可以使用行索引。例如,如果有一个3x3...

matlab有什么用
MATLAB的用途与功能 MATLAB是一种用于数学和工程应用的编程语言和环境,广泛应用于数据分析、算法开发、模型仿真等多个领域。其主要用途包括:一、数据处理与可视化 MATLAB在数据处理方面表现出色,能够进行大规模数据的计算、分析和处理。其内置函数可以方便地进行各种数学运算,如矩阵运算、统计分析等。此外,...

如何用matlab改变示波器的显示范围
2、如果是simulink,那在示波器的图形区单击右键,选Axesproperties,就会调出Scopeproperties窗口,里面有Y-min,和Y-max两项,填入你希望的值就可以了。3、可以通过matlab使用。3)、Style设置每个波形输入的颜色、波形显示形式、坐标轴颜色、隐藏与否、波形线粗细等。2012matlab版怎么调SIMULINK示波器y轴的...

matlab如何表示指数函数
详细解释如下:1. 使用“^”运算符表示指数函数:在MATLAB中,可以使用“^”运算符来表示幂运算。当表示指数函数时,可以将指数作为上标放在变量后面。例如,表示e的指数函数,可以写成`y = exp`或者`y = e^x`的形式。这里的x是自变量,表示不同的数值,而e是自然对数的底数...

如何用MatLab计算元素之和?
在 MATLAB 中,计算元素之和的方法可以使用`sum`函数。`sum`函数接收一个向量或矩阵作为输入,并返回它们的元素之和。以下是计算向量和矩阵元素之和的示例:1. 计算向量元素之和:```MATLAB 创建一个向量 v = [1, 2, 3, 4, 5];计算向量元素之和 result = sum(v);显示结果 disp(result); ...

如何用Matlab求解级数的和??
然后,我们需要定义一个变量来存储级数的和。接下来,我们需要使用一个循环结构来计算级数的和。在每次迭代中,我们将函数 f(i) 的值加到总和中。最后,我们需要设置一个条件来决定何时停止迭代。在这个例子中,我们可以设置一个阈值,当新的项的值小于这个阈值时,我们就停止迭代。下面是对应的Matlab...

如何用Matlab画函数的图像
1、首先打开电脑上的“matlab”软件,主界面如下图所示。在命令行窗口输入命令,绘制出“y=x^2”的函数图像。点击回车键后,运行程序,绘制出的函数图像如下图所示。2、接下来绘制三维饼图,输入“pie3([53679])”。按回车键之后,可以看到绘制的三维饼图。然后输入相应的代码文件,如图所示:最后的...

matlab中如何换行?
description = '''这是一个多行字符串示例。这里可以包含多行文本和空格。''';这种情况下,字符串中的换行会被保留。4. 使用文本编辑器中的换行功能:如果在使用MATLAB的文本编辑器时,可以直接使用文本编辑器的换行功能。在大多数文本编辑器中,按下Enter键即可实现换行。这种换行不涉及MATLAB编程语言...

matlab怎么用
1、认识基本区域:上方为命令功能区,右侧为命令行输入栏,左上角为当前路径中文件夹详情,左下角为软件工作区。2、数据的导入:matlab经常被用于做数据可视化,数据分析等,这就需要数据的导入,然后选择你要导入的数据的文件。3、命令行的使用:在命令行中输入你的命令,这时只要点击确定,即可被执行。

永靖县13596517936: 利用matlab如何将一幅图片按尺寸分割成若干小图片 -
拔鱼消癌: 你需要先知道每一个O占的大小 比如占8*8个像素SkipStep=8;%每一个O的大小 和遍历的补偿M=8;N=8;n=0;%编号I=imread('**.jpg');I=rgb2gray(I);%灰度转化[H,W]...

永靖县13596517936: 如何利用matlab给图片标尺度 就是将一幅图片置于一个坐标轴内 -
拔鱼消癌: 有一个方法将四个二维矩阵合并.例如,四幅图像a,b,c,d.合并成新图像I. I=[a,b;c,d];逗号为左右合并,分号为上下合并.

永靖县13596517936: 怎样用matlab测量给定图片中的距离? -
拔鱼消癌: 有2种方法可以解决,供参考:1, 若已知道这两点的坐标,那么可以利用距离公式马上可以得到两点的距离;2, 若不知道两点的坐标,而又想在图像上估计两点间的距离的话,那么可以 figure,imshow(f) % 若f为某图像 d=imdistline % 此时可以在图像上对任意两点进行距离估计

永靖县13596517936: matlab中如何将图片分割成指定大小? -
拔鱼消癌: 把图片读入,用imread函数,得到一个矩阵,然后从矩阵中提取小矩阵.

永靖县13596517936: matlab图像按原尺寸存储问题 -
拔鱼消癌: imwrite可以保存为原图大小的啊 图形窗口超过显示器屏幕仅仅只会让显示时的图片缩小,保存的图片还是维持原来大小的

永靖县13596517936: matlab怎么将一副10*10cm的 彩色图像分割成2*2cm的图像? -
拔鱼消癌: imread读入图 将矩阵分块后 imwrite写图

永靖县13596517936: 用matlab将一副图像显示长和宽相等,语句怎么写.谢谢啦~ -
拔鱼消癌: 希望对你有帮助!在给一个初始值后,运算后好像没什么变化,还有对于sim函数的变量 [t,x,y]=sim(f1,tspan,options,ut) 其中f1为simulink的模型名,tspan为仿真时间控制变量;参数options为模型控制 参数;ut为外部输入向量. ut在我这个题目中...

永靖县13596517936: matlab如何取图像的一定长度 -
拔鱼消癌: n=length(y); %y是图像的值序列,n是y 的总长度根据n的长度取你要的的长度区间(a,b)yt=y(a:b); %this is it.

永靖县13596517936: 怎样用matlab从一张图片中截取一小张图片 -
拔鱼消癌: 假设1.有一张图交myMap是256*256的,提取出来放在newMap里面2.从myMap的(n,m)的坐标开始提取.使用的坐标是右上角为原点,x水平向右,y垂直向下.3.图像是rgb的%matlab的图像坐标是右上原点,x垂直向下 newMap(1:32,1:32,:)=...

永靖县13596517936: 如何用matlab中的子图法把两个图片的尺寸归一化 -
拔鱼消癌: matlab中的归一化处理有三种方法1. premnmx、postmnmx、tramnmx2. restd、poststd、trastd3. 自己编程(1)线性函数转换,表达式如下:y=(x-MinValue)/(MaxValue-MinValue) 说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网