MATLAB如何将图片切分成任意M*N块

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

MATLAB如何将图片切分成任意M*N块

我们在图像处理的时候,有时会不可避免的将图像分块来进行操作,但是图像的像素不可能每次都是可以被整除的,所以我们需要imresize函数对图像的尺寸进行修改,以便可以完成M*N块的分割。
代码如下所示

M=5;N=4;%MN选择
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可以看到:

我们成功地将图片进行了分块,但是这种操作会稍微改变图像的长宽,还是会有一定的影响。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值