用python来绘制棋盘格,并用harris算法检测角点,给出完整代码
时间: 2024-02-28 17:27:48 浏览: 67
用harris算法进行角点检测
以下是代码实现:
```python
import cv2
import numpy as np
# 定义棋盘格大小
rows = 8
cols = 8
# 创建棋盘格图像
img = np.zeros((rows*50, cols*50), dtype=np.uint8)
for i in range(0, rows*50, 50):
for j in range(0, cols*50, 50):
if (i//50+j//50) % 2 == 0:
img[i:i+50, j:j+50] = 255
else:
img[i:i+50, j:j+50] = 0
# 使用Harris算法检测角点
gray = np.float32(img)
dst = cv2.cornerHarris(gray, 2, 3, 0.04)
dst = cv2.dilate(dst, None)
# 标记角点
img[dst > 0.01*dst.max()] = 127
# 显示结果
cv2.imshow('Chessboard', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该代码首先创建一个 $8 \times 8$ 的棋盘格图像,然后使用 Harris 算法检测其中的角点并标记出来,最后显示结果。
阅读全文