使用python的cornersubpix函数提取角点中心
时间: 2024-10-15 12:23:28 浏览: 30
`cornerSubPix` 是 OpenCV (Python 版本) 中的一个功能,它用于细化从 Harris 或 Shi-Tomasi 角点检测器获得的初步角点估计。这个函数可以帮助我们得到更精确、更接近图像实际像素位置的角点坐标。
当你使用 `cv2.cornerSubPix()` 函数时,通常需要提供以下几个关键参数:
1. **image**: 需要检测角点的输入图像。
2. **corners**: 初步检测到的角点集合,通常是使用像 `cv2.goodFeaturesToTrack()` 或 `cv2.Harris Corner Detection` 等算法得到的结果。
3. **winSize**: 检查窗口大小,即在每个角点周围搜索更多细节像素的区域。
4. **zeroZone**: 一个偏移量,用于在窗口内查找局部极值,防止结果偏向于边缘。
5. **criteria**: 一个元组,定义了迭代过程何时停止的条件,如最大迭代次数和精度阈值。
通过这些参数,函数会调整每个角点的位置,使其尽可能地落在图像强度的局部最高点上。
使用示例:
```python
import cv2
# ... 其他步骤,例如角点检测
corners = good_features_to_track(image, **params)
refined_corners = cv2.cornerSubPix(image, corners, winSize=(5, 5), zeroZone=(-1,-1), criteria=(cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 0.03))
# refined_corners 就是你提取出的角点中心更准确的位置
```
阅读全文