【问题标题】:error: (-215:Assertion failed) while using openCV错误:(-215:断言失败)在使用 openCV 时
【发布时间】:2020-03-17 21:31:42
【问题描述】:
import cv2

face_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_frontalcatface.xml')

cap = cv2.VideoCapture(0)

while True:
    _, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    face = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x,y,w,h) in face:
        cv2.rectangle(frame, (x,y), (x+w, y+h), (0, 255, 255), 2)

        roi_gray = gray[y:y+h, x:x+w]
        roi_color = frame[y:y+h, x:x+w]

        eye = eye_cascade.detectMultiScale(roi_gray)
        for (ex,ey,ew,eh) in eye:
            cv2.rectangle(roi_color, (ex,ey),(ex+ew, ey_eh), (0,255,0),2)

    cv2.imshow('Face', frame)

    k = cv2.waitKey(1)

    if k ==27:
        break


    cv2.destroyAllWindows()
    cap.release()

我一直收到这个错误

错误:OpenCV(3.4.5) /Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/color.cpp:181: 错误:(-215:Assertion failed) !_src.empty() in function 'cvtColor'

【问题讨论】:

  • 请提供完整的错误回溯
  • 问题似乎是frame。它要么是空的,要么是格式错误的。
  • 您的网络摄像头很可能有问题。 OpenCV 无法访问其流。
  • 这能回答你的问题吗? OpenCV !_src.empty() in function 'cvtColor' error
  • VideoCapture read() 方法返回帧读取成功/失败的布尔值 - 代码中的下划线。使用该值并在代码中自己处理错误是一种很好的做法。

标签: python opencv tensorflow anaconda


【解决方案1】:

当框架无法正确加载到 cv2 时发生此错误。因为帧中的图像已损坏或不支持 cv2 或图像尺寸过大。有时这个错误可以通过使用 try 的异常处理来解决,除了块。尝试打印这些图像,然后您可以了解框架中的图像是否支持 cv2。

【讨论】:

    【解决方案2】:

    由于我在进行图像模板匹配时遇到了同样的问题,所以当图像未正确加载时发生。就我而言,我输入了错误的文件名扩展名。尝试捕捉框架的形状

    【讨论】:

      猜你喜欢
      • 2019-12-04
      • 2021-09-10
      • 1970-01-01
      • 2022-01-14
      • 2020-08-21
      • 2020-03-29
      • 2021-10-09
      • 2022-01-10
      相关资源
      最近更新 更多