gpt4 book ai didi

python - 函数 'cv::cvtColor'和Cap.read()中的src.empty()无法读取视频帧

转载 作者:行者123 更新时间:2023-12-02 16:57:58 27 4
gpt4 key购买 nike

Python 3.8,Opencv 4.4.0
我已经正确加载了正在运行的视频文件,我认为Cap.read()无法读取视频帧。我正在研究口罩检测项目,并想在预先录制的戴口罩视频中进行测试。
完整代码

# import packages
import cv2
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing.image import load_img, img_to_array
import numpy as np

model = load_model('model_02.h5')
img_width, img_hight = 200, 200

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture('wearingmask.mp4') # for video

img_count_full = 0

#parameters for text
font = cv2.FONT_HERSHEY_SIMPLEX
org = (1, 1)
class_lable=' '
fontScale = 1
# Blue color in BGR
color = (255, 0, 0)
thickness = 2 #1

while True:
img_count_full += 1

response, color_img = cap.read()

if response == False:
break
gray_img = cv2.cvtColor(color_img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray_img, 1.1, 6)
完全错误
error                                     Traceback (most recent call last)
<ipython-input-8-d7656fcb48d9> in <module>
39 break
40
---> 41 gray_img = cv2.cvtColor(color_img, cv2.COLOR_BGR2GRAY)
42 faces = face_cascade.detectMultiScale(gray_img, 1.1, 6)

error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-9d_dfo3_\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

最佳答案

这很自我解释。您代码的核心逻辑基本上是遍历视频中的图像,直到没有更多图像为止,然后将cvtColor应用于最后一个图像。
whileresponse时,您的False循环中断,即您已经到达视频文件的末尾。但是,当response为False时,相应的color_img实际上是None。要实际获得最后一个有效图像,您需要执行以下操作:

while True:
img_count_full += 1

response, frame = cap.read()
if response == False:
break
color_img = frame

gray_img = cv2.cvtColor(color_img, cv2.COLOR_BGR2GRAY)

关于python - 函数 'cv::cvtColor'和Cap.read()中的src.empty()无法读取视频帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64526674/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com