有没有办法在ffmpeg中应用曲线弯曲?

有没有办法在ffmpeg中应用曲线弯曲?,ffmpeg,Ffmpeg,我有四个摄像头,每个摄像头都给我提供了篮球场的不同部分。由于相机物理位置的轻微偏移和相机边缘周围的镜头失真,我无法在没有某种校正的情况下简单地将视频缝合在一起 我研究了ffmpeg的过滤器,以及过滤器。在前一种情况下,它只能创建梯形,而不是我想要的曲线图像。在后一种情况下,对k1和k2使用负值似乎是朝着正确的方向前进,但它要么破坏了图像的顶部和底部,使其成为无意义的噪声,要么将图像放大到如此大的程度,以至于我丢失了重要的细节 对于下面的示例图片,最终我希望中场线(右侧的蓝色垂直线)是垂直的,我希

我有四个摄像头,每个摄像头都给我提供了篮球场的不同部分。由于相机物理位置的轻微偏移和相机边缘周围的镜头失真,我无法在没有某种校正的情况下简单地将视频缝合在一起

我研究了ffmpeg的过滤器,以及过滤器。在前一种情况下,它只能创建梯形,而不是我想要的曲线图像。在后一种情况下,对
k1
k2
使用负值似乎是朝着正确的方向前进,但它要么破坏了图像的顶部和底部,使其成为无意义的噪声,要么将图像放大到如此大的程度,以至于我丢失了重要的细节

对于下面的示例图片,最终我希望中场线(右侧的蓝色垂直线)是垂直的,我希望底部白色桌子上杂乱无章的电线保持可见和可识别

给出一个如下所示的视频:

我希望制作如下内容:

这张图片是使用GIMP中的“曲线弯曲”过滤器制作的,但我只是把它揉成了一团——所以它并不完美。理想情况下,一旦我得到了准确的参数,中场线将完全垂直

使用
lenscorrection
过滤器时,
k1
k2
的值似乎没有达到我想要的效果: 阴性
k1
,阴性
k2

k1
,正
k2

k1
,负
k2

k1
,正
k2

一般而言:

  • 负片/负片使图像失真,无法辨认
  • 负/正看起来不错,但中场线不在屏幕上,不清楚是否有变形
  • 正反两面看起来最好,但左、右中间的上、下弧形实际上凸出,使中庭线扭曲
  • 阳性/阳性与预期效果相反

    • 简短回答:否。FFMPEG没有曲线弯曲功能。也就是说,无论如何,弯曲不是正确的解决方案。镜头校正是必要的,提供的参数刚好相反

      最后,我只是写了一个脚本,用不同的镜头使用
      lensfun
      转储数千张图像,然后浏览它们,寻找一张看起来不错的图像。奇怪的是,我当时也在试图消除篮球场视频的干扰

      有几个选择:

    • 尝试找到与相机产生的投影大致匹配的标准投影(如鱼眼、赤平等),并查看或测量相机的视野。此时,您可以使用新的
      v360
      过滤器将图像校正为直线投影(现实生活中的直线在图像中保持直线)
    • lensfun
      中为您的相机找到一个数据库条目,或者创建一个数据库条目(文档中有说明),或者发送图片并要求维护人员执行此操作。然后,您可以使用
      lensfun
      过滤器精确校正失真

    • 如果你想让它精确,Lensfun可能是最好的选择,但根据你的相机,你可能会发现v360可以产生足够好的效果,而且速度要快得多。

      正k1,负k2看起来很像你想要的(基于gimp示例)。。。你刚刚试过改变大小吗?@GradyPlayer我实际上写了一个快速脚本,使用
      k1
      k2
      值从
      -1.0
      (包括)到
      1.0
      (包括)转储121幅图像,步骤为
      0.2
      。中场线笔直,k1=0.2和k2=-0.8,但在这一点上,图像的顶部和底部严重扭曲,无法识别。当我使用更高的
      k1
      (例如
      k1=0.4
      k1=0.6
      ,等等)时,失真降低了,但校正的成本进一步降低。在所有121张图片中,没有一张看起来足够好用。你试过滤镜吗?@Gyan我看了一下
      lensfun
      滤镜,但它要求我提供相机制造商。我正在使用的特定相机不在其数据库中(AXIS P3807)