Remove objects from binary image

3 views (last 30 days)
Gytis Raudonius
Gytis Raudonius on 9 Apr 2016
Answered: Torkan on 18 Oct 2019
Hi, i removed objects who are small, but i need also remove objets who is by formula height > width, so i need remove objects who have biggest height than width, i set bounding box but i stop.
CC = bwconncomp(BW1, 8);
S = regionprops(CC, 'Area');
L = labelmatrix(CC);
P = 1500;
BW2 = ismember(L, find([S.Area] >= P));
figure, imshow(BW2);
st = regionprops(BW2, 'BoundingBox', 'Orientation' );
L = labelmatrix(CC);
for k = 1 : length(st)
thisBB = st(k).BoundingBox;
rectangle('Position', [thisBB(1),thisBB(2),thisBB(3),thisBB(4)],...
'EdgeColor','r','LineWidth',2 )
Thanks for your answers

Answers (2)

Walter Roberson
Walter Roberson on 9 Apr 2016
BB = vertcat(st.BoundingBox);
BB_W = BB(:,3);
BB_H = BB(::4);
wrong_shape = BB_H > BB_W;
st(wrong_shape) = []; %get rid of them
  1 Comment
Torkan on 18 Oct 2019
Hi Walter,
How can now we show those objects?

Sign in to comment.

Torkan on 18 Oct 2019
We should remove the last line from the BW2 , right? How can we do that?

Community Treasure Hunt

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

Start Hunting!