mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.0 KiB
39 lines
1.0 KiB
#include "opencv2/imgproc.hpp" |
|
#include "opencv2/highgui.hpp" |
|
|
|
using namespace cv; |
|
using namespace std; |
|
|
|
int main( int argc, char** argv ) |
|
{ |
|
Mat src; |
|
// the first command-line parameter must be a filename of the binary |
|
// (black-n-white) image |
|
if( argc != 2 || !(src=imread(argv[1], IMREAD_GRAYSCALE)).data) |
|
return -1; |
|
|
|
Mat dst = Mat::zeros(src.rows, src.cols, CV_8UC3); |
|
|
|
src = src > 1; |
|
namedWindow( "Source", 1 ); |
|
imshow( "Source", src ); |
|
|
|
vector<vector<Point> > contours; |
|
vector<Vec4i> hierarchy; |
|
|
|
findContours( src, contours, hierarchy, |
|
RETR_CCOMP, CHAIN_APPROX_SIMPLE ); |
|
|
|
// iterate through all the top-level contours, |
|
// draw each connected component with its own random color |
|
int idx = 0; |
|
for( ; idx >= 0; idx = hierarchy[idx][0] ) |
|
{ |
|
Scalar color( rand()&255, rand()&255, rand()&255 ); |
|
drawContours( dst, contours, idx, color, FILLED, 8, hierarchy ); |
|
} |
|
|
|
namedWindow( "Components", 1 ); |
|
imshow( "Components", dst ); |
|
waitKey(0); |
|
}
|
|
|