Clear Filters
Clear Filters

is there a way so that we extract a particular block from an 8x8 image?

4 views (last 30 days)
i've an image of size 8x8 blocks i.e total of 64 blocks.
i want to extract or show only few blocks...
how can i do so?
for row = 1 : blockSizeR : rows
for col = 1 : blockSizeC : columns
row1 = row;
row2 = row1 + blockSizeR - 1;
row2 = min(rows, row2);
% Determine starting and ending columns.
col1 = col;
col2 = col1 + blockSizeC - 1;
col2 = min(columns, col2);
% Extract out the block into a single subimage.
oneBlock = grayImage(row1:row2, col1:col2);
% Specify the location for display of the image.
subplot(6,8, blockNumber);
imshow(oneBlock);
end
end
the above code shows all the 64 blocks..
what should i do, so that only block 10 and block 34 is show rather than all the blocks..
if there is a way tell me how to do it..
  5 Comments
Raman
Raman on 11 Mar 2013
Edited: Raman on 11 Mar 2013
how can can i do so? can u help me sir by writing few lines of code plz..
reply plz

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 12 Mar 2013
Edited: Walter Roberson on 12 Mar 2013
blockrows =8; blockcols = 8;
[blockcol, blockcol] = ind2sub( [blockcols, blockrows], BlockNumber]
colstart = (blockcol-1) * blockSizeC + 1;
rowstart = (blockrow - 1) * blockSizeR + 1;
oneBlock = grayImage(rowstart : rowstart + blockSizeR - 1, colstart : colstart + blockSizeC - 1);
  3 Comments
Walter Roberson
Walter Roberson on 12 Mar 2013
Sorry, should have been ind2sub() rather than idx2subs()
Do not enclose this in a "for" loop. The above is the complete code to extract by block number. For example to extract block #34, use those lines of code with BlockNumber = 34

Sign in to comment.

More Answers (0)

Categories

Find more on Images in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!