openCV無法開啟USB攝像頭問題

2021-10-11 20:59:02 字數 2644 閱讀 7443

用python-opencv 開啟usb攝像頭時, 出現如下提示, 意思是 **型別不匹配

測試源**

)錯誤提示為:

cvcapture_msmf::initstream failed to set mediatype (stream 0, (640x480 @ 30) mfvideoformat_rgb24(codec not found)
需要在初始化攝像頭是增加乙個引數 cv2.cap_dshow, 之後即可以正常開啟:

cap = cv2.videocapture(

0, cv2.cap_dshow)

使用普通使用者,無許可權開啟攝像頭, 而使用sudo, 則提示找不到cv2模組, 此時為環境變數問題, 有多種方法可以修改環境變數路徑解決該問題, 比如修改/etc/sudoers, 編輯.bashrc,最後新增alias sudo='sudo env path=$path』等, 我主要使用如下方法

使用sudo -e指令,保留當前使用者環境變數, 次方法用起來比較簡單

debian@npi:~/tigerots/python$ sudo -e python open_cv2_photo.py
在普通使用者python環境中檢視環境變數:

debian@npi:~/tigerots/python$ python

python 3.7.3 (default, jul 25 2020, 13:03:44)

[gcc 8.3.0] on linux

formore information.

>>

>

>>

>

import sys

>>

> sys.path

['', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/home/debian/.local/lib/python3.7/site-packages', '/usr/local/lib/python3.7/dist-packages', '/usr/lib/python3/dist-packages'

]>>

>

>>

>

在root使用者中檢視python環境變數

debian@npi:~/tigerots/python$ sudo python

python 3.7.3 (default, jul 25 2020, 13:03:44)

[gcc 8.3.0] on linux

formore information.

>>

>

>>

>

import sys

>>

> sys.path

['', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/dist-packages', '/usr/lib/python3/dist-packages'

]>>

>

找到環境變數的差異, 在python**中加入該環境變數

import sys

"/usr/local/lib/python3.7/dist-packages"

)

通過以上操作, 一般即可實現訪問當前模組

opencv無法開啟攝像頭

能幫到你的話,就給個贊吧 現象 opencv無法開啟攝像頭 環境 windows python3.7.0 opencv python3.4.2.16 原因 安裝好opencv後發現能識別但就是打不開攝像頭,每次顯示攝像頭畫面就會報錯,後來測試是因為根本沒有開啟攝像頭,於是便在思考,終於恍然大悟,是w...

OpenCV4 0開啟指定USB攝像頭問題

網上查了些資料,試圖通過usb攝像頭名稱獲取index,從而開啟指定攝像頭,如下 std vectorlist listdevices list for int i 0 i編譯通過後挺好使,誰知第二天重新開機,竟然開啟的是另外的usb攝像頭!追蹤半天沒發現異常,只能得出結論是listdevice得到...

OpenCV開啟攝像頭問題

先看一段 這段 是有問題的,問題在於 因為電腦開啟攝像頭需要一定的時間,所以frame cvqueryframe capture 第一次執行完後沒法獲取到第一幀。include cv.h include highgui.h int main int argc,char argv else asser...