Remove objects from binary image

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 )
end
Thanks for your answers

Antworten (2)

Walter Roberson
Walter Roberson am 9 Apr. 2016

0 Stimmen

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 Kommentar

Torkan
Torkan am 18 Okt. 2019
Hi Walter,
How can now we show those objects?

Melden Sie sich an, um zu kommentieren.

Torkan
Torkan am 18 Okt. 2019

0 Stimmen

We should remove the last line from the BW2 , right? How can we do that?

Gefragt:

am 9 Apr. 2016

Beantwortet:

am 18 Okt. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by