全警告消息:
[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB terminating async callback
代码:
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()
描述:
当它运行时,my frame
窗口就会出现,当我终止代码时,它会给我这个警告消息。
Python: 3.7.4
OpenCV (cv2): 4.1.2
OS: Windows 10
我不知道该怎么修正这个警告,也不知道为什么它会让我。希望你能帮我解决和理解这个问题。
此外,此链接的答案对我也没有帮助。
提前谢谢。
发布于 2020-08-15 08:13:23
这似乎是opencv的MSMF后端中的一个bug。您可以在本期中看到更多细节。
我不认为这个问题存在于Linux平台上。所以我提供了windows的解决方案。
Windows唯一解决方案
对于windows平台,您可以将后端更改为其他东西(最好是DirectShow后端)。为此,请添加到VideoCapture
中,如下所示:
captureDevice = cv2.VideoCapture(0, cv2.CAP_DSHOW) #captureDevice = camera
这适用于OpenCV>=3.4
。
发布于 2020-02-01 13:26:23
警告消息不是错误!
但是,如果这让您如此烦恼,您可能会尝试通过在Windows上将以下环境变量设置为0
来禁用MSMF:
OPENCV_VIDEOIO_PRIORITY_MSMF
https://stackoverflow.com/questions/60007427
复制相似问题