补注
我个人的测试环境为:
- Python 3.8
- OpenCV 4.4
测试过程中,遇到错误,受益于下面引文,原文如下:
最近做一个项目要用到opencv调用摄像头,遇到一个问题让折腾我一晚上才搞定,为避免有人遇到和我同样的问题,在此做个记录。
错误
问题描述:使用VideoCapture打开摄像头时,摄像头总是闪一下就关闭,查看错误信息发现有一行警告([ WARN:0] Failed to set mediaType (stream 0, (640x480 @ 30) MFVideoFormat_RGB24(unsupported media type)),大意上是告诉我媒体类型不匹配,设置分辨率失败!
网上搜了很多关于此类型的问题,都没能解决我的问题。
最后突然想到去github bug反馈那边搜了一下,还真让我搜到一丝线索,说是调用VideoCapture打开媒体文件时如果第二个参数传入cv::CAP_MSMF(capture.open(0, cv::CAP_MSMF))就有可能出现这种问题。这是该Bug链接VideoCapture fails to get frame if I use msmf and mp4 has audio stream,有兴趣可以了解下。
回头上面我遇到的错误信息,不正是MSMF类型的吗?原来VideoCapture打开摄像头默认媒体类型是CAP_MSMF,于是二话不说,直接显示传入参数capture.open(0, cv::CAP_DSHOW),搞定!
感谢本文作者分享!
原文地址:
https://blog.csdn.net/gjw61652/article/details/106878294
来源:oschina
链接:https://my.oschina.net/u/4387121/blog/4539165