Question

Suppose I have a binary image BW and I'm using bwlabel to find the connected area of 1. I want to find the largest group of this result (which is not 0) and also the location where this group is located in the picture. How to do this?

Was it helpful?

Solution

there are several ways to accomplish that, for example histogram the content of the nonzero elements:

L=bwlabel(I);
[a val]=hist(L(:),1:max(L(:)))
val(a==max(a))

will yield the value that is most occuring

another way is to use tabulate :

a=tabulate(L(:))
a(a(:,2)==max(a(2:end,2)),1)

tabulate creates a frequency table of data in vector L(:). The information is arranged as follows:

1st column — The unique values of L

2nd column — The number of instances of each value

3rd column — The percentage of each value

etc...

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top