我是图像处理的新手,我正在尝试为我的学者实施 IRIS 检测应用程序。
在应用程序中,我已成功从输入流中检测到右眼。之后我必须执行虹膜检测操作,所以我按照以下链接 http://www.emgu.com/forum/viewtopic.php?f=7&t=3356
应用程序返回输入图像时检测到大约 17 个圆圈,但是当我将网络摄像头作为输入时,它返回 0。(我不知道原因)。我希望能够完美准确地检测虹膜。请帮我解决这个问题。
1.如何准确检测虹膜?(代码示例会很有用)
2.为什么应用程序没有任何圆圈形成网络摄像头输入流?
提前致谢
这是我用来检测右眼图片中的圆圈的代码
double cannyThreshold = 180.0;
double circleAccumulatorThreshold = 20;
int irisy = 0;
//Taken from - http://www.emgu.com/forum/viewtopic.php?f=7&t=3356
CircleF[] circles = grayframeright.HoughCircles(
new Gray(cannyThreshold),
new Gray(circleAccumulatorThreshold),
2.0, //Resolution of the accumulator used to detect centers of the circles
20.0, //min distance
5, //min radius
0 //max radius
)[0]; //Get the circles from the first channel
MessageBox.Show(circles.Length + " circle length");
CircleF Iris = new CircleF();
foreach (CircleF circle in circles)
{
ImageFrame.Draw(circle, new Bgr(Color.Red), 2);
grayframeright.ROI = new Rectangle();
grayframeright.ROI = Rectangle.Empty;
grayframeright.ROI = new Rectangle(10, 30, grayframeright.Width - 10, 55);
Iris = circle;
}