在写opencv的视频人像识别时,打开的视频窗口不播放视频,只是停在视频的第一针对人物进行了识别,请教高人知道是什么问题导致的。
代码如下:
# 导入模块
import cv2 as cv
# 定义一个人脸检测函数
def face_demo(img):
# 先将人脸图片转换位黑白照片
gary = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
# 引入检测函数 通过更改分类器优化结果
face_detect = cv.CascadeClassifier(
'D:/python_opencv/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')
# 检测函数设置方法 灰度照片,缩放,检测次数,默认0,(最小尺寸),(最大尺寸)
# face=face_detect.detectMultiScale(gary,1.1,3,0,(50,50),(200,200))
# 一般通用
face = face_detect.detectMultiScale(gary)
for x, y, w, h in face:
cv.rectangle(img, (x, y), (x + w, y + h), color=(0, 0, 255), thickness=2)
cv.imshow('img', img)
# 读取摄像头
# cap=cv.VideoCapture(0)
# 读取视频文件
cap = cv.VideoCapture('sucai003.mp4')
# 等待 通过键盘控制结束
while True:
flag,frame = cap.read()
#判断视频是否播放完毕
if not flag:
break
face_demo(frame)
if ord('b') == cv.waitKey(0):
break
# 清理内存
cv.destroyAllWindows()
# 释放摄像头
cap.release()
显示的效果照片
这是参照B站
教学视频学习的
教程中也是这样写的但是人家的视频是可以播放的但我的不行