how to divide an image into 16x16 non overlapping blocks

조회 수: 10 (최근 30일)
Navya George
Navya George 2017년 1월 28일
댓글: Walter Roberson 2022년 8월 16일
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