detectCheckerboardPoints返回的点数顺序

时间:2015-08-18 07:32:03

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

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

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

现在看一下使用不同相机拍摄的相同棋盘格的这两张图片,并在其上绘制detectCheckerboardPoints的结果: enter image description here

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

  1. detectCheckerboardPoints返回的图像点的排序究竟是多少?有多少选择?
  2. 如何为同一棋盘的两张图片运行detectCheckerboardPoints,以确保获得匹配的点对?

1 个答案:

答案 0 :(得分:1)

如果你有一个非对称棋盘,其中一面有偶数个正方形而另一面有奇数,那么只有一种方法来设置原点,使得它外面的正方形是黑色,长边是X-轴,X轴指向右侧,Y轴指向下方。这导致右手坐标系,Z轴指向板。

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

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