【问题标题】:Lens correction projection镜头校正投影
【发布时间】:2009-02-13 14:32:26
【问题描述】:

取消扭曲使用鱼眼镜头或广角镜头拍摄的照片的最简单方法是什么?我正在寻找一个参数很少的像素投影公式。相机和镜头参数是未知的,因此用户必须直观地更改参数。谢谢

【问题讨论】:

标签: formula projection photography photogrammetry


【解决方案1】:

有一篇很好的论文here 提供了一些看起来不错的镜头失真数学模型。至少是这样。我认为 SDX2000 的网格在正确的轨道上。我认为解决问题的最常见方法是将图像映射到网格,然后允许应用扭曲参数来产生枕形和桶形失真。以 Lightroom 或 Photoshop 中的镜头失真滤镜为例。

【讨论】:

    【解决方案2】:

    ImageMagick 进行了精彩的讨论。他们给出了他们使用的方程式。

    请注意,这并不能像 Photoshop CS6 那样校正失真(即,您不能从 Adob​​e 镜头配置文件中获取系数并简单地将它们放入)。

    paper that Kamil points to 似乎是一个极好的深度外观。

    【讨论】:

      【解决方案3】:

      我假设你可以使用镜头方程来做到这一点。

      1/f = 1/object_distance + 1/image_distance

      其中 f 是焦距(用户输入)。图像距离和物距的比率可用于使用放大方程适当地调整图像大小。那么,要得到你真正想要的,你需要重新构造方程:

      1/object_distance = 1/f - 1/image_distance

      然后使用放大方程使用物体高度来调整大小:

      -image_distance/object_distance = image_height/object_height

      您可能已经注意到,关键是您需要知道每个像素与相机之间的距离。否则,它根本行不通。您可以向用户询问该信息,但这似乎不太可能,而且很痛苦。我不知道有任何其他方法可以做到这一点——镜头失真是一种 3D 效果,而你会得到 2D 信息。充其量您可以尝试对其进行二维校正,但这会很困难,并且无法正常工作。

      【讨论】:

      • 无论如何,该公式仅适用于理想镜头,无法解释鱼眼镜头或超广角镜头产生的失真。
      【解决方案4】:

      如果可能,您应该让用户使用同一台相机拍摄参考图像(例如棋盘)的照片,然后使用此信息来分析镜头特性。然后,此信息可用于对同一相机拍摄的其他照片进行反变形。

      对于实现,您可以使用神经网络/遗传算法。

      【讨论】:

      • 用户将使用不同胶片相机拍摄的一组照片。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      相关资源
      最近更新 更多