首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cv2:[警告:0]全局cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB终止异步回调

cv2:[警告:0]全局cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB终止异步回调
EN

Stack Overflow用户
提问于 2020-01-31 16:06:09
回答 2查看 51.7K关注 0票数 8

全警告消息:

代码语言:javascript
运行
复制
[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB terminating async callback  

代码:

代码语言:javascript
运行
复制
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窗口就会出现,当我终止代码时,它会给我这个警告消息。

代码语言:javascript
运行
复制
Python: 3.7.4
OpenCV (cv2): 4.1.2
OS: Windows 10

我不知道该怎么修正这个警告,也不知道为什么它会让我。希望你能帮我解决和理解这个问题。

此外,此链接的答案对我也没有帮助。

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2020-08-15 08:13:23

这似乎是opencv的MSMF后端中的一个bug。您可以在本期中看到更多细节。

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

Windows唯一解决方案

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

代码语言:javascript
运行
复制
captureDevice = cv2.VideoCapture(0, cv2.CAP_DSHOW) #captureDevice = camera

这适用于OpenCV>=3.4

票数 42
EN

Stack Overflow用户

发布于 2020-02-01 13:26:23

警告消息不是错误

但是,如果这让您如此烦恼,您可能会尝试通过在Windows上将以下环境变量设置为0来禁用MSMF:

代码语言:javascript
运行
复制
OPENCV_VIDEOIO_PRIORITY_MSMF

如何在Windows中设置路径和环境变量

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60007427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档