[英]External Webcam not working for Opencv and Python
我正在使用 Python cv2 模塊來運行程序。
我可以訪問內置網絡攝像頭,但是當我使用外部網絡攝像頭時,它不起作用。
我已經使用了所有代碼,例如
VideoCapture(1) # or any other no.s like 0,1,2,3 etc etc.
我什至使用設備管理器禁用了內置網絡攝像頭。
但沒有任何效果。 我正在使用 pythonxy。 我也試過在命令提示符下。 它仍然不起作用。
我收到以下錯誤
runfile('C:/Users/Prashant/Documents/Python Scripts/Circledetection.py', wdir=r'C:/Users/Prashant/Documents/Python Scripts')
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in unknown function, file ..\..\..\modules\imgproc\src\color.cpp, line 3402
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 540, in runfile
execfile(filename, namespace)
File "C:/Users/Prashant/Documents/Python Scripts/Circledetection.py", line 27, in <module>
prev_gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
cv2.error: ..\..\..\modules\imgproc\src\color.cpp:3402: error: (-215) scn == 3 || scn == 4
你提到VideoCapture(0)
到VideoCapture(1)
。
“1”表示外部攝像機編號。
import cv2
import numpy as np
cap = cv2.VideoCapture(1)
while(1):
ret, frame = cap.read()
#print(height)
#cv2.imshow("Cropped Image", crop_img)
#gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
該斷言意味着您的圖像沒有 3 個(RGB、BGR 等)通道或 4 個通道(3 個通道 + alpha)。 顯然,這可能是由根本不存在的圖像引起的。
雖然這可能是因為您的相機不工作,但同樣有可能您的相機沒有為前幾個 read() 提供可用的幀,因為它仍在“准備”自己。
解決這個問題的最簡單方法,假設您使用類似retv, frame = cam.read()
是檢查if frame:
或if retv:
。
如果沒有圖像,讓它跳過你的處理,在幾幀內你應該有可讀的輸入。
您確定您使用的是正確的索引嗎? 使用Videocapture
您還可以嘗試使用Videocapture(-1)
,因為外部攝像頭有時會顯示為輸入列表中的最后一個元素。 Videocapture
還可以返回設備名稱,因此您可以嘗試遍歷輸入設備索引列表並打印它們的“友好名稱”,以確保您使用的是正確的名稱。
OpenCV 需要以下依賴項才能與 USB 攝像頭配合使用。 從以下命令安裝依賴項:
libav 視頻輸入/輸出開發庫
sudo apt-get install libavformat-dev libavutil-dev libswscale-dev
Video4Linux 相機開發庫
sudo apt-get install libv4l-dev
OpenGL 開發庫(允許創建圖形窗口)
sudo apt-get install libglew-dev
GTK 開發庫(允許創建圖形窗口)
sudo apt-get install libgtk2.0-dev
謝謝它對我有用。
OpenCV 需要以下依賴項才能與 USB 攝像頭配合使用。 從以下命令安裝依賴項:
libav 視頻輸入/輸出開發庫
sudo apt-get install libavformat-dev libavutil-dev libswscale-dev Video4Linux 相機開發庫
sudo apt-get install libv4l-dev OpenGL 開發庫(允許創建圖形窗口)
sudo apt-get install libglew-dev GTK 開發庫(允許創建圖形窗口)
sudo apt-get install libgtk2.0-dev
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.