opencv-python - 遇到错误:函数“cvtColor”中的 OpenCV !_src.empty() 错误
问题描述
Traceback (most recent call last):
File ".\faces-test.py", line 20, in <module>
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-10658tfl\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
我无法解决上述错误。下面的代码用于从我保存到本地的视频中捕获帧,并用作 VideoCapture() 函数的参数。但是当我运行下面的代码时,我遇到了上面的错误
import numpy as numpy
import cv2
import pickle
face_cascade = cv2.CascadeClassifier('cascades/data/haarcascade_frontalface_alt2.xml')
eye_cascade = cv2.CascadeClassifier('cascades/data/haarcascade_eye.xml')
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.read("trainner.yml")
labels = {"person_name": 1}
with open("labels.pickle", 'rb') as f:
og_labels = pickle.load(f)
labels = {v: k for k, v in og_labels.items()}
cap = cv2.VideoCapture('C:\\My_Studies\\Python\\testing\\images\\mygeneratedvideo.avi')
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
解决方案
删除所有其他代码并尝试阅读和显示视频。完成此工作后,请担心其余代码。确保您在指定文件夹中有文件并且名称匹配。然后试试这个:
import cv2
cap = cv2.VideoCapture('C:/My_Studies/Python/testing/images/mygeneratedvideo.avi')
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
if ret:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow("Output", gray)
else:
break
key = cv2.waitKey(1) & 0xFF
# if the `q` key was pressed, break from the loop
if key == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
推荐阅读
- reactjs - React 中的 gRPC 流式处理未按预期工作
- python - 如何在 Python 中读取类中的数据文件?
- c++ - 如何在小于 O(N) 的时间内解决这个问题?
- swift4 - 如何在字符串的最后一个位置添加空格?
- html - 为什么我的视频轮播会堆叠视频而不是在幻灯片中显示它们?
- docker - Docker ps 没有显示我在 ps-a 中显示的容器
- swift - 使用自动布局为 UIView 高度设置动画
- android - 在openGL android中绘制带有虚线边界的矩形
- swift - 语音识别语音分析返回 Null (Swift iOS 13)
- amazon-web-services - 如果我在不到一小时的时间内删除 AWS 资源,是否需要付费?