簡體   English   中英

OpenCV VideoCapture 和 (-215:Assertion failed)._src.empty() in function 'cvtColor'

[英]OpenCV VideoCapture and (-215:Assertion failed) !_src.empty() in function 'cvtColor'

這段代碼最初運行良好。 但是當我再次運行它時,出現以下錯誤。 我搜索了很多有關錯誤的信息,但找不到解決方案。 任何幫助,將不勝感激。

cv2.error: OpenCV(4.4.0) /tmp/pip-wheel-frffvd08/opencv-python/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'

下面的代碼是我寫的Python代碼。

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
cap.set(3,640) # set Width
cap.set(4,480) # set Height

while(True):
#while(cap.isOpened()):
    ret, frame = cap.read()
    frame = cv2.flip(frame, -1) # Flip camera vertically
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    cv2.imshow('frame', frame)
    cv2.imshow('gray', gray)

    k = cv2.waitKey(30) & 0xff
    if k == 27: # press 'ESC' to quit
        break
cap.release()
cv2.destroyAllWindows()

._src.empty() 意味着你有空框架。

當 cv2 無法從相機/文件/流中獲取幀時,它不會顯示錯誤,但它在 frame 中設置 None 並在 ret 中設置 False - 你必須檢查這些值之一

if frame is not None: 
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    # ... other code ...
else:
    print("empty frame")
    exit(1)

要么

if ret:  # if ret is True:
      gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
      # ... other code ...
else:
      print("empty frame")
      exit(1)

有時 cv2 無法找到 haarcascades 文件。 並且有一個特殊變量,其文件夾路徑為.xml - cv2.data.haarcascades - 你可能需要

faceCascade = cv2.CascadeClassifier( os.path.join(cv2.data.haarcascades, "haarcascade_frontalface_default.xml") )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM