Matlab 图像分块(不重叠、重叠)

一,不重叠分块

效果:

 

clear;
clc;

img = imread('/media/P1.jpg');

%% resize the image into the new size with 500x*500y
r_img = img(:, :, 1);
g_img = img(:, :, 2);
b_img = img(:, :, 3);
[row, col] = size(r_img);
new_row = ceil(row/500) * 500;
new_col = ceil(col/500) * 500;
new_r_img = imresize(r_img, [new_row new_col], 'bilinear');
new_g_img = imresize(g_img, [new_row new_col], 'bilinear');
new_b_img = imresize(b_img, [new_row new_col], 'bilinear');
new_img(:, :, 1) = new_r_img;
new_img(:, :, 2) = new_g_img;
new_img(:, :, 3) = new_b_img;

[y_row y_col dim] = size(new_img);
row_blk_num = y_row/500;  % 3
col_blk_num = y_col/500;  % 6


no overlap
blocks = 1;
for i = 1:row_blk_num
    for j = 1:col_blk_num
        disp(blocks);
        block = new_img((i - 1) * 500 + 1 : i * 500, (j - 1) * 500 + 1 : j * 500, :);
        imwrite(block, ['./' num2str(blocks) '.jpg']);
        blocks = blocks + 1;
    end
end

 

二,重叠(重叠大小为块的一半)

效果(部分)

代码:

clear;
clc;

img = imread('/media/P1.jpg');

%% resize the image into the new size with 16x*16y
r_img = img(:, :, 1);
g_img = img(:, :, 2);
b_img = img(:, :, 3);
[row, col] = size(r_img);
new_row = ceil(row/500) * 500;
new_col = ceil(col/500) * 500;
new_r_img = imresize(r_img, [new_row new_col], 'bilinear');
new_g_img = imresize(g_img, [new_row new_col], 'bilinear');
new_b_img = imresize(b_img, [new_row new_col], 'bilinear');
new_img(:, :, 1) = new_r_img;
new_img(:, :, 2) = new_g_img;
new_img(:, :, 3) = new_b_img;


[y_row y_col dim] = size(new_img);
row_blk_num = (y_row-250)/250;  % 5
col_blk_num = (y_col-250)/250;  % 11


blocks = 1;
for i = 1:row_blk_num
    for j = 1:col_blk_num
        disp(blocks);
        block = new_img((i - 1) * 250 + 1 : (i+1) * 250, (j - 1) * 250 + 1 : (j+1) * 250, :);
        imwrite(block, ['./' num2str(blocks) '.jpg']);
        blocks = blocks + 1;
    end
end

 

  • 14
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值