7

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); 
+0

Por favor, vuelva a formatear su pregunta. Debe escribir una declaración comprensible en inglés. – Sam

+0

Publicar su algoritmo o código le ayudará más. –

+0

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

Respuesta

6

añadir una llamada a cvCanny() entre cvSmooth() y cvHoughCircles(). Esto ejecutará un algoritmo de detección de bordes que proporcionará una mejor imagen de entrada para cvHoughCircles() y probablemente mejore sus resultados.

Hay un montón de similar preguntas sobre Stackoverflow, sugiero use the search box.

+0

gracias, es trabajo ... –

+1

Genial. Haga clic en la casilla de verificación cerca de la respuesta para seleccionarla como la respuesta oficial a su pregunta. De esta manera estás ayudando a futuros visitantes. – karlphillip