Я написал код, который использует библиотеки OpenCV для обнаружения белых линий, нарисованных на траве. Мне нужно мнение кого-то относительно подхода, который я использовал (поскольку я уверен, что есть намного лучший способ, чем мой). Кроме того, результаты, которые я получаю, не так хороши, как я ожидал, потому что небольшие изменения в изображении требуют настройки параметров (и мне нужно работать с фиксированными параметрами).
Мой подход до сих пор:
- Захватите изображение с веб-камеры (и, очевидно, превратитесь в градацию серого)
- Запустите его через пороговый фильтр (используя режим THRESH_TO_ZERO, где он нулирует любые пиксели НИЖЕ порогового значения).
- размытие изображения
- запустить его через фильтр эрозии
- запустить его через детектор кросс-кантов
- наконец, возьмите это обработанное изображение и найдите строки, используя вероятностное преобразование Hough HoughLinesP
Должен ли я изменить последовательность фильтров?
P.S. Я не слишком озабочен обработкой мощности; Я запускаю HoughLinesP на GPU B -)
Кроме того, вот пример изображения:
Результаты, которые я получаю: с канны БЕЗ КАЖДОГО (слегка измененные параметры)
Любая помощь или руководство будут оценены! Я просто не знаю, что делать, чтобы улучшить его.
UPDATE После использования очень быстрой реализации скелета (с TONS размытия) в соответствии с выбранным ответом я получил следующее: