相当于 Python 的 OpenCV 中的 FileNotFoundError

我目前有一个程序,它接受一个视频文件的输入,然后将掩盖颜色,因此有 3 个不同的窗口:一个只显示绿色,一个只显示黄色,一个只显示红色。这部分工作正常,但我只是想获取它,以便如果它在给定路径中找不到文件,它将只使用网络摄像头。我尝试使用try exceptFileNotFoundError使用语句,但这似乎不适用于 OpenCV。


import cv2

import numpy as np


try:

    device = cv2.VideoCapture(r"%Downloads%\Traffic light changing between green yellow and red.mp4")

except FileNotFoundError:

    device = cv2.VideoCapture(0)


while True:

    ret, frame = device.read()

    if not ret:

        break

    hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)

    lower_range_red = np.array([100,100,175])

    upper_range_red = np.array([255,255,255])

    lower_range_yellow = np.array([5,100,225])

    upper_range_yellow = np.array([50,255,255])

    lower_range_green = np.array([40,50,200])

    upper_range_green = np.array([120,200,255])


    mask_red = cv2.inRange(hsv, lower_range_red, upper_range_red)

    mask_yellow = cv2.inRange(hsv, lower_range_yellow, upper_range_yellow)

    mask_green = cv2.inRange(hsv, lower_range_green, upper_range_green)


    result_red = cv2.bitwise_and(frame,frame,mask=mask_red)

    result_yellow = cv2.bitwise_and(frame,frame,mask=mask_yellow)

    result_green = cv2.bitwise_and(frame,frame,mask=mask_green)

    cv2.imshow("Red",result_red)

    cv2.imshow("Yellow",result_yellow)

    cv2.imshow("Green",result_green)


    if cv2.waitKey(1) == 27 & 0xFF:

        break


device.release()

cv2.destroyAllWindows()


撒科打诨
浏览 258回答 2
2回答

海绵宝宝撒

您可以检查它是否正确打开。if device.isOpened()

湖上湖

您可以使用检查文件是否存在import os.pathos.path.isfile(fname) 但是,您没有例外。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python