"cv :: VideoCapture :: open VIDEOIO (CV_IMAGES): возбуждено исключение OpenCV" - PullRequest
0 голосов
/ 12 марта 2020

Когда я использую отладчик VsCode для запуска кода, я вообще не получаю никакой ошибки, и все работает нормально, но когда я пытаюсь запустить код без отладчика, я получаю эту ошибку:

[ERROR:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap.cpp (116) cv::VideoCapture::open VIDEOIO(CV_IMAGES): raised OpenCV exception:

OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\videoio\src\cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number (in the name of file): vtest.avi in function 'cv::icvExtractPattern' 

Я использую OpenCV 4.2.0.32 и numpy 1.18.1

Код, который я использую:

import cv2
import numpy as np

video = cv2.VideoCapture("vtest.avi")

ret, frame1 = video.read()
ret, frame2 = video.read()


while video.isOpened():
    try:
        difference = cv2.absdiff(frame1, frame2)
        grayscale = cv2.cvtColor(difference, cv2.COLOR_BGR2GRAY)
        blur = cv2.GaussianBlur(grayscale, (5, 5), 0)
        _, threshold = cv2.threshold(blur, 35, 255, cv2.THRESH_BINARY)
        dilated = cv2.dilate(threshold, None, iterations=2)
        contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

        for contour in contours:
            (x, y, w, h) = cv2.boundingRect(contour)
            if cv2.contourArea(contour) < 950:
                continue
            cv2.drawContours(frame1, contours, -1, (0, 255, 0), 1)
            cv2.rectangle(frame1, (x, y), (x+w, y+h), (120, 0, 150), 2)

        cv2.imshow("feed", frame1)
        frame1 = frame2
        ret, frame2 = video.read()

        if cv2.waitKey(50) == 27:
            break
    except:
        break

cv2.destroyAllWindows()
video.release()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...