Tôi là newbie để openCV, nhưng tôi muốn tạo chương trình nhận dạng iris. Mặc dù hệ thống có webcam có thể phát hiện mắt nhưng nó không thể phát hiện ra mống mắt tròn. Tôi đang sử dụng Hough Circle Transformation. Nhưng trong trường hợp iris trong một hình ảnh không đủ tròn, hệ thống không thể phát hiện ra nó. Bất kỳ giải pháp cho nó?OpenCV: Sử dụng Hough Circle Transformation để phát hiện iris
thuật toán được sử dụng là Chuyển đổi vòng tròn hough.
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);
Vui lòng định dạng lại câu hỏi của bạn. Bạn nên viết một câu nói tiếng Anh dễ hiểu. – Sam
Đăng thuật toán hoặc mã của bạn sẽ giúp bạn nhiều hơn. –
Bạn có thể cố gắng theo dõi các ranh giới của mắt và trích xuất vị trí mống mắt bằng các công cụ phân đoạn/hình thái học. Như đã nói, đăng thuật toán hiện tại của bạn sẽ giúp chúng tôi hướng dẫn bạn. – Eric