类似于matlab中的bwlabel标记连通区域的c++版本实现,基于opencv,如下: bwlabel.cpp #include "cv.h" #include "highgui.h" #define NO_OBJECT 0 #define MIN(x, y) (((x) < (y)) ? (x) : (y)) #define ELEM(img, r, c) (CV_IMAGE_ELEM(img, unsigned char, r, c)) #define ONETWO(L, r, c, col) (L[(r) * (col) + c]) int find( int set[], int x ) { int r = x; while ( set[r] != r ) r = set[r]; return r; } /* labeling scheme +-+-+-+ |D|C|E| +-+-+-+ |B|A| | +-+-+-+ | | | | +-+-+-+ A is the center pixel of a neighborhood. In the 3 versions of connectedness: 4: A connects to B and C 6: A connects to