Python使用Opencv打開(kāi)筆記本電腦攝像頭報(bào)錯(cuò)解問(wèn)題及解決
使用Opencv打開(kāi)筆記本電腦攝像頭報(bào)錯(cuò)
近期要做一個(gè)下位機(jī)上發(fā)圖像數(shù)據(jù)給上位機(jī)的任務(wù),調(diào)試時(shí)自己寫了一個(gè)客戶端獲取筆記本電腦的攝像頭視頻數(shù)據(jù)傳輸給服務(wù)器,然后服務(wù)器端顯示攝像頭視頻數(shù)據(jù)。結(jié)果運(yùn)行時(shí)發(fā)現(xiàn)客戶端報(bào)錯(cuò),視頻窗口閃退。
一般獲取攝像頭圖像數(shù)據(jù)的代碼如下:
capture = cv.VideoCapture(0)
但是運(yùn)行會(huì)報(bào)錯(cuò)如下:
[ 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)
網(wǎng)上搜索了一下后發(fā)現(xiàn)只要對(duì)上述代碼稍作修改即可
# 建立圖像讀取對(duì)象 ? ? capture = cv.VideoCapture(0,cv.CAP_DSHOW) ?#更改API設(shè)置
此處0代表筆記本自帶的攝像頭,如果有外接攝像頭則可以選填1、2等。
Opencv打開(kāi)攝像頭報(bào)錯(cuò)問(wèn)題
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)
};附查看攝像頭下標(biāo):
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以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Django自動(dòng)注冊(cè)tasks及使用方式
這篇文章主要為大家介紹了Django自動(dòng)注冊(cè)tasks及使用方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
python gui開(kāi)發(fā)——制作抖音無(wú)水印視頻下載工具(附源碼)
這篇文章主要介紹了python gui開(kāi)發(fā)——制作抖音無(wú)水印視頻下載工具(附源碼)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-02-02
如何在Python3中使用telnetlib模塊連接網(wǎng)絡(luò)設(shè)備
這篇文章主要介紹了如何在Python3中使用telnetlib模塊連接網(wǎng)絡(luò)設(shè)備,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Python+Pyqt實(shí)現(xiàn)簡(jiǎn)單GUI電子時(shí)鐘
這篇文章主要為大家詳細(xì)介紹了Python+Pyqt實(shí)現(xiàn)簡(jiǎn)單GUI電子時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
分享5個(gè)短小精悍的Python趣味腳本,適合小白上手!
這篇文章主要給大家分享介紹了5個(gè)短小精悍的Python趣味腳本,非常適合小白上手,分別包含圖片尺寸縮小、pdf轉(zhuǎn)txt文檔、猜數(shù)字游戲、電池電量告警以及圖片添加水印等腳本,需要的朋友可以參考下2022-02-02

