Detect largest bounding box and applying centroid.
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sarmad Paracha
am 6 Dez. 2018
Kommentiert: Sarmad Paracha
am 3 Mär. 2019
I have written this code to use bounding box and centroid properties. Due to noise of the image i am getting many unwated boxes and centroids. so i want to edit this code so that only the biggest bounded box is shown and centroid is shown only on that box. i need help in this regards.
binaryY = im2bw(rgb2gray(F));
Ibw1 = imfill(binaryY,'holes');
K1 = medfilt2(Ibw1);
subplot(2,2,2);
imshow(K1, []);
%centrod
Ilabel1 = bwlabel(K1);
stat = regionprops(Ilabel1,'centroid');
subplot(2,2,3);
imshow(Im1); hold on;
for x = 1: numel(stat)
plot(stat(x).Centroid(1),stat(x).Centroid(2),'r+');
end
% Make sure image is not artificially stretched because of screen's aspect ratio.
[L,num]=bwlabel(K1);
bboxes=regionprops(L,'BoundingBox');
subplot(2,2,4)
imshow(Im1),title('Bounding Box');
hold on;
for k=1:length(bboxes)
CurrBB=bboxes(k).BoundingBox;
rectangle('position',[CurrBB(1),CurrBB(2),CurrBB(3),CurrBB(4)],'EdgeColor','g','LineWidth',2);
end
hold off;
![FIRE.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/198418/FIRE.png)
2 Kommentare
Walter Roberson
am 2 Mär. 2019
regionprops the Area as well. max [stat.Area] to find the index of the largest .
Akzeptierte Antwort
Image Analyst
am 3 Mär. 2019
Near the top, do this:
Ibw1 = bwareafilt(Ibw1, 1); % Extract largest blob only.
Then continue with the rest of your code, though I don't believe the median filter is needed.
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!