what does bwareaopen do?
9 views (last 30 days)
Show older comments
I understand, bwareaopen(BW, P) means, the function removes pixels from BW matrix less than 'P' pixels and the default conn is 4 which means
conn=4 means
- X -
X 0 X
- X -
conn=8 means
X X X
X 0 X
X X X
but for example
A = 0 1 0 0 1 0
0 1 1 0 1 0
0 1 0 0 1 0
0 1 0 0 0 0
0 1 1 0 0 0
0 1 0 0 0 0
B=bwareaopen(A,4) gives
B = 0 1 0 0 0 0
0 1 1 0 0 0
0 1 0 0 0 0
0 1 0 0 0 0
0 1 1 0 0 0
0 1 0 0 0 0
that means A(1:3,5) which are ones are deleted -- pixels lesser than 4 are deleted.
then what is the significant of "conn" = 4?? even if the pixels are not connected with neighborhood 4, they are deleted. Why?
0 Comments
Accepted Answer
Image Analyst
on 17 Apr 2014
You have 2 connected blobs. The one on the left is 8 pixels big (area of 8 pixels). The blob on the right is 3 pixels. When you called bwareaopen, it got rid of blobs less than 4 pixels. Since the blob with an area of 3 is less than 4, it was removed. Does that explain it? It has nothing to do with connectivity here because all your blobs are 4-connected. Now if you had an extra pixel diagonally connected to the blob on the left, like this:
A = 0 1 0 0 1 0
0 1 1 0 1 1
0 1 0 0 0 0
0 1 0 1 0 0
0 1 1 0 0 0
0 1 0 0 0 0
Now there are 8 eight connected blobs, but 3 blobs if you consider them as 4 connected. The pixel at row 4 column 4 is 8-connected to the blob on the left, but not 4 connected. It would be removed with
bwareaopen(A, 4, 4)
but not with
bwareaopen(A, 4, 8)
because in the second case it's connected while in the first case it's not connected.
5 Comments
Image Analyst
on 6 May 2014
Divya asked (in an "Answer" that I moved here):
Hi, I got one more doubt! How does the matlab decides the blob? for example (as in your earlier comment) A =
0 1 0 0 1 0
0 1 1 0 1 1
0 1 0 0 0 0
0 1 0 1 0 0
0 1 1 0 0 0
0 1 0 0 0 0
(4,4) element can be considered in a blob where (4,4) is centered. But as you said earlier, (4,4) comes into a blob where (5,3) is centered.
Can you please illustrate how the blobs are considered?
Image Analyst
on 6 May 2014
If using 4-connected, then (4,4) is not connected to (5,3) since they touch only along the diagonal, not up/down/left/right. (4,4) would be its own separate blob in that case.
If 8-connected, then they're attached and part of the same blob.
More Answers (0)
See Also
Categories
Find more on Get Started with MATLAB in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!