Try---ing 2021-10-17 16:10 采纳率: 87.5%
浏览 85
已结题

人物识别python中使用opencv视频无法播放

在写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()

显示的效果照片

img

这是参照B站

img


教学视频学习的
教程中也是这样写的但是人家的视频是可以播放的但我的不行

  • 写回答

1条回答 默认 最新

  • 桔子code 2021-10-18 00:21
    关注

    第28行 if ord('b') == cv.waitKey(0): waitKey入参0表示无限时长等待按键,这么写就要求每解析一帧数据就要按下b,程序才会继续下一帧,你可以把这个0改成20,等待20ms自动解析下一帧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月11日
  • 已采纳回答 4月3日
  • 创建了问题 10月17日

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题