MATLAB如何将图片切分成任意M*N块
我们在图像处理的时候,有时会不可避免的将图像分块来进行操作,但是图像的像素不可能每次都是可以被整除的,所以我们需要imresize函数对图像的尺寸进行修改,以便可以完成M*N块的分割。
代码如下所示
M=5;N=4;%M、N选择
rgb=imread('下载 (1).jpg');
[m,n,c]=size(rgb);
xb=round(m/M)*M;yb=round(n/N)*N;%找到能被整除的M,N
rgb=imresize(rgb,[xb,yb]);
[m,n,c]=size(rgb);
count =1;
for i=1:M
for j=1:N
% 1) 分块
block = rgb((i-1)*m/M+1:m/M*i,(j-1)*n/N+1:j*n/N,:); % 图像分成块
%写上要对每一块的操作
subplot(M,N,count);
imshow(block);
count = count+1;
end
end
我们所选的原图为:
通过分割后通过subplot可以看到:

我们成功地将图片进行了分块,但是这种操作会稍微改变图像的长宽,还是会有一定的影响。
本文介绍了如何使用MATLAB将图像切分成任意M*N块。在图像处理中,为适应不同需求,有时需对图像进行不均匀尺寸的分割。通过imresize函数调整图像尺寸,然后进行分割,可以实现这一目标。虽然这种方法可能导致图像尺寸微小变化,但能完成分块操作。
1万+

被折叠的 条评论
为什么被折叠?



