有没有办法使用ffmpeg删除GoPro鱼眼

use*_*883 15 video ffmpeg fisheye gopro

由于镜头校正滤镜,使用ffmpeg可以补偿鱼眼失真:

ffmpeg -i in.mp4 -vf "lenscorrection=cx=0.5:cy=0.5:k1=-.25:k2=-.25" out.mp4
Run Code Online (Sandbox Code Playgroud)

什么值k1k2,尤其是对于一个GOPRO?有没有办法计算它们?

VC.*_*One 17

我不认为有一个通用的设置可以涵盖所有GoPro型号和镜头.也考虑到人们可以使用一些定制/替换镜片.

我希望有一个示例图像,其中包含您必须使用的内容,但不要介意......
希望以下内容对您有所帮助

检查此链接GoPro Hero 3 settings(适用于其他型号).要大致了解最佳值k1k2值,您应该找到与图像分辨率最接近的宽高比然后......

H. FOV degV. FOV deg乘以和乘以的结果除以Diag. FOV deg.

示例:图片大小为1920 x 1080:这使其成为16:9宽屏.

GoPro 3设置:16 x 9 Widescreen :: H fov= 69.5 || V fov= 118.2 || Diag= 133.6

所以 118.2 / 69.5 * 133.6 = 227.216 etc

k1结果是现在整数 227(丢弃小数点).

对于k2价值0.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 Hero-2视频的Google图像找到原始图像).


Eri*_*ric 5

对于 GoPro Hero 5 和 6:

ffmpeg -i input.mp4 \
    -vf 'lenscorrection=k2=0.006:k1=-0.18' \
    output.mp4
Run Code Online (Sandbox Code Playgroud)

来源


thk*_*ala 4

FFmpeg 有一个lenscorrection过滤器,可用于纠正视频中的径向失真。也就是说,如果没有更多背景信息(例如相机的型号和设置),就很难提供更多信息。我怀疑无论如何这都需要一些尝试和错误。

PS:你试过在WINE下运行相机的软件吗?它的某些版本显然预定义了这种校正过滤器并且易于访问。

  • 感谢您的回答,但我正在寻找用于镜头校正的 ffmpeg 参数(或其他开源,不使用第 3 方软件)。 (3认同)