what does bwareaopen do?
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Image Analyst
2014-4-17
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 个评论
Image Analyst
2014-5-6
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
2014-5-6
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.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!