繁体   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