M. *_*ami 5 python opencv python-3.x
完整的警告信息:
[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB terminating async callback
Run Code Online (Sandbox Code Playgroud)
代码:
import numpy as np
import cv2
captureDevice = cv2.VideoCapture(0) #captureDevice = camera
while True:
ret, frame = captureDevice.read()
cv2.imshow('my frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
captureDevice.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
描述:
当它运行时,my frame会出现窗口,当我终止代码时,它会给我警告信息。
Python: 3.7.4
OpenCV (cv2): 4.1.2
OS: Windows 10
Run Code Online (Sandbox Code Playgroud)
我不知道要解决这个警告,也不知道为什么它会引起我的注意。希望你能帮助我解决和理解这个问题。
此外,无论如何,此链接的答案对我没有帮助。
提前致谢。
Rah*_*man 24
这似乎是 opencv 的 MSMF 后端中的一个错误。您可以在此问题中查看更多详细信息。
我不认为这个问题存在于 Linux 平台上。所以我提供了windows的解决方案。
对于 windows 平台,您可以将后端更改为其他内容(最好是 DirectShow 后端。为此,请添加VideoCapture以下内容:
captureDevice = cv2.VideoCapture(0, cv2.CAP_DSHOW) #captureDevice = camera
Run Code Online (Sandbox Code Playgroud)
这适用于OpenCV>=3.4.
警告消息不是错误!
但如果这让您很烦恼,您可以尝试通过0在 Windows 上将以下环境变量设置为来禁用 MSMF:
OPENCV_VIDEOIO_PRIORITY_MSMF
Run Code Online (Sandbox Code Playgroud)