我正在尝试运行此代码。一开始它可以正常运行,但是由于以下错误而卡在中间:
(-215:断言失败)!_src.empty()在函数'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()
答案 0 :(得分:0)
第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")