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