Python使用Opencv打开笔记本电脑摄像头报错解问题及解决


Posted in Python onJune 21, 2022

使用Opencv打开笔记本电脑摄像头报错

近期要做一个下位机上发图像数据给上位机的任务,调试时自己写了一个客户端获取笔记本电脑的摄像头视频数据传输给服务器,然后服务器端显示摄像头视频数据。结果运行时发现客户端报错,视频窗口闪退。

一般获取摄像头图像数据的代码如下:

capture = cv.VideoCapture(0)

但是运行会报错如下:

[ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-52oirelq\opencv\modules\videoio\src\cap_msmf.cpp (677) CvCapture_MSMF::initStream Failed to set mediaType (stream 0, (640x480 @ 30) MFVideoFormat_RGB24(codec not found)

网上搜索了一下后发现只要对上述代码稍作修改即可

# 建立图像读取对象
    capture = cv.VideoCapture(0,cv.CAP_DSHOW)  #更改API设置

此处0代表笔记本自带的摄像头,如果有外接摄像头则可以选填1、2等。

Opencv打开摄像头报错问题

CvCapture_MSMF::initStream Failed to set mediaType (stream 0, (640x480 @ 30)

cap=cv2.VideoCapture(0,cv2.CAP_DSHOW)
enum VideoCaptureAPIs {
       CAP_ANY          = 0,            //!< Auto detect == 0
       CAP_VFW          = 200,          //!< Video For Windows (obsolete, removed)
       CAP_V4L          = 200,          //!< V4L/V4L2 capturing support
       CAP_V4L2         = CAP_V4L,      //!< Same as CAP_V4L
       CAP_FIREWIRE     = 300,          //!< IEEE 1394 drivers
       CAP_FIREWARE     = CAP_FIREWIRE, //!< Same value as CAP_FIREWIRE
       CAP_IEEE1394     = CAP_FIREWIRE, //!< Same value as CAP_FIREWIRE
       CAP_DC1394       = CAP_FIREWIRE, //!< Same value as CAP_FIREWIRE
       CAP_CMU1394      = CAP_FIREWIRE, //!< Same value as CAP_FIREWIRE
       CAP_QT           = 500,          //!< QuickTime (obsolete, removed)
       CAP_UNICAP       = 600,          //!< Unicap drivers (obsolete, removed)
       CAP_DSHOW        = 700,          //!< DirectShow (via videoInput)
       CAP_PVAPI        = 800,          //!< PvAPI, Prosilica GigE SDK
       CAP_OPENNI       = 900,          //!< OpenNI (for Kinect)
       CAP_OPENNI_ASUS  = 910,          //!< OpenNI (for Asus Xtion)
       CAP_ANDROID      = 1000,         //!< Android - not used
       CAP_XIAPI        = 1100,         //!< XIMEA Camera API
       CAP_AVFOUNDATION = 1200,         //!< AVFoundation framework for iOS (OS X Lion will have the same API)
       CAP_GIGANETIX    = 1300,         //!< Smartek Giganetix GigEVisionSDK
       CAP_MSMF         = 1400,         //!< Microsoft Media Foundation (via videoInput)
       CAP_WINRT        = 1410,         //!< Microsoft Windows Runtime using Media Foundation
       CAP_INTELPERC    = 1500,         //!< RealSense (former Intel Perceptual Computing SDK)
       CAP_REALSENSE    = 1500,         //!< Synonym for CAP_INTELPERC
       CAP_OPENNI2      = 1600,         //!< OpenNI2 (for Kinect)
       CAP_OPENNI2_ASUS = 1610,         //!< OpenNI2 (for Asus Xtion and Occipital Structure sensors)
       CAP_GPHOTO2      = 1700,         //!< gPhoto2 connection
       CAP_GSTREAMER    = 1800,         //!< GStreamer
       CAP_FFMPEG       = 1900,         //!< Open and record video file or stream using the FFMPEG library
       CAP_IMAGES       = 2000,         //!< OpenCV Image Sequence (e.g. img_%02d.jpg)
       CAP_ARAVIS       = 2100,         //!< Aravis SDK
       CAP_OPENCV_MJPEG = 2200,         //!< Built-in OpenCV MotionJPEG codec
       CAP_INTEL_MFX    = 2300,         //!< Intel MediaSDK
       CAP_XINE         = 2400,         //!< XINE engine (Linux)
     };

附查看摄像头下标:

import cv2
ID = 0
while(1):
    cap = cv2.VideoCapture(ID,cv2.CAP_DSHOW)
    # get a frame
    ret, frame = cap.read()
    if ret == False:
        ID += 1
    else:
        print(ID)
    break

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。


Tags in this post...

Python 相关文章推荐
布同自制Python函数帮助查询小工具
Mar 13 Python
在Django的session中使用User对象的方法
Jul 23 Python
解决python 输出是省略号的问题
Apr 19 Python
对Python 语音识别框架详解
Dec 24 Python
将python图片转为二进制文本的实例
Jan 24 Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 Python
Python timeit模块的使用实践
Jan 13 Python
python实现图像拼接功能
Mar 23 Python
Django-rest-framework中过滤器的定制实例
Apr 01 Python
通过案例解析python鸭子类型相关原理
Oct 10 Python
彻底解决Python包下载慢问题
Nov 15 Python
python实现图片转字符画的完整代码
Feb 21 Python
virtualenv隔离Python环境的问题解析
Jun 21 #Python
pd.drop_duplicates删除重复行的方法实现
Jun 16 #Python
使用pd.merge表连接出现多余行的问题解决
Jun 16 #Python
pd.DataFrame中的几种索引变换的实现
Python实战实现爬取天气数据并完成可视化分析详解
pandas时间序列之pd.to_datetime()的实现
Jun 16 #Python
pandas中pd.groupby()的用法详解
Jun 16 #Python
You might like
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
PHP获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
vue+axios 拦截器实现统一token的案例
2020/09/11 Javascript
python字符串替换的2种方法
2014/11/30 Python
Python自动重试HTTP连接装饰器
2015/04/28 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
Python数据结构之图的应用示例
2018/05/11 Python
Python中存取文件的4种不同操作
2018/07/02 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
Python requests模块cookie实例解析
2020/04/14 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
体育教育个人自荐信范文
2013/12/01 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
教师评语大全
2014/04/28 职场文书
环保倡议书500字
2014/05/15 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
2016小学新学期寄语
2015/12/04 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书