gpt4 book ai didi

c++ - OpenCV:使用霍夫圆变换检测虹膜

转载 作者:可可西里 更新时间:2023-11-01 18:36:06 36 4
gpt4 key购买 nike

我是 openCV 的新手,但我想创建虹膜识别程序。虽然带有网络摄像头的系统可以检测到眼睛,但无法检测到圆形虹膜。我正在使用霍夫圆变换。但如果图像中的虹膜不够圆,系统将无法检测到它。有什么解决办法吗?

使用的算法是霍夫圆变换。

IplImage *capturedImg = cvLoadImage("circle.jpg",1);
IplImage *grayscaleImg = cvCreateImage(cvGetSize(capturedImg), 8, 1);

cvCvtColor(capturedImg, grayscaleImg, CV_BGR2GRAY);

// Gaussian filter for less noise
cvSmooth(grayscaleImg, grayscaleImg, CV_GAUSSIAN,9, 9 );

//Detect the circles in the image
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 );
}
// cvCircle( img,cvPoint( r->x, r->y ),67, CV_RGB(255,0,0), 3, 8, 0 );
cvNamedWindow( "circles", 1 );
cvShowImage( "circles", capturedImg );

最佳答案

cvSmooth()cvHoughCircles() 之间添加对 cvCanny() 的调用。这将执行边缘检测算法,该算法将为 cvHoughCircles() 提供更好的输入图像,并可能会改善您的结果。

有很多 similar关于Stackoverflow的问题,我建议你use the search box .

关于c++ - OpenCV:使用霍夫圆变换检测虹膜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12567520/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com