Я разрабатываю приложение для отслеживания глаз в emgu CV, Чтобы отслеживать глаза, мне нужно точно определить радужную оболочку, поэтому я использовал круги hough, но в некоторых случаях это терпит неудачу, потому что форма радужки не идеальный круг, поэтому я решил преобразовать глаз изображение в двоичном и обнаруживать радужную оболочку,
Чтобы преобразовать его в двоичный, я использовал
grayframeright_1 = grayframeright_1.ThresholdBinary (новый серый (threshold_value), новый серый (220));
и результат
Теперь, как я могу определить диафрагму в приведенном выше двоичном изображении? Могу ли я запустить детектор blob для обнаружения диафрагмы?
Пожалуйста, помогите мне разобраться в этом, ваша помощь будет высоко оценена, у меня заканчивается время для моего срока.
Было бы полезно предоставить образец кода
заранее спасибо
Вы можете попробовать эрозию. Я использовал его в классе обработки изображений в университете, чтобы найти визуальный центр самолетов в небе, и он работал на удивление хорошо.
Эрозия - довольно простой оператор, используемый в более широкой практике, такой как обнаружение blob, о котором вы уже говорили.
Erode должен удалять пограничные пиксели нерегулярных форм, оставляя, наконец, всего лишь мгновение до того, как форма полностью исчезнет, всего несколько пикселей. Геометрическим центром этих пикселей является c, визуальный центр неправильной формы. Начиная с c нарисуйте круг радиуса r, который полностью вписан в нерегулярную форму. Круг в c с радиусом r является приближением радужной оболочки. Или, по крайней мере, история идет.
Когда я говорю об эрозии, я имею в виду это: пример эрозии
Это была моя личная идея, основанная на университетской работе, я никогда не делал этого в этой отрасли.
Возможно, вам стоит взглянуть на более серьезный подход к проблеме, которая не использует эрозию, а всплески: распознавание радужной оболочки
Мне очень любопытно. Если вы попробуете это, можете ли вы поделиться своими результатами/результатами? Быстрого комментария хватит!