python获取2X10的棋盘格的内外角点坐标
时间: 2023-08-09 21:06:04 浏览: 87
你可以使用OpenCV库的findChessboardCorners函数来检测棋盘格的内角点,然后使用cornerSubPix函数来获取更精确的内角点和外角点坐标。下面是一个示例代码:
```python
import cv2
import numpy as np
# 设置棋盘格大小
board_size = (10, 2)
# 生成棋盘格图像
img = np.zeros((800, 800), dtype=np.uint8)
cv2.drawChessboardCorners(img, board_size, np.array([(i, j) for j in range(board_size[0]) for i in range(board_size[1])]), True)
# 检测棋盘格内角点
ret, corners = cv2.findChessboardCorners(img, board_size, None)
# 获取更精确的内角点和外角点坐标
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
corners = cv2.cornerSubPix(cv2.cvtColor(img, cv2.COLOR_GRAY2BGR), corners, (11, 11), (-1, -1), criteria)
# 打印内角点和外角点坐标
print("内角点坐标:")
print(corners[:board_size[0]])
print("外角点坐标:")
print(corners[board_size[0]:])
```
在这个示例代码中,我们首先生成一个大小为800x800的黑色图像,并使用drawChessboardCorners函数在其中绘制出一个10x2的棋盘格。然后,我们使用findChessboardCorners函数检测棋盘格内角点,并使用cornerSubPix函数获取更精确的内角点和外角点坐标。最后,我们打印出这些坐标。
阅读全文