用python绘制棋盘并用红色圈进行全部角点检测
时间: 2024-03-13 22:22:32 浏览: 201
好的,下面是用Python绘制棋盘并用红色圈进行全部角点检测的代码:
```python
import numpy as np
import cv2
# 棋盘格规格
row = 6
col = 9
# 准备对象点坐标
obj_point = np.zeros((row*col, 3), np.float32)
obj_point[:,:2] = np.mgrid[0:row, 0:col].T.reshape(-1,2)
# 读入棋盘图像并进行灰度转换
img = cv2.imread('chessboard.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 找到棋盘角点
ret, corners = cv2.findChessboardCorners(gray, (row, col), None)
if ret == True:
# 绘制角点并标记
cv2.drawChessboardCorners(img, (row, col), corners, ret)
for corner in corners:
x, y = corner.reshape(-1)
cv2.circle(img, (x, y), 5, (0, 0, 255), -1)
# 显示棋盘图像
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注意,这里假设棋盘图像是保存在当前目录下的一个名为 chessboard.png 的文件。如果要使用其他图像,需要对代码中的路径进行相应的更改。
另外,为了方便起见,这里直接使用了 OpenCV 的 findChessboardCorners 函数来找到棋盘角点。如果需要了解更多角点检测算法的原理和实现细节,可以参考相关资料。
阅读全文