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

 我来答
kinfar
2011-03-18 · TA获得超过976个赞
知道小有建树答主
回答量:208
采纳率:50%
帮助的人:250万
展开全部
这样的图是没有现成的函数帮你切割出来单个小圆的,我不知道是谁替你想出的这个方法,也不知道你有什么目的,但这绝对是个笨办法,只能靠机械式的数学算法,程序编出来没有适用性,不过如果你要是只针对这一个图我可以给你程序:设原始图片是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就行了
kuanghulin
推荐于2016-01-13 · TA获得超过516个赞
知道答主
回答量:162
采纳率:0%
帮助的人:210万
展开全部
你需要先知道每一个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 你到时候不用即可
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
9192631770
2011-03-18 · TA获得超过7308个赞
知道大有可为答主
回答量:3138
采纳率:50%
帮助的人:2966万
展开全部
imread读进来就是个矩阵,想怎么分怎么分
追问
就是这样的图片,按尺寸将每一个“O”分割出来,并编号,便于以后处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式