【问题标题】:Order of points returned by detectCheckerboardPointsdetectCheckerboardPoints 返回的点的顺序
【发布时间】:2015-11-11 00:37:17
【问题描述】:

CV-fcn detectCheckerboardPoints 返回的点的顺序在文档中定义:

数字首先沿着棋盘的短边增加,然后沿着长边增加。但是原点究竟是如何定义的呢?它必须在棋盘的角落,这将留下4个选项。如果我们声明,原点外部必须有一个黑色方块,我们仍然有 2 个选项。

现在看看这两张使用不同相机拍摄的同一棋盘格的图像以及在它们上绘制的 detectCheckerboardPoints 的结果:

正如我们所见,原点位于左图中的左上角,这支持了外部黑色正方形的可能性(两幅图像中的正方形都是倒置的)。我们还可以看到两个图像的编号非常不同。如果我想计算立体相机校准或图像配准,我需要相应的点对。所以我想我的问题是双重的:

  1. detectCheckerboardPoints 返回的图像点的顺序是如何定义的?有多少种选择?
  2. 如何确保在为同一个棋盘的两个图像运行 detectCheckerboardPoints 时获得匹配的点对?

【问题讨论】:

    标签: matlab image-processing computer-vision camera-calibration matlab-cvst


    【解决方案1】:

    如果您有一个不对称的棋盘,其中一侧的正方形为偶数,另一侧为奇数,则只有一种方法可以设置原点,使其外侧的正方形为黑色,长边为 X-轴,X 轴指向右侧,Y 轴指向下方。这会产生右手坐标系,Z 轴指向棋盘。

    在文档的图片中,如果将原点移动到另一个黑色方块,那么短边必须成为 X 轴,或者 X 轴必须改变方向。

    在您的特定情况下,您遇到了问题,因为正方形的颜色在 IR 图像中是相反的。这将导致检测点的顺序不同。如果您想将这两个摄像头校准为立体对,您必须更改 IR 摄像头设置以反转图像强度,或者在校准之前以编程方式自行完成。

    【讨论】:

    • 是的,如果我们将轴定义为像您所说的那样,并且黑色方块必须在原点之外,那么只有一种可能性 - 我检查了 Mathworks 代码,他们确实确保在外面正方形是黑色的。至于点匹配:要么您必须确保您的棋盘是不对称的,并且黑色方块在两种模式中都显示为黑色(如您所说),或者您可以编写一个方法,通过使用确定的 x 和y 轴来确定适当的原点。
    猜你喜欢
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2012-03-31
    • 2011-07-08
    • 1970-01-01
    相关资源
    最近更新 更多