Soy un novato en openCV, pero quiero crear un programa de reconocimiento de iris. Aunque el sistema con cámara web puede detectar los ojos, no puede, sin embargo, detectar el iris circular. Estoy usando la Transformación Hough Circle. Pero en caso de que el iris en una imagen no sea lo suficientemente circular, el sistema no puede detectarlo. ¿Alguna solución para eso?OpenCV: Usando Hough Circle Transformation para detectar iris
el algoritmo utilizado es Hough Circle Transformation.
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);
Por favor, vuelva a formatear su pregunta. Debe escribir una declaración comprensible en inglés. – Sam
Publicar su algoritmo o código le ayudará más. –
Puede intentar rastrear los límites de los ojos y extraer la ubicación del iris con herramientas de segmentación/morfológicas. Como dije antes, publicar su algoritmo actual nos ayudará a guiarlo. – Eric