这似乎可以用ffmpeg的感谢鱼眼失真补偿的lenscorrection过滤器除去GoPro的鱼眼:有没有办法使用的ffmpeg
ffmpeg -i in.mp4 -vf "lenscorrection=cx=0.5:cy=0.5:k1=-.25:k2=-.25" out.mp4
为和k2
,特别是对于一个GOPRO什么样的价值观? 有没有一种方法来计算它们?
这似乎可以用ffmpeg的感谢鱼眼失真补偿的lenscorrection过滤器除去GoPro的鱼眼:有没有办法使用的ffmpeg
ffmpeg -i in.mp4 -vf "lenscorrection=cx=0.5:cy=0.5:k1=-.25:k2=-.25" out.mp4
为和k2
,特别是对于一个GOPRO什么样的价值观? 有没有一种方法来计算它们?
FFmpeg有一个lenscorrection
过滤器,可用于纠正视频中的径向失真。这就是说,没有更多的上下文 - 例如相机的型号和设置 - 很难提供更多信息。无论如何,我怀疑它需要一点反复试验。
PS:你有没有试过在WINE下运行相机的软件?它的一些版本显然具有预定义并容易访问的这种修正过滤器。
感谢您的答案,但我正在寻找镜头校正(或其他开源,不使用第三方软件)的ffmpeg参数。 – user4223883
是的,对于答案thx,但'k1'和'k2'的具体值对于gopro来说会很棒 – abernier
我不认为有一个通用的设置来覆盖所有的GoPro型号&镜头。同时人们也可以使用一些定制/替换镜头。
我所期待的一个例子形象特色你有什么用工作,但没关系...
希望下面的这些是对你有用以某种方式
检查此链接为GoPro Hero 3 settings
(适用到其他型号)。为了获得最佳的和k2
值的一个粗略的想法,你会发现最近的宽高比你的图像分辨率,然后...
鸿沟H. FOV deg
与V. 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
(丢弃小数点)。
对于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
结果:(经由GoPro的英雄-2视频的Google images原始图像中找到)。
如果需要,算法可以在命令内完成。 – LordNeckbeard
非常好!你刚赢得赏金;)但是,你能否更详细地解释k2值?为什么它是“普遍”?再次感谢 – abernier
@abernier谢谢。关于'k2',它不是那么普遍,而只是它适用于这种类型的鱼眼镜头。我的测试图片都有一个“圆圈内的图像”类型的外观(黑色边缘)。对于全景镜头来说可能并不是最好的(失真图像,但是没有黑色边缘的fils屏幕)。我现在正在执行任务,但会在今晚晚些时候更新信息/示例。 –
视频复制过来:http://video.stackexchange.com/questions/12667/linux-command-line-option-to-do-video-lens-correction – payne
@abernier我想提供一个**输入**图像(视频抓取)的例子会加快得到一些答案。 –