首页 > 解决方案 > OpenCV(4.5.4-dev) 错误: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

问题描述

我正在尝试使用 haarcascades 从汽车视频中检测汽车,并且我有一个输出。但是错误在那里分裂:

文件“D:\Documents\KY7\Oracle\baocao\car_detector_haarcascades\car.py”,第 10 行,灰色 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.error: OpenCV(4.5.4-dev) D: \a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: 错误: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

这是代码:

import numpy as np
import cv2

car_cascade = cv2.CascadeClassifier('haarcascade_car.xml')

cap = cv2.VideoCapture(r"D:\Documents\KY7\Oracle\baocao\car_detector_haarcascades\cars.mp4")

while cap.isOpened():
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    cars = car_cascade.detectMultiScale(gray, 1.3, 5)

    for (x,y,w,h) in cars:
        cv2.rectangle(img,(x,y),(x+w+5,y+h+5),(0,0,255),3)

    cv2.imshow('Car Detector',img)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break

cap.release()
cv2.destroyAllWindows()

我不知道要修复这个错误

标签: pythonopencv

解决方案


你的错误是 img is empty

可能您需要检查捕获是否成功,例如

if not ret:
    break

推荐阅读