簡體   English   中英

錯誤:(-215:Assertion failed)._src:empty() in function 'cv::cvtColor' 在后台 subtrator 代碼

[英]error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor' in background subtrator code

我正在嘗試運行此代碼。 一開始它運行正常,但卡在中間並出現以下錯誤:

(-215:Assertion failed)._src:empty() 在 function 'cv::cvtColor'

我試過更改視頻和路徑名,但沒有用。 誰能解釋為什么我不斷收到此錯誤。

這是代碼: -

import cv2

import numpy as np

cap = cv2.VideoCapture("E:\project vid\lena_jump.avi")

_, first_frame = cap.read()

first_gray = cv2.cvtColor(first_frame, cv2.COLOR_BGR2GRAY)

first_gray = cv2.GaussianBlur(first_gray, (5, 5), 0)

while True:


    _, frame = cap.read()

    gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    gray_frame = cv2.GaussianBlur(gray_frame, (5, 5), 0)

    difference = cv2.absdiff(first_gray, gray_frame)

    _, difference = cv2.threshold(difference, 25, 255, cv2.THRESH_BINARY)

    cv2.imshow("First frame", first_frame)

    cv2.imshow("Frame", frame)

    cv2.imshow("difference", difference)

    key = cv2.waitKey(30)
    if key == 27:
        break
cap.release()

cv2.destroyAllWindows()

問題可能與cap = cv2.VideoCapture("E:\project vid\lena_jump.avi") Python 將\ (反斜杠)字符解釋為轉義字符,以便您可以在字符串中包含制表符和換行符(即\n\t )。 但是,您需要路徑的文字\字符。 因此,您必須使用原始字符串 - 一個不解釋轉義字符的字符串。

將該行替換為cap = cv2.VideoCapture(r"E:\project vid\lena_jump.avi") 或者,您可以使用另一個反斜杠字符轉義反斜杠字符,例如cap = cv2.VideoCapture("E:\\project vid\\lena_jump.avi")

暫無
暫無

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

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