2014-11-23 2 views
1

Я пытаюсь написать программу, которая находит лицо часов на изображении, а затем переходит к чтению времени от него. Локализация работает достаточно хорошо, время чтения - не так много.Время чтения с аналоговых часов с использованием преобразования линии Hough в Python (OpenCV)

Функция cv2.HoughLines возвращает углы, на которых линии лежат (измеряя верхнюю часть изображения) и их расстояние от верхнего левого угла изображения. После небольшой настройки я сумел убедить мой код найти одну строку для каждой из часов, но на данный момент я по-прежнему не могу на самом деле читать время.

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

Итак, не могли бы вы предложить альтернативное решение?

ответ

1

Мне удалось решить мою проблему.

Я пытался использовать преобразование линии Hough Line, где я должен был использовать Hough Probabilistic Transform. В тот момент, когда я получил его, я сгруппировал линии, нарисованные вдоль похожих функций, отсортировал их по длине и использовал арксины, а также места их концов, чтобы найти точные степени в руках.

Смежные вопросы