簡體   English   中英

在Python + OpenCV中,如何測試cv.CaptureFromFile失敗的返回值?

[英]In Python+OpenCV, how do I test cv.CaptureFromFile return value for failure?

我正在使用Python綁定到OpenCV。 如果我將不存在的(或壞的)文件傳遞給cv.CaptureFromFile(),如何測試失敗的返回值? 在C / C ++ API中,cvCaptureFromFile()返回NULL。 在Python中,我得到:“<Capture(nil)>”

如何測試“<Capture(nil)>”?

capture = cv.CaptureFromFile( infilename )
# capture != None on failure so this doesn't work.
if capture is None :
    print "Unable to open \"{0}\"".format( infilename )
    sys.exit(1) 

我可以使用os.stat(),但這對文件存在但OpenCV真正無法解碼文件的情況(例如,編解碼器錯誤)沒有幫助。

嘗試使用cv.QueryFrame(capture)讀取一幀。 如果它返回None,則無法打開流。

如果你把它作為布爾值測試,它應該工作。 嘗試這個:

capture = cv.CaptureFromFile( infilename )
if not capture:
    print "Unable to open \"{0}\"".format( infilename )
    sys.exit(1) 

暫無
暫無

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

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