@ -413,6 +413,13 @@ enum ConnectedComponentsTypes {
CC_STAT_MAX = 5
CC_STAT_MAX = 5
} ;
} ;
//! connected components algorithm
enum ConnectedComponentsAlgorithmsTypes {
CCL_WU = 0 , //!< SAUF algorithm for 8-way connectivity, SAUF algorithm for 4-way connectivity
CCL_DEFAULT = - 1 , //!< BBDT algortihm for 8-way connectivity, SAUF algorithm for 4-way connectivity
CCL_GRANA = 1 //!< BBDT algorithm for 8-way connectivity, SAUF algorithm for 4-way connectivity
} ;
//! mode of the contour retrieval algorithm
//! mode of the contour retrieval algorithm
enum RetrievalModes {
enum RetrievalModes {
/** retrieves only the extreme outer contours. It sets `hierarchy[i][2]=hierarchy[i][3]=-1` for
/** retrieves only the extreme outer contours. It sets `hierarchy[i][2]=hierarchy[i][3]=-1` for
@ -3648,16 +3655,56 @@ CV_EXPORTS_W void matchTemplate( InputArray image, InputArray templ,
image with 4 or 8 way connectivity - returns N , the total number of labels [ 0 , N - 1 ] where 0
image with 4 or 8 way connectivity - returns N , the total number of labels [ 0 , N - 1 ] where 0
represents the background label . ltype specifies the output label image type , an important
represents the background label . ltype specifies the output label image type , an important
consideration based on the total number of labels or alternatively the total number of pixels in
consideration based on the total number of labels or alternatively the total number of pixels in
the source image .
the source image . ccltype specifies the connected components labeling algorithm to use , currently
Grana ' s ( BBDT ) and Wu ' s ( SAUF ) algorithms are supported , see the cv : : ConnectedComponentsAlgorithmsTypes
for details . Note that SAUF algorithm forces a row major ordering of labels while BBDT does not .
@ param image the 8 - bit single - channel image to be labeled
@ param image the 8 - bit single - channel image to be labeled
@ param labels destination labeled image
@ param labels destination labeled image
@ param connectivity 8 or 4 for 8 - way or 4 - way connectivity respectively
@ param connectivity 8 or 4 for 8 - way or 4 - way connectivity respectively
@ param ltype output image label type . Currently CV_32S and CV_16U are supported .
@ param ltype output image label type . Currently CV_32S and CV_16U are supported .
*/
@ param ccltype connected components algorithm type ( see the cv : : ConnectedComponentsAlgorithmsTypes ) .
*/
CV_EXPORTS_AS ( connectedComponentsWithAlgorithm ) int connectedComponents ( InputArray image , OutputArray labels ,
int connectivity , int ltype , int ccltype ) ;
/** @overload
@ param image the 8 - bit single - channel image to be labeled
@ param labels destination labeled image
@ param connectivity 8 or 4 for 8 - way or 4 - way connectivity respectively
@ param ltype output image label type . Currently CV_32S and CV_16U are supported .
*/
CV_EXPORTS_W int connectedComponents ( InputArray image , OutputArray labels ,
CV_EXPORTS_W int connectedComponents ( InputArray image , OutputArray labels ,
int connectivity = 8 , int ltype = CV_32S ) ;
int connectivity = 8 , int ltype = CV_32S ) ;
/** @brief computes the connected components labeled image of boolean image and also produces a statistics output for each label
image with 4 or 8 way connectivity - returns N , the total number of labels [ 0 , N - 1 ] where 0
represents the background label . ltype specifies the output label image type , an important
consideration based on the total number of labels or alternatively the total number of pixels in
the source image . ccltype specifies the connected components labeling algorithm to use , currently
Grana ' s ( BBDT ) and Wu ' s ( SAUF ) algorithms are supported , see the cv : : ConnectedComponentsAlgorithmsTypes
for details . Note that SAUF algorithm forces a row major ordering of labels while BBDT does not .
@ param image the 8 - bit single - channel image to be labeled
@ param labels destination labeled image
@ param stats statistics output for each label , including the background label , see below for
available statistics . Statistics are accessed via stats ( label , COLUMN ) where COLUMN is one of
cv : : ConnectedComponentsTypes . The data type is CV_32S .
@ param centroids centroid output for each label , including the background label . Centroids are
accessed via centroids ( label , 0 ) for x and centroids ( label , 1 ) for y . The data type CV_64F .
@ param connectivity 8 or 4 for 8 - way or 4 - way connectivity respectively
@ param ltype output image label type . Currently CV_32S and CV_16U are supported .
@ param ccltype connected components algorithm type ( see the cv : : ConnectedComponentsAlgorithmsTypes ) .
*/
CV_EXPORTS_AS ( connectedComponentsWithStatsWithAlgorithm ) int connectedComponentsWithStats ( InputArray image , OutputArray labels ,
OutputArray stats , OutputArray centroids ,
int connectivity , int ltype , int ccltype ) ;
/** @overload
/** @overload
@ param image the 8 - bit single - channel image to be labeled
@ param image the 8 - bit single - channel image to be labeled
@ param labels destination labeled image
@ param labels destination labeled image