我成功地使用了OpenCV函数findChessboardCorners()
,但我对corners
返回值的形状感到困惑
下面是我的代码。我已经知道我的棋盘图像有8 x 6个内角
import cv2
nx = 8
ny = 6
img = cv2.imread('test_image2.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, corners = cv2.findChessboardCorners(img, (nx, ny), None)
print(corners.shape)
最后一行打印:(48, 1, 2)
这个1
来自哪里?我知道有8*6=48
个角点,每个角点都有2
个坐标。但是1
呢
documentation for findChessboardCorners()没有说明corners
结果:
corners – Output array of detected corners.
这是一个不必要的维度,您可以使用
numpy
的squeeze function来消除该维度:在this documentation中,他们还在注释行中提到“无关的单例维度”:
编辑:
<>我简单地把代码转换成C++边去挖掘。最后,这里是它的代码和控制台输出:输出:
因此,您得到的输出分别给出:
相关问题 更多 >
编程相关推荐