C++ 如何求圆的半径值
对于Hough圆变换,当我检测到圆时,如何获得圆的半径和中心点的值?我正在做一个虹膜识别系统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,
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!!!”在屏幕上。