Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改OpenCV中的默认棋盘格块大小_Opencv_Camera Calibration - Fatal编程技术网

如何更改OpenCV中的默认棋盘格块大小

如何更改OpenCV中的默认棋盘格块大小,opencv,camera-calibration,Opencv,Camera Calibration,我目前正在试验OpenCV的校准工具箱,并使用默认的棋盘模式校准相机。我想使用更大的棋盘格块,这样我就可以站得离相机更远,而不会影响OpenCV检测角点的能力 据我所知,OpenCV是使用默认块大小值预先编程的。我的问题是:有没有办法更改代码中的默认块大小值?我在哪里可以改变这个?TIAOpenCV不对您的图案的物理尺寸或图案尺寸进行任何假设 也就是说,您可以有任何带有R行和C列的模式。 每个方块是1厘米还是1米也无关紧要 您为该函数提供的唯一内容是objectPoints和imagePoint

我目前正在试验OpenCV的校准工具箱,并使用默认的棋盘模式校准相机。我想使用更大的棋盘格块,这样我就可以站得离相机更远,而不会影响OpenCV检测角点的能力


据我所知,OpenCV是使用默认块大小值预先编程的。我的问题是:有没有办法更改代码中的默认块大小值?我在哪里可以改变这个?TIA

OpenCV不对您的图案的物理尺寸或图案尺寸进行任何假设

也就是说,您可以有任何带有R行和C列的模式。 每个方块是1厘米还是1米也无关紧要

您为该函数提供的唯一内容是
objectPoints
imagePoints

这些参数的数组尺寸(大小)与图案的角数相对应


objectPoints
应该包含棋盘转角的三维坐标(在您的情况下,是平面坐标,通过设置Z=0)。这些角应该缩放到棋盘的实际大小。也就是说,如果一个角点有行-列索引
(3,1)
,并且每个块边是3cm,那么三维坐标将是
(0.09,0.03,0.00)

,这是有意义的,但是您介意解释一下行
objp=np.zeros((6*7,3),np.float32)
objp[:,:2]=np.mgrid[0:7,0:6].T.reforme(-1,2)
?它似乎创建了一个包含角点索引而不是坐标(例如(3,1,0)而不是(0.09,0.03,0))的数组。它创建了一个6x7的三维点网格,其中每个坐标是(x,y,0)。x和y坐标由
meshgrid
函数创建,在本例中,该函数创建常规网格。在解释器中运行meshgrid命令并查看输出,希望它非常清晰。