what function do i use to remove large object ?
조회 수: 25 (최근 30일)
이전 댓글 표시
In matlab we use bwareaopen(I,n) function to remove object smaller than n pixel from image I.
Is there any function to remove object greater than m pixel from image I ?
what should i do to remove bigger object from image I?
댓글 수: 0
답변 (3개)
Image Analyst
2015년 6월 2일
You can do it with bwareaopen():
bigBlobs = binaryImage - bwareaopen(binaryImage, n);
A nice versatile function for extracting the N largest or smallest blobs is contained in my attached demo.
댓글 수: 5
Xihao Han
2020년 11월 2일
@Image Analyst hahaha "3" in Chinese is pronounced like "than" while "Q" is like "k you"
Image Analyst
2020년 11월 2일
Thanks for the explanations on the cryptic Chinese textspeak.
Regarding the original question, since MATLAB Release R2014b there is a function called bwareafilt(), as the others have mentioned. Here is how you would use it to "remove object greater than m pixel from image I ?"
% Remove objects greater than m pixels in area from image I.
bigBlobs = bwareafilt(I, [1, m]); % Keep only blobs from 1 pixel to m pixels in area.
I really recommend you use more descriptive vatiable names. No one wants to look at an alphabet soup of a program with single letter variables, where it's not clear what they are. I'd recommend you not use I (eye) because it looks too much like 1 (one) and l (ell). I recommend you call it either binaryImage or mask. And instead of m, call it maxAllowableBlobSize. Then, someone reading that code will instantly know what the variables are.
Romana Akhter
2020년 9월 18일
You can use bwareafilt(image, range). Here rang is the size of the objects you want to keep. See the link for details.
https://www.mathworks.com/help/images/ref/bwareafilt.html
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!