opencv识别人数怎么将视频人数框起来
时间: 2023-10-09 13:05:23 浏览: 53
要在OpenCV中将视频中的人数框起来,可以在统计人数的基础上,对每一个检测到的人物进行边界框绘制。
下面是一个示例代码,可以实现对视频流中人数的统计并将人数框起来:
```python
import cv2
# 读取视频流
cap = cv2.VideoCapture('video.mp4')
# 定义背景减除器
fgbg = cv2.createBackgroundSubtractorMOG2()
# 定义计数器
count = 0
while True:
# 读取一帧
ret, frame = cap.read()
if not ret:
break
# 进行前景检测
fgmask = fgbg.apply(frame)
# 进行形态学操作
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3))
fgmask = cv2.morphologyEx(fgmask, cv2.MORPH_OPEN, kernel)
# 进行轮廓检测
contours, hierarchy = cv2.findContours(fgmask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 统计人数并绘制边界框
for contour in contours:
if cv2.contourArea(contour) > 500:
count += 1
(x, y, w, h) = cv2.boundingRect(contour)
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 显示计数结果
cv2.putText(frame, "Count: {}".format(count), (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
cv2.imshow('frame', frame)
# 按下ESC键退出
if cv2.waitKey(1) == 27:
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
需要注意的是,这个示例代码只是一个简单的演示,实际应用中还需要根据具体情况进行调整和优化。