2015-06-14 85 views
11

這似乎可以用ffmpeg的感謝魚眼失真補償的lenscorrection過濾器除去GoPro的魚眼:有沒有辦法使用的ffmpeg

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

爲​​和k2,特別是對於一個GOPRO什麼樣的價值觀? 有沒有一種方法來計算它們?

+0

視頻複製過來:http://video.stackexchange.com/questions/12667/linux-command-line-option-to-do-video-lens-correction – payne

+0

@abernier我想提供一個**輸入**圖像(視頻抓取)的例子會加快得到一些答案。 –

回答

4

FFmpeg有一個lenscorrection過濾器,可用於糾正視頻中的徑向失真。這就是說,沒有更多的上下文 - 例如相機的型號和設置 - 很難提供更多信息。無論如何,我懷疑它需要一點反覆試驗。

PS:你有沒有試過在WINE下運行相機的軟件?它的一些版本顯然具有預定義並容易訪問的這種修正過濾器。

+3

感謝您的答案,但我正在尋找鏡頭校正(或其他開源,不使用第三方軟件)的ffmpeg參數。 – user4223883

+0

是的,對於答案thx,但'k1'和'k2'的具體值對於gopro來說會很棒 – abernier

11

我不認爲有一個通用的設置來覆蓋所有的GoPro型號&鏡頭。同時人們也可以使用一些定製/替換鏡頭。

我所期待的一個例子形象特色你有什麼用工作,但沒關係...
希望下面的這些是對你有用以某種方式

檢查此鏈接爲GoPro Hero 3 settings(適用到其他型號)。爲了獲得最佳的​​和k2值的一個粗略的想法,你會發現最近的寬高比你的圖像分辨率,然後...

鴻溝H. FOV degV. FOV deg和乘法結果與Diag. FOV deg

例如:其中圖片尺寸爲1920 x 1080:這使它成爲16:9寬屏幕。

的GoPro 3設置:16×9寬屏幕:: H fov = 69.5 || V fov = 118.2 || Diag = 133.6

所以118.2/69.5 * 133.6 = 227.216 etc

爲​​結果是現在整數227(丟棄小數點)。

對於k20.022似乎通用(所有測試圖像),所以你可以試試k2=-.022

對於cxcy保持爲: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

結果:(經由GoPro的英雄-2視頻的Google images原始圖像中找到)。

+0

如果需要,算法可以在命令內完成。 – LordNeckbeard

+0

非常好!你剛贏得賞金;)但是,你能否更詳細地解釋k2值?爲什麼它是「普遍」?再次感謝 – abernier

+1

@abernier謝謝。關於'k2',它不是那麼普遍,而只是它適用於這種類型的魚眼鏡頭。我的測試圖片都有一個「圓圈內的圖像」類型的外觀(黑色邊緣)。對於全景鏡頭來說可能並不是最好的(失真圖像,但是沒有黑色邊緣的fils屏幕)。我現在正在執行任務,但會在今晚晚些時候更新信息/示例。 –