opencv cornerSubPix的用法
时间: 2023-11-19 19:05:06 浏览: 231
cornerSubPix函数是OpenCV中用于亚像素级别的角点精确化的函数,可以用于提高角点检测的精度。
函数原型:
```
cv2.cornerSubPix(image, corners, winSize, zeroZone, criteria)
```
参数解释:
- image:输入的灰度图像
- corners:初步检测到的角点,需要精确化
- winSize:搜索窗口大小
- zeroZone:死区大小
- criteria:迭代终止条件
返回值:返回角点的亚像素坐标
示例代码:
```python
import cv2
import numpy as np
img = cv2.imread("chessboard.png")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# 执行角点检测
corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10)
# 亚像素级别的角点精确化
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
corners = cv2.cornerSubPix(gray, corners, (5,5), (-1,-1), criteria)
# 绘制角点
for corner in corners:
x,y = corner.ravel()
cv2.circle(img, (x,y), 3, (0,0,255), -1)
cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,我们首先执行了角点检测,然后使用cornerSubPix函数对检测到的角点进行精确化,最后绘制出角点的位置。
阅读全文