
Как видите, изображение сильно искажено, и мне нужно это исправить. После некоторых исследований выяснилось, что здесь не наблюдается ни бочкообразного, ни подушкообразного искажения. Я бы сказал, что это зависит от оси. Кажется, что ось X имеет подушкообразное искажение, а ось Y, похоже, имеет бочкообразное искажение.
В моем проекте я использую серверную часть Java, а для обработки видео использую FFmpeg (ре -кодирование, цветокоррекция, ...). Поэтому я хотел бы сделать это в FFmpeg в качестве еще одного видеофильтра.
Я пытался использовать фильтр коррекции линз, но не смог найти подходящих значений для k1 и k2. ИМХО, это даже невозможно, поскольку фильтр может обрабатывать только два типа искажений, упомянутых выше. Вот два примера, где я пытался исправить горизонтальные и вертикальные элементы изображения:
[img]https:// i.sstatic.net/DAZDdR4E.png[/img]
(с k1= -0,7, k2=0,4)

(с k1=0,7)
Но полученное изображение должно выглядеть так (грубо отредактировано с помощью GIMP):
[img]https://i. sstatic.net/zyLx6F5n.png[/img]
Возможно ли это вообще с фильтрами FFmpeg? Я уже опробовал фильтр v360 (похожий на тот, что описан в этой статье), но добился аналогичных результатов.
Если я прав, с видеофильтрами это невозможно. Поэтому я подумал сделать это в OpenCV на Java, извлекая все кадры с помощью FFmpeg, преобразуя их с помощью OpenCV и снова преобразуя их в видео. К сожалению, у меня нет опыта работы с OpenCV, и я не смог получить никаких результатов. Я думаю, что это должно быть каким-то образом возможно.
Может ли кто-нибудь мне помочь?
Подробнее здесь: https://stackoverflow.com/questions/790 ... -or-opencv
Мобильная версия