【问题标题】:OpenCV: Estimating radial distortion without a calibration imageOpenCV:估计没有校准图像的径向失真
【发布时间】:2015-03-26 08:49:31
【问题描述】:

我目前在 Java 中使用 OpenCV,但如果需要,我可以切换到其他东西。

我在世界坐标和图像坐标中有一组已知点。这些点不是通过校准目标获得的。它们可能非常不准确。我可以假设它们接近共面。

我正在尝试从中获得单应性和镜头校正。相机很便宜(ish),所以有镜头问题。

我一直在努力让 OpenCV 函数在没有校准目标的情况下帮助我。有很多类似的问题被问到(我发现最相似的是这个:Correct lens distortion using single calibration image in Matlab),但没有一个完全符合要求。

我在想我可以迭代地找到单应性,纠正,找到镜头失真,纠正并重复,直到我得到一个好的结果。即便如此,我似乎无法在 OpenCV 中单独执行这些操作。

我是 OpenCV 的新手,所以请温柔一点。

【问题讨论】:

    标签: java opencv computer-vision distortion radial


    【解决方案1】:

    openCV 有这个功能

    Camera calibration

    函数“calibrateCamera”将世界坐标和相应的图像坐标作为输入,并返回相机固有的(也是失真)

    【讨论】:

    • 谢谢,我使用的 CalibrateCamera2 具有几乎相同的功能。我运气不好。我认为这可能是因为我没有“校准模式的几个视图”。我将再次尝试 CalibrateCamera 和 CalibrateCamera2。我会发布代码,但我认为我什至还没有!
    【解决方案2】:

    您至少需要“看到”已知共线的特征,无论它们是否是共面点的图像。这是因为根据定义,为了估计(并消除)镜头的径向失真,您需要最小化的误差信号是共线点与直线的偏差。

    另见this answer

    【讨论】:

    • 因此可以计算相机失真系数并使用停止标准/约束进行迭代,即目标对象应该是具有正交线对的矩形? (如果 OP 的目标是一个矩形?)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    • 2020-10-31
    • 2013-12-29
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 2012-03-27
    相关资源
    最近更新 更多