【问题标题】:cv2: [ WARN:0] global cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB terminating async callback [duplicate]cv2: [WARN:0] 全局 cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB 终止异步回调 [重复]
【发布时间】:2020-05-17 07:58:06
【问题描述】:

完整的警告信息:

[ 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

我不知道要修复这个警告,也不知道它为什么会引起我的注意。希望您能帮助我解决和理解这个问题。
另外,this link 的回答对我没有任何帮助。

提前致谢。

【问题讨论】:

  • 使用您的代码我没有收到任何错误
  • @nathancy 感谢您的回复。 pythoncv2同版本?
  • Windows 10,OpenCV 4.1.0.25Python 3.7.4
  • @M.Rostami 您有时间查看答案吗?投票给对您有帮助的人,然后单击解决问题的答案附近的复选框。通过做这些事情,您将帮助未来的访问者找到他们的答案。

标签: python python-3.x opencv


【解决方案1】:

我已经解决了,问题是我已经打开了我正在执行的代码,请确保你已经关闭了所有的构建

【讨论】:

  • 这与实际问题无关。
【解决方案2】:

这似乎是 opencv 的 MSMF 后端的错误。你可以在this issue看到更多细节。

我认为这个问题在 Linux 平台上不存在。所以我提供了windows的解决方案。

仅限 Windows 的解决方案

对于 windows 平台,您可以将后端更改为其他内容(最好是 DirectShow 后端。为此,请添加到您的 VideoCapture,如下所示:

captureDevice = cv2.VideoCapture(0, cv2.CAP_DSHOW) #captureDevice = camera

这适用于OpenCV>=3.4

【讨论】:

  • C#中的等效代码供参考:using var capture = new VideoCapture(0, VideoCapture.API.DShow)
【解决方案3】:

警告消息不是错误

但如果这让您很困扰,您可以尝试通过在 Windows 上将以下环境变量设置为 0 来禁用 MSMF:

OPENCV_VIDEOIO_PRIORITY_MSMF

How to set the path and environment variables in Windows

【讨论】:

  • 感谢您的回答。我做到了,但警告信息仍然存在。
  • 请记住,更改环境变量后,您必须关闭并重新打开用于启动 OpenCV 代码的应用程序。
  • 在我的例子中,添加这个 envi. Windows 中的变量,我可以更快地访问视频流而不会发出警告。不幸的是,在此之后,我无法使用 cv2.VideoCapture(0) 中的函数,例如 cam.get(cv2.CAP_PROP_POS_FRAMES)...
猜你喜欢
  • 2020-04-23
  • 1970-01-01
  • 2019-07-21
  • 2015-09-23
  • 2022-07-26
  • 1970-01-01
  • 2018-09-22
  • 2014-12-21
  • 1970-01-01
相关资源
最近更新 更多