调用 OpenCV 分类器检测视频中的行人并用绿色框进行标注,将框的中心 点用红色点进行标注
时间: 2024-02-28 19:53:15 浏览: 31
以下是基于 OpenCV 的行人检测代码,会在视频中检测行人并用绿色框进行标注,同时在框的中心点用红色点进行标注:
```python
import cv2
# 加载行人检测分类器
classifier = cv2.CascadeClassifier('haarcascade_fullbody.xml')
# 加载视频文件
cap = cv2.VideoCapture('test.mp4')
while True:
# 读取视频帧
ret, frame = cap.read()
# 如果视频结束则退出循环
if not ret:
break
# 将帧转换为灰度图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 检测行人
pedestrians = classifier.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
# 在行人位置画矩形框和中心点
for (x, y, w, h) in pedestrians:
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.circle(frame, (int(x + w/2), int(y + h/2)), 2, (0, 0, 255), -1)
# 显示视频帧
cv2.imshow('Pedestrian Detection', frame)
# 按下 q 键退出循环
if cv2.waitKey(1) == ord('q'):
break
# 释放视频文件和窗口
cap.release()
cv2.destroyAllWindows()
```
需要注意的是,本代码中使用的分类器为 `haarcascade_fullbody.xml`,如果需要检测的是头部或上半身,可以更换为相应的分类器。同时,在实际使用中,可能需要调整检测参数以达到最佳效果。