Hough Conversion for Iris Detection in OpenCV

I wrote the code for the hough conversion and it works well. I can also trim the ocular position of the face. Now I want to detect the iris of the cropping image using the hugh transform (cvHoughCircle). However, when I try to perform this procedure, the system cannot find any circle in the image.

Perhaps the reason is that there is noise in the image, but I don’t think that is the reason. So how can I determine the aperture? I have a binary threshold code, maybe I can use it, but I don't know how to do this?

If anyone helps, I really appreciate that. thanks:)

+6
image-processing opencv computer-vision hough-transform eye-tracking
source share
3 answers

You say that with binary rizos you get an iris that is pure white: this is not what you want to have. Use something like cvCanny to get only the edge of the iris.

+1
source share

Are you defining the edges correctly?
Can you display a binary image and see the iris clearly?

hough cyclic transformations usually have a window with a radius (otherwise you are looking for a 3D solution space) do you set the appropriate value?

0
source share
void houghcircle() { //cvSmooth( graybin,graybin, CV_GAUSSIAN, 5,5 ); CvMemStorage* storage = cvCreateMemStorage(0); // smooth it, otherwise a lot of false circles may be detected CvSeq* circles = cvHoughCircles( edge, storage, CV_HOUGH_GRADIENT, 5, edge->height/4,1,1,2,50, 70 ); int i; for( i = 0; i < circles->total; i++ ) { float* p = (float*)cvGetSeqElem( circles, i); cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), 2, CV_RGB(0,255,0), -1, 2, 0 ); cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), cvRound(p[2]), CV_RGB(255,0,0), 1, 2, 0 ); cvNamedWindow( "circles", 1 ); cvShowImage( "circles", img ); cvWaitKey(); } } 
-2
source share

All Articles