python 从批量图中标出图片的Shi-Tomasi corner
时间: 2024-10-04 16:04:45 浏览: 37
在Python中,特别是使用OpenCV库处理图像时,你可以通过`cv2.goodFeaturesToTrack()`函数来实现Shi-Tomasi角点检测,这是一个基于特征点检测的经典算法。这个函数可以从一幅图像的批量中找出稳定的、兴趣点性质的角点。
以下是基本步骤:
1. **导入必要的库**:
```python
import cv2
```
2. **读取图像批次**:
```python
images = [cv2.imread(img_path) for img_path in image_paths] # 假设image_paths是一个包含图像路径的列表
```
3. **设置检测参数**:
```python
params = dict(maxCorners=500, qualityLevel=0.01, minDistance=7, blockSize=7)
```
`maxCorners`设定最大角点数,`qualityLevel`是筛选角点的质量阈值,`minDistance`是相邻角点之间的最小距离,`blockSize`是用于计算积分图像大小的窗口。
4. **对每个图像应用角点检测**:
```python
corners_lists = []
for img in images:
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
corners, _ = cv2.goodFeaturesToTrack(gray_img, **params)
corners_lists.append(corners)
```
5. **可视化结果**(如果需要):
```python
for i, corners in enumerate(corners_lists):
cv2.drawChessboardCorners(images[i], (8, 8), corners, True)
cv2.imshow(f"Image {i+1} Corners", images[i])
cv2.waitKey(0) # 等待按键,按任意键继续到下一张
```
阅读全文