cv2.cornerSubPix
时间: 2023-11-09 11:01:08 浏览: 64
cv2.cornerSubPix是OpenCV中用于亚像素级别角点检测的函数。它可以对角点进行精细化处理,提高角点检测的准确性。
该函数的语法如下:
```
cv2.cornerSubPix(image, corners, winSize, zeroZone, criteria)
```
其中,参数含义如下:
- image:输入图像,必须是单通道8位或浮点型图像。
- corners:输入的角点向量,可以是由cv2.goodFeaturesToTrack()等函数检测出来的角点。
- winSize:搜索窗口大小。
- zeroZone:死区大小,表示在搜索过程中不计算的中心区域大小。
- criteria:迭代终止条件。
下面是一个示例代码:
```python
import cv2
import numpy as np
img = cv2.imread('corner.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10)
corners = np.int0(corners)
for i in corners:
x, y = i.ravel()
cv2.circle(img, (x, y), 3, (0, 0, 255), -1)
cv2.imshow('corners', img)
cv2.waitKey(0)
corners_subpix = cv2.cornerSubPix(gray, corners, (5, 5), (-1, -1), (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001))
for i in corners_subpix:
x, y = i.ravel()
cv2.circle(img, (x, y), 3, (0, 255, 0), -1)
cv2.imshow('corners_subpix', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```