1、問題描述
2、**編寫如下:
import numpy as np
import cv2
cap = cv2.videocapture(0)
while(true):
# 讀取幀數
ret, frame = cap.read()
# 轉為灰度影象
gray = cv2.cvtcolor(frame, cv2.color_bgr2gray)
# 顯示結果
cv2.imshow('frame',gray)
if cv2.waitkey(1) & 0xff == ord('q'):
break
# 關閉
cap.release()
cv2.destroyallwindows()
其中,cv2.videocapture(0)中的0為系統自帶攝像頭。當執行**時,會報錯:open videoio error:v4l:can』t open caera by index 0.
3、解決問題的過程:
1)確定攝像頭是否可用
之前以為ubuntu系統不能用,想現在windows下成功開啟攝像頭,但windows下顯示未有攝像頭裝置,先檢測是否有攝像頭驅動,發現已經是最新的驅動,但還是打不開攝像頭,檢視之下,先將登錄檔中的攝像頭相關資料刪掉,再更新驅
動,再重啟系統,即解決windows下攝像頭的問題:
開啟登錄檔regedit,
定位到hkey_local_machine\system\currentcontrolset\control\class\
刪除upperfilters項
解除安裝裝置,重新啟動。
但重新進入ubuntu系統後仍然無法開啟攝像頭;
安裝環境依賴:
sudo apt-get install debhelper
sudo apt-get install libsdl1.2-dev
sudo apt-get install libv4l-dev
sudo apt-get install pkg-config
安裝luvcview或guvcview
sudo apt-get install luvcview
使用cheese命令開啟攝像頭
cheese是ubuntu系統自帶的開啟攝像頭工具及命令,但仍然無法開啟系統自帶攝像頭。
3)嘗試檢視ubuntu系統是否有攝像頭裝置
sudo apt-get install v4l-utils
v4l2-ctl –list-devices 檢視裝置
或ls /dev/video*檢視裝置節點對映名
會發現,偶爾會出現:/dev/video0 或 /dev/video1 或找不到video檔案報錯。
如果有video裝置,使用luvcview開啟攝像頭
執行以下命令可顯示畫面:
luvcview -d /dev/video0 -f yuv -s 640x480
libv4l2:error turning on stream:protocol error
unable to start capture:protocol error.
error grabbing
cleanup done.exiting…
4、多次嘗試各種不同的攝像頭驅動,仍未能解決以上問題,因為採用了外接usb攝像頭,插入攝像頭再使用cheese命令,可正常開啟usb攝像頭,為了確定usb裝置節點對映名,執行以下命令:
ls /dev/video*
返回/dev/video1
再執行luvcview -d /dev/video1 -f yuv -s 640x480
正常開啟攝像頭。
5、在pycharm下修改**開啟攝像頭
將cap = cv2.videocapture(0)中0替換為1,則可使用**執行方式開啟攝像頭
OpenCV開啟攝像頭問題
先看一段 這段 是有問題的,問題在於 因為電腦開啟攝像頭需要一定的時間,所以frame cvqueryframe capture 第一次執行完後沒法獲取到第一幀。include cv.h include highgui.h int main int argc,char argv else asser...
opencv無法開啟攝像頭
能幫到你的話,就給個贊吧 現象 opencv無法開啟攝像頭 環境 windows python3.7.0 opencv python3.4.2.16 原因 安裝好opencv後發現能識別但就是打不開攝像頭,每次顯示攝像頭畫面就會報錯,後來測試是因為根本沒有開啟攝像頭,於是便在思考,終於恍然大悟,是w...
HTC VIVE 開啟前置攝像頭
一 準備工作steamvr中開啟攝像頭 開啟steamvr在設定中開啟攝像頭 二 steamvr提供了現成的例子 專案匯入steamvr plugin 和 vrtk 應為習慣了使用vrtk 圖中紅框為開啟攝像頭的例子 開啟後 發現預製體攝像機中多了 這兩部分就是開啟vive前置攝像頭的關鍵,quad...