python opencv 极大值抑制
时间: 2023-10-04 14:09:48 浏览: 90
Shi-tomasi角点检测,python实现及基于opencv实现,(角点检测、非极大值抑制)
在OpenCV中,可以使用cv2.dnn.NMSBoxes()函数实现极大值抑制。
极大值抑制的主要目的是在一组预测框中选出最佳的框,以避免重复的检测。该函数的输入是一组预测框、每个框的置信度(或得分)以及阈值。该函数的输出是根据置信度和阈值进行筛选后的预测框。
下面是一个示例代码:
```python
import cv2
import numpy as np
# 生成一组预测框和对应的置信度
boxes = np.array([[50, 50, 100, 100], [60, 60, 120, 120], [70, 70, 140, 140]])
scores = np.array([0.9, 0.75, 0.8])
# 设置阈值
threshold = 0.8
# 应用极大值抑制
indices = cv2.dnn.NMSBoxes(boxes, scores, threshold, 0.4)
# 输出筛选后的预测框
for i in indices:
i = i[0]
box = boxes[i]
print(box)
```
在上面的示例中,我们生成了三个预测框和对应的置信度,然后应用极大值抑制来筛选出最佳的预测框。最终输出的是一个筛选后的预测框列表。
阅读全文