MATLAB 将图像分成m×n的小子块

在做实验的时候有这样的一个需求:将一幅图像分成m×n的子块,然后对每一个子块进行操作,最后将经过操作的子块合成原来一整幅图像。
这里我给出的m、n是正好被原图长宽整除的数。

clear,clc;close all;
I = imread('wechat.jpg');
I = im2double(I); %将图像读取为double类型
[M, N, C] = size(I); %获取图像的大小
m = 730/2; %每张小图的长
n = 1080/2;%每张小图的宽
count = 1; %计数
rebulid = zeros(M, N, C); %生成与原图大小的全黑图,用于图像重建
figure(1);
for i = 1:M/m
    for j = 1:N/n
        block = I((i-1)*m+1 : i*m, (j-1)*n+1 : j*n, :); %生成小图
        imwrite(block, strcat('第',num2str(count), '幅图','.jpg')) %保存每张小图
        subplot(2,2,count),imshow(block),title(['第',num2str(count),'幅图']) %将小图显示在一张图中
        count = count + 1; %计数加一
        rebuild((i-1)*m+1:i*m, (j-1)*n+1:j*n, :) = block; %重建原图
    end
end
figure(2);imshow(rebuild); title('重建原图')%显示原图

 

  • 15
    点赞
  • 152
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值