【问题标题】:error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor' in background subtrator code错误:(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor' in background subtrator code
【发布时间】:2023-04-01 00:01:01
【问题描述】:

我正在尝试运行此代码。一开始它运行正常,但卡在中间并出现以下错误:

(-215:Assertion failed) !_src.empty() in 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()

【问题讨论】:

  • 文件必须是mp4格式,不能读取其他格式

标签: python syntax-error opencv3.0 background-subtraction silhouette


【解决方案1】:

问题可能出在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")

【讨论】:

    猜你喜欢
    • 2019-06-26
    • 2021-04-19
    • 2019-05-24
    • 2019-08-30
    • 2019-11-12
    • 2021-07-30
    • 2021-02-08
    • 1970-01-01
    • 2021-07-12
    相关资源
    最近更新 更多