void houghcircle() { //cvSmooth( graybin,graybin, CV_GAUSSIAN, 5,5 ); CvMemStorage* storage = cvCreateMemStorage(0); // smooth it, otherwise a lot of false circles may be detected CvSeq* circles = cvHoughCircles( edge, storage, CV_HOUGH_GRADIENT, 5, edge->height/4,1,1,2,50, 70 ); int i; for( i = 0; i < circles->total; i++ ) { float* p = (float*)cvGetSeqElem( circles, i); cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), 2, CV_RGB(0,255,0), -1, 2, 0 ); cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), cvRound(p[2]), CV_RGB(255,0,0), 1, 2, 0 ); cvNamedWindow( "circles", 1 ); cvShowImage( "circles", img ); cvWaitKey(); } }
mahdi from iran
source share