Обнаружение радужной оболочки не работает EMGUCV
Я новичок в обработке изображений, я пытаюсь реализовать приложение обнаружения 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;
}
1 ответ
Прежде всего, почему ваш 0 //max radius
даже меньше, чем 5, //min radius
? Если у вас есть приблизительная оценка радиуса радужной оболочки, попробуйте отрегулировать эти два значения, чтобы обеспечить обнаружение только окружностей в этом диапазоне.
Во-вторых, настройте значение 2.0, //Resolution of the accumulator used to detect centers of the circles
, В основном, чем меньше этот порог, тем больше кругов может быть обнаружено.