how to divide an image into 16x16 non overlapping blocks

2 次查看(过去 30 天)
how to divide an image into 16x16 non overlapping blocks for finding the local binary pattern in the further steps
  1 个评论
Navya George
Navya George 2017-1-30
we are first transforming the input image into YCbCr format and then dividing it into 16*16 blocks.So can we apply the above LBP algorithm to find the LBPcode of each block

请先登录,再进行评论。

采纳的回答

John Chilleri
John Chilleri 2017-1-28
编辑:John Chilleri 2017-1-28
Hello,
Assuming your image has size m x n where m and n are multiples of 16:
YourImage = im2double(YourImage);
[m,n] = size(YourImage);
Blocks = cell(m/16,n/16);
counti = 0;
for i = 1:16:m-15
counti = counti + 1;
countj = 0;
for j = 1:16:n-15
countj = countj + 1;
Blocks{counti,countj} = YourImage(i:i+15,j:j+15);
end
end
You can access the blocks by calling Blocks{i,j}.
Hope this helps!
  9 个评论
Hadeel
Hadeel 2022-8-16
yes,please i want to display all the blocks of subplot in saperate axies
Walter Roberson
Walter Roberson 2022-8-16
img = imresize(imread('flamingos.jpg'), [256 256]);
[rows, cols, panes] = size(img);
rb = rows/16; cb = cols/16;
tiledlayout(rb, cb, 'tilespacing', 'tight');
blockproc(img, [16 16], @dispblock);
function h = dispblock(block_struct)
nexttile();
image(block_struct.data);
axis off
%block_struct.location, hh
h = [];
end

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2017-1-28
编辑:Image Analyst 2017-1-28
This is a FAQ. See a couple of different ways to do this in the FAQ document: http://matlab.wikia.com/wiki/FAQ#How_do_I_split_an_image_into_non-overlapping_blocks.3F
See my attached demo for LBP.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by