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

目录
  • 使用Opencv打开笔记本电脑摄像头报错
  • Opencv打开摄像头报错问题

使用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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python opencv调用笔记本摄像头

    通过查看书籍,自己总结了一下,怎样用python代码实现调用笔记本摄像头的功能. 这主要是通过opencv中cv2模块来实现这个功能.其中是调用cv2中的函数,比如:imread()函数,imshow()函数等等.... 以下是具体的实现代码: 1.通过窗口展示图片: import cv2 """ :param 无 :return 无 """"" # 读取图片 img = cv2.imread("index.jpeg

  • Python详细讲解图像处理的而两种库OpenCV和Pillow

    目录 一.简介 1.1 图像处理-OpenCV 1.2 图像处理- PIL和Pillow 二. 常用图像类型 2.1 二值图像 2.2 灰度图像 2.3 RGB图像 2.4 常用颜色空间简介 三.OpenCV图像读写与显示 3.1 读入图像 3.2 显示图像 3.3 写出图像 四.图像几何变换 4.1 图像平移 4.2 图像旋转 4.3 图像缩放 一.简介 实现计算机视觉任务的过程中,不可避免地需要对图像进行读写操作以及图像预处理操作,下面介绍两个常用的Python图像处理库:OpenCV和Pi

  • Python OpenCV基于HSV的颜色分割实现示例

    目录 前言 1.什么是HSV 2.代码实战 2.1 createTrackbar使用方法及步骤 2.2 代码详解 3.总结 前言 一周没有更新博客了,这一周的时间内加强了对机器学习和图像处理的学习.学的有点混乱,有必要记录一下. 深度学习可以解决很多问题,但有时候深度学习和图像处理相结合才能有更好的效果:比如,在进行交通信号灯检测时,用目标检测模型确定信号灯位置后,对信号灯进行颜色分割再识别可大大提高准确率. 机器学习领域中有句话:数据和特征决定了模型的上限,而算法只不过是逼近这个上限而已,所以

  • Python+OpenCV绘制多instance的Mask图像

    目标:Mask中,不同值表示不同的实例(instance),在原图中,绘制不同的instance实例,每个实例用不同颜色表示,实例边界用白色表示. 源码: def generate_colors(n_colors, seed=47): """ 随机生成颜色 """ np.random.seed(seed) color_list = [] for i in range(n_colors): color = (np.random.random((1,

  • Python OpenCV利用笔记本摄像头实现人脸检测

    本文实例为大家分享了Python OpenCV利用笔记本摄像头实现人脸检测的具体代码,供大家参考,具体内容如下 1.安装opencv 首先参考其他文章安装pip. 之后以管理员身份运行命令提示符,输入以下代码安装opencv pip install --user opencv-python 可以使用以下代码测试安装是否成功 #导入opencv模块 import cv2 #捕捉帧,笔记本摄像头设置为0即可 capture = cv2.VideoCapture(0) #循环显示帧 while(Tru

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

    目录 使用Opencv打开笔记本电脑摄像头报错 Opencv打开摄像头报错问题 使用Opencv打开笔记本电脑摄像头报错 近期要做一个下位机上发图像数据给上位机的任务,调试时自己写了一个客户端获取笔记本电脑的摄像头视频数据传输给服务器,然后服务器端显示摄像头视频数据.结果运行时发现客户端报错,视频窗口闪退. 一般获取摄像头图像数据的代码如下: capture = cv.VideoCapture(0) 但是运行会报错如下: [ WARN:0] global C:\Users\appveyor\Ap

  • 解决Python中字符串和数字拼接报错的方法

    前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # coding=utf8 str = '你的分数是:' num = 82 text = str+num+'分 | 琼台博客' print text 执行结果 直接报错:TypeError: cannot concatenate 'str' and 'int' objects 解决这个方法只有提前把num转换为字符串类型,可以使用bytes函数把int

  • Python升级导致yum、pip报错的解决方法

    前言 本文主要给大家介绍了因Python升级导致yum.pip报错的解放方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 原因: yum是Python写的.服务器上Python版本过低,升级为2.7,而yum/pip未升级,导致在执行yum/pip时报这个错误. yum报错: There was a problem importing one of the Python modules required to run yum. The error leading to th

  • Linux下利用Opencv打开笔记本摄像头问题

    新建test文件夹,文件夹存在test.cpp和CMakeLists.txttest.cpp#include <iostream> #include <string> #include <sstream> #include <opencv2/core.hpp> #include <opencv2/highgui.hpp> #include <opencv2/videoio.hpp> using namespace cv; using

  • python异常处理之try finally不报错的原因

    因为有把python程序打包成exe的需求,所以,有了如下的代码 import time class LoopOver(Exception): def __init__(self, *args, **kwargs): pass class Spider: def __init__(self): super().__init__() def run(self): raise LoopOver @property def time(self): return '总共用时:{}秒'.format(se

  • 关于idea刚打开时疯狂报错的问题

    项目场景: idea刚打开,原本好的项目疯狂报错! 问题描述: 解决方案: 1.可能是maven的jar包丢失,需要重新编译一下maven文件 处理结果: 无果,并非jar包缺少 2.可能是缓存导致,idea清理一下缓存 处理结果: 完美解决,不在报错! 到此这篇关于关于idea刚打开时疯狂报错的问题的文章就介绍到这了,更多相关idea打开报错内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • Pycharm最全报错的原因与解决方法总结(推荐!)

    目录 前言 (一)Pycharm报错:No R interpreter defined (二)找不到指定的模板:ImportError:DDL load failed while importing ft2font: (三)pycharm中无法识别导入自己写的模块 (四)pycharm光标变粗,无法编辑代码 (五)使用Pycharm给Python程序传递参数 总结 前言 最近在使用Pycharm,在运行或者安装的过程中出现了各种各样的报错,前面已经介绍过安装pygame出现报错的解决方法.文章总

  • 详解pycharm的python包opencv(cv2)无代码提示问题的解决

    我们在使用pycharm的时候总是很喜欢其强大的代码提示功能,只需ctrl+左键就可以查看源码,"."也能显示所含的函数,但是很多时候opencv的模块经常是失灵的. so,解决此问题. 环境:windows/linux 第一步 安装opencv 这是加强版的opencv带有很多机器学习的方法 pip install opencv-contrib-python 第二步 在site-package中修改cv2的__init__.py文件 找到你的python的site-packages文

  • Navicat连接mysql报错1251错误的解决方法

    本文为大家分享了Navicat连接mysql报错1251错误的解决方法,供大家参考 错误提示 出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password 解决办法:把mysql用户登录密码加密规则还原成mysql_native_password. 步骤: 1.打开cmd命令窗口,输入命令 mysql -uroot -p 打开MySQL数据库,然后输入密码进行登录. 2.修改加密规则 将加

  • SpringBoot项目报错:"Error starting ApplicationContext...."解决办法

    目录 发现错误 一.编译出问题 二.请求接口重复 三.加@Mapper注解 四.加@SpringBootApplication注解,数据库问题 五.端口重复问题 六.包冲突 总结 发现错误 SpringBoot项目报错: Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 以下方案80%可以帮助您解决这些个‘可恶的’问题

随机推荐