Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
作者:skye_fly 时间:2022-12-02 10:32:01
使用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
来源:https://blog.csdn.net/skye_fly/article/details/108974819
标签:Python,Opencv,笔记本,摄像头
0
投稿
猜你喜欢
解决csv.writer写入文件有多余的空行问题
2022-12-05 06:54:28
详解python中的生成器、迭代器、闭包、装饰器
2023-06-25 19:39:57
基于python的mysql复制工具详解
2023-06-24 01:08:28
如何基于python生成list的所有的子集
2021-09-24 07:31:31
python绘制评估优化算法性能的测试函数
2022-10-18 20:13:20
mysql查询优化之100万条数据的一张表优化方案
2024-01-13 20:10:04
python 获得任意路径下的文件及其根目录的方法
2022-02-02 17:32:15
Python3中常见配置文件写法汇总
2022-01-21 11:14:07
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2022-07-09 19:47:48
对Python 中矩阵或者数组相减的法则详解
2024-01-02 01:29:17
Django Admin实现上传图片校验功能
2021-12-12 02:27:03
用python 绘制茎叶图和复合饼图
2023-08-04 10:34:54
python中mechanize库的简单使用示例
2021-05-22 14:32:12
python跨文件使用全局变量的实现
2022-03-31 17:24:36
基于numpy中的expand_dims函数用法
2023-02-25 23:24:20
python中watchdog文件监控与检测上传功能
2022-03-17 13:46:58
Python反爬实战掌握酷狗音乐排行榜加密规则
2021-05-29 08:05:57
如何将计数器的值赋给一个变量?
2009-12-03 20:02:00
基于SQL Server OS的任务调度机制详解
2024-01-14 22:17:59
返回页面顶部top按钮通过锚点实现(自写)
2024-04-10 10:47:23