Arhn - архитектура программирования

Есть ли способ удалить рыбий глаз GoPro с помощью ffmpeg

Кажется возможным компенсировать искажение «рыбий глаз» с помощью ffmpeg благодаря фильтру lenscorrection:

ffmpeg -i in.mp4 -vf "lenscorrection=cx=0.5:cy=0.5:k1=-.25:k2=-.25" out.mp4

Какие значения для k1 и k2, особенно для gopro? Есть ли способ их вычислить?

14.06.2015

  • Дублировать в видео: video.stackexchange.com/questions/12667/ 14.05.2016
  • @abernier Я думаю, что предоставление примера входного изображения (захват видео) ускорит получение некоторых ответов. 16.11.2016

Ответы:


1

Я не думаю, что есть общие настройки для всех моделей и объективов GoPro. Учтите также, что люди могут использовать некоторые индивидуальные/сменные линзы.

Я надеялся получить пример изображения, показывающего то, с чем вам приходится работать, но неважно...
Надеюсь, что нижеследующее будет вам чем-то полезно.

Перейдите по этой ссылке, чтобы найти GoPro Hero 3 settings (относится к другим моделям). Чтобы получить приблизительное представление о наилучших значениях k1 и k2, вам нужно найти ближайшее соотношение сторон к разрешению вашего изображения, а затем...

Разделите H. FOV deg на V. FOV deg и умножьте результат на Diag. FOV deg.

Пример: где размер изображения 1920 x 1080 : это делает его широкоэкранным с соотношением сторон 16:9.

Настройка GoPro 3: широкоэкранный формат 16 x 9 :: H fov = 69,5 || V fov = 118,2 || Diag = 133,6

So 118.2 / 69.5 * 133.6 = 227.216 etc

для k1 результат теперь целочисленный 227 (опустите десятичные точки).

для k2 значение 0.022 кажется универсальным (все тестовые изображения), поэтому вы можете попробовать k2=-.022.

для cx и cy сохраните их как: cx=0.5:cy=0.5:.

Пример:

ffmpeg -i in.mp4 -vf "lenscorrection=cx=0.5:cy=0.5:k1=-0.227:k2=-0.022" out.mp4

Результат: (исходное изображение найдено через изображения Google видео GoPro Hero-2).

17.11.2016
  • Превосходно! Вы только что выиграли награду ;) Однако не могли бы вы немного объяснить значение k2? Почему он универсальный? Спасибо еще раз 18.11.2016
  • @абернье Спасибо. Насчет k2 дело не столько в том, что он универсальный, сколько в том, что он подходит для такого типа объективов типа «рыбий глаз». Все мои тестовые изображения имели изображение внутри круга (с черными краями). Возможно, это не лучший вариант для панорамного объектива (искажает изображение, но заполняет экран без черных краев). Я сейчас на миссии, но добавлю дополнительную информацию/примеры позже сегодня вечером. 18.11.2016

  • 2

    В FFmpeg есть фильтр lenscorrection, который можно использовать для исправления радиального искажения в видео. Тем не менее, без дополнительного контекста, такого как модель и настройки вашей камеры, было бы трудно предоставить дополнительную информацию. Я подозреваю, что в любом случае потребуется немного проб и ошибок.

    PS: Вы пробовали запускать программное обеспечение камеры в WINE? Некоторые его версии, по-видимому, имеют такой предопределенный и легко доступный корректирующий фильтр.

    14.06.2015
  • Спасибо за ответ, но я ищу параметры ffmpeg для коррекции объектива (или другого с открытым исходным кодом, без использования стороннего программного обеспечения). 17.06.2015
  • да, спасибо за ответ, но конкретные значения для k1 и k2 были бы потрясающими для gopro 14.11.2016

  • 3

    Для GoPro Hero 5 и 6:

    ffmpeg -i input.mp4 \
        -vf 'lenscorrection=k2=0.006:k1=-0.18' \
        output.mp4
    

    источник

    18.03.2019

    4

    Вы можете исправить рыбий глаз с помощью ffmpeg lenscorrection, но результат будет плохо смотреться по краям.

    Изображение того, как это выглядит по краям

    17.09.2019

    5

    Я написал сообщение о различных методах исправления искажений с помощью ffmpeg. Я думаю, что фильтры lensfun или v360 лучше, чем фильтр LensCorrection.

    Тем не менее, теоретически вы должны быть в состоянии вычислить значения для k1 и k2 с помощью OpenCV- noreferrer">калибровка камеры. Вы могли бы использовать флаги CALIB_FIX_PRINCIPAL_POINT (вместе с координатами, чтобы зафиксировать главную точку в центре изображения, как предполагает коррекция объектива), CALIB_FIX_K3 (поскольку коррекция объектива не использует k3) и CALIB_FIX_S1_S2_S3_S4 (поскольку коррекция объектива не учитывает тангенциальное искажение). Доступен пример кода, который вы можете просто изменить, чтобы сделать это.

    Однако, когда я попытался, я застрял, потому что не смог найти способ зафиксировать фокусное расстояние в OpenCV, но при коррекции объектива фокусное расстояние жестко запрограммировано на половину диагонали изображения.

    25.03.2020

    6

    Для GoPro 3+, 16:9 с широким углом обзора

    ffmpeg -i input.mp4 -vf "lenscorrection=0.5:0.5:-0.335:0.097" output.mp4
    
    15.04.2019
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..