フィルターのクリア

Finding area from the bounding box created by vision.blobAnalysis

3 ビュー (過去 30 日間)
Akira Chan
Akira Chan 2015 年 7 月 14 日
コメント済み: Akira Chan 2015 年 7 月 15 日
Greetings fellow programmers,
As stated in the title, is there a possible way to extract information from the boundingbox created by the function vision.blobanalysis?
blob = vision.BlobAnalysis('BoundingBoxOutputPort', true,'MinimumBlobAreaSource', 'Property','MinimumBlobArea', 200);
The reason for this is to find the area from the [x y width height] boundary box and then multiply the 3rd and 4th parameter (width x height) to obtain the area of the bounding box.
These are similar methods but used in the image processing instead,
bb = stats(K).BoundingBox;
barea = bb(3) * bb(4);
fprintf('Area #%d x = %d y = %d, K, bb(1), bb(2)...);
Is there a way to do the same thing like this in computer vision toolbox using the blob Analysis? Thank you very much.
Regards, Akira

採用された回答

Dima Lisin
Dima Lisin 2015 年 7 月 14 日
Hi Akira,
Yes, of course.
blob = vision.BlobAnalysis('BoundingBoxOutputPort', true,'MinimumBlobAreaSource', 'Property','MinimumBlobArea', 200);
Creates an object called blob. To get the connected components from an image, you should now use the step() method:
[areas, centroids, boundingBoxes] = step(blob, I);
where I is a binary image. areas will contain the areas of the connected components. You can control what outputs you get using the object's properties. AreaOutputPort, CentroidOutputPort, and BoundingBoxOutputPort are true by default.
  4 件のコメント
Dima Lisin
Dima Lisin 2015 年 7 月 15 日
Hi Akira,
Just to clarify: vision.BlobAnalysis is a class, like in Java or C++. step() is a method of this class. The same method exists in many other classes, and it always means "do your thing". In this particular case, "do your thing" means do blob analysis on a binary image, and return the properties of the blobs.
This is why you cannot say step(Final, ...). Final is a numeric array, not a MATLAB class, so there is no step method for it.
If you want to display the blob information on the image, you can use the following functions: insertObjectAnnotation, insertShape, insertText. Please see their documentation for details.
Akira Chan
Akira Chan 2015 年 7 月 15 日
Thank you Mr Walter and Mr Dima for clarifying! I will get to the code when I have the time. So in short, in order for me to post or to obtain values from the vision.BlobAnalysis, I will have to use insertShape, insertText, got it. Alright, just to clarify I needed the area because I want to put it into a if function. If Area > 500 then counter = counter +1, something like that. If possible, is there any way to contact the both of you if I have more questions? Thanks.
Regards, Akira

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by