2015-06-14 22 views
11

wydaje się możliwe, aby zrekompensować zakłócenia rybiego oka przy użyciu ffmpeg dzięki filtra lenscorrection:Czy istnieje sposób, aby usunąć GoPro fisheye użyciu ffmpeg

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

Jakie wartości dla k1 i k2, szczególnie dla GoPro? Czy istnieje sposób ich obliczenia?

+0

Duplikat nad wideo: http://video.stackexchange.com/questions/12667/linux-command-line-option-to-do-video-lens-correction – payne

+0

@abernier myślę dostarczanie przykład ** input ** image (grab wideo) przyspieszyłby uzyskanie niektórych odpowiedzi. –

Odpowiedz

4

FFmpeg ma filtr lenscorrection, który może być używany do korekcji zniekształceń promieniowych w filmach. To powiedziawszy, bez większego kontekstu - takiego jak model i ustawienia kamery - trudno byłoby podać więcej informacji. Podejrzewam, że i tak wymaga to trochę prób i błędów.

PS: Czy próbowałeś uruchomić oprogramowanie kamery pod numerem WINE? Niektóre jego wersje najwyraźniej mają ten predefiniowany filtr korekcyjny i są łatwo dostępne.

+3

Dziękuję za odpowiedź, ale szukam parametrów ffmpeg dla korekcji obiektywu (lub innego opensource, bez używania oprogramowania innej firmy). – user4223883

+0

tak, thx za odpowiedź, ale konkretne wartości dla 'k1' i' k2' byłyby niesamowite dla gopro – abernier

11

Nie wydaje mi się, aby istniało ogólne ustawienie, które obejmowałoby wszystkie obiektywy GoPro w wersji &. Czynnik ten polega również na tym, że ludzie mogą korzystać z niestandardowych/zamiennych soczewek.

Miałem nadzieję na przykładowym obrazie gościnnie co trzeba pracować z, ale nic nie szkodzi ...
Mam nadzieję, że poniżej jest przydatna w jakiś sposób

Sprawdź ten link do GoPro Hero 3 settings (dotyczy do innych modeli). Aby uzyskać przybliżone pojęcie o najlepszych k1 i k2 wartości, należy znaleźć najbliższy stosunek proporcji do swojej rozdzielczości obrazu wtedy ...

podzielić H. FOV deg z V. FOV deg i wielokrotnie prowadzić z Diag. FOV deg.

Przykład: gdzie rozmiar obrazu to 1920 x 1080: To powoduje, że jest on szerokoekranowy 16: 9.

Ustawienie GoPro 3: 16 x 9 Widescreen :: H fov = 69.5 || V fov = 118,2 || Diag = 133,6

Więc 118.2/69.5 * 133.6 = 227.216 etc

dla k1 wynik jest teraz całkowitą 227 (drop punkty dziesiętne).

dla k2 wartość 0.022 wydaje się uniwersalna (wszystkie obrazy testowe), dzięki czemu można wypróbować k2=-.022.

dla cx i cy zachować je jako: cx=0.5:cy=0.5:.

przykład:

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

Wynik: (oryginalny obraz znaleziono poprzez Google images z GoPro Hero 2 wideo).

+0

Arytmetyka może być wykonana w ramach polecenia, jeśli jest to pożądane. – LordNeckbeard

+0

Doskonale! Właśnie wygrałeś nagrodę;) Czy możesz jednak wyjaśnić nieco wartość k2? Dlaczego jest "uniwersalny"? Jeszcze raz dziękuję – abernier

+1

@abernier Dzięki. O 'k2' to nie tyle, że jest uniwersalne, ale po prostu działa dla tego typu obiektywu typu rybie oko. Wszystkie moje zdjęcia testowe miały wygląd typu "obraz wewnątrz koła" (z czarnymi krawędziami). Może nie być najlepszy dla obiektywu panoramicznego (zniekształcony obraz, ale ekran fils bez czarnych krawędzi). W tej chwili wykonuję misję, ale później zaktualizuję dodatkowe informacje/przykłady później. –

Powiązane problemy