Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何求圆的半径值_C++_Opencv_Gaussian_Hough Transform_Iris Recognition - Fatal编程技术网

C++ 如何求圆的半径值

C++ 如何求圆的半径值,c++,opencv,gaussian,hough-transform,iris-recognition,C++,Opencv,Gaussian,Hough Transform,Iris Recognition,对于Hough圆变换,当我检测到圆时,如何获得圆的半径和中心点的值?我正在做一个虹膜识别系统 CvSeq* circles = cvHoughCircles(grayscaleImg, storage, CV_HOUGH_GRADIENT, 2, grayscaleImg->height/4,

对于Hough圆变换,当我检测到圆时,如何获得圆的半径和中心点的值?我正在做一个虹膜识别系统

CvSeq* circles = cvHoughCircles(grayscaleImg,
                     storage,
                     CV_HOUGH_GRADIENT,
                     2,
                     grayscaleImg->height/4,
                     200,
                 100 );

for (i = 0; i < circles->total; i++) 
{
     float* p = (float*)cvGetSeqElem( circles, i );
     cvCircle( capturedImg, cvPoint(cvRound(p[0]),cvRound(p[1])), 
        3, CV_RGB(0,255,0), -1, 8, 0 );
     cvCircle( capturedImg, cvPoint(cvRound(p[0]),cvRound(p[1])), 
         cvRound(p[2]), CV_RGB(0,0,255), 3, 8, 0 );
}
CvSeq*circles=cvHoughCircles(灰度),
存储
CV_HOUGH_梯度,
2.
灰度图->高度/4,
200,
100 );
对于(i=0;itotal;i++)
{
float*p=(float*)cvGetSeqElem(圆,i);
cvCircle(capturedImg、cvPoint(cvRound(p[0])、cvRound(p[1])),
3,CV_RGB(0255,0),-1,8,0);
cvCircle(capturedImg、cvPoint(cvRound(p[0])、cvRound(p[1])),
cvRound(p[2]),CV_RGB(0,0255),3,8,0;
}

中心点:
cvPoint(cvRound(p[0]),cvRound(p[1]))


半径:
cvRound(p[2])

什么是
cvRound
cvRound
cvgetsekelem
返回什么语义?抱歉,我遗漏了一些东西,它用于在图像中查找圆及其中心点。您的代码已经使用中心坐标和半径进行操作。我不明白。你在这里画的是圆心和半径的圆。你找不到吗?是的,我知道,但我想显示屏幕上找到的半径值。例如,“圆在点(5.0,4.0)处的半径为5mm!!!”在屏幕上。