Какие алгоритмы обнаружения прямой линии все еще будут обнаруживать линии, которые претерпели искажения объектива на фотографиях?
Я нашел другие вопросы на тему обнаружения прямых линий в изображениях, о которых я буду читать дальше.
Но я знаю, что на многих фотографиях прямые линии в реальной жизни изогнуты.
Мне не нужно искривлять искажение типа "рыбий глаз" или что-то экстремальное.
Но я хотел бы обработать "типичное" количество искажений кривой, как будто они все еще прямые.
Существуют ли алгоритмы или методы, которые могут справиться с этим "достаточно хорошо"?
Вот старая фотография моей книги, показывающая вид изогнутых прямых линий, которые я имел в виду. Это хороший пример кривизны и искажения линзы. (Это может быть не очень хороший пример, как правило, из-за других строк на заднем плане, но это не относится к теме текущего вопроса.)
2 ответа
Как оказалось, один из самых популярных методов, используемых для обнаружения прямой линии, также существует в версиях, которые работают с кривыми.
Это называется "Преобразование Хафа".
Первоначально он был предназначен для обнаружения прямых линий, но был обобщен для работы с кривыми и другими произвольными формами. Из статьи Википедии:
Классическое преобразование Хафа было связано с идентификацией линий на изображении, но позже преобразование Хафа было расширено до определения положений произвольных форм, чаще всего кругов или эллипсов.
Есть даже статьи на конкретную тему использования преобразований Хафа для устранения искажений объектива:
- Автоматическая коррекция искажения линзы с использованием однопараметрических моделей деления
- Метод преобразования Хафа для коррекции искажения радиальной линзы
- Коррекция искажения широкоугольного объектива с использованием моделей деления
- Автоматический выбор кривой для коррекции искажения линзы с использованием энергии преобразования Хафа
- Слепая компенсация радиальных искажений из видео с использованием быстрого преобразования Хафа
Кривизна краев не кажется такой сильной, и в худшем случае преобразование Хафа просто сломает края в нескольких сегментах.
Я был бы более обеспокоен отсутствием контраста краев (белого на белом), что может привести к сбою в обнаружении.