Обнаружение угла зрачка глаза (openCV) - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь создать программу в openCV (python), которая может определить, когда зрачок прямой или в углах (слева или справа).На данный момент я сделал следующее:

  1. Взял изображение, обрезал часть глаза (обнаружил область через eye_cascade.detectMultiScale (серый)) (картинка прилагается).
  2. ПолучилЗначение BGR пикселя для img [(3 * h) / 4, w / 2] (h = высота, w = ширина)
  3. Пытался замаскировать скин путем преобразования BRG в HSV, выполнил thresh_BINARY, чтобы получить только оставшиесябелый оттенок вокруг зрачка.
  4. подсчитайте белые пиксели и проверьте, имеет ли какая-либо из сторон менее 40% белых пикселей, затем определите положение зрачка.

Этот метод дает несколько хороший ответдля изображения, но когда я запускаю веб-камеру, происходит сбой маскирования, что приводит к сбою в дальнейшем весь процесс.Кто-нибудь имеет лучшее представление о том, как я могу это сделать?(Уже прочитал все ответы на этом форуме, но не смог найти удовлетворительного решения).

Изображение

1 Ответ

0 голосов
/ 09 июня 2018

Я думаю, это потому, что двоичное пороговое значение выводит пиксели, больше, чем Scalar 127, как белый, а оставшиеся - как черный.Это дает действительно плохие результаты в темноте (где большинство пикселей меньше 127) и на свету (где большинство пикселей имеют значение больше 127).

Что вы можете сделать, это найти среднее и стандартное отклонение.Затем вы можете определить маску таким образом, чтобы все пиксели выше
означали + k * std_deviation
как белые пиксели.Вы можете найти постоянную k, экспериментируя с различными изображениями.

Удачи!

...