2017-08-02 53 views
0

我知道,這個主題上已經有幾個線程,但我的情況似乎尚未解決。我無法讓我的程序在筆記本電腦上使用我的攝像頭(Logitech的B910)拍攝圖像。 我正在Ubuntu 16.04上運行一個程序,該程序正在使用與我正在使用的攝像頭相同的其他機器。對於容易的緣故,這裏最低版本:未找到網絡攝像頭(無img流)cv2.error:...(-215)size.width> 0 &&

import cv2 
device = -1 
def show_webcam(mirror=False): 
    cam = cv2.VideoCapture(device) 
    print cam.isOpened(), cam.read() 
    while True: 
     ret_val, img = cam.read() 
     if mirror: 
      img = cv2.flip(img, 1) 
     cv2.imshow('my webcam', img) 
     if cv2.waitKey(1) == 27: 
      break # esc to quit 
    cv2.destroyAllWindows() 

def main(): 
    show_webcam(mirror=True) 

if __name__ == '__main__': 
    main() 

打印命令得到:假(假,無) 從命令行中運行奶酪,顯示攝像頭流,因爲它應該,也是在攝像頭的版本是加工。 所以我嘗試了-1,0,1,2和其他值爲設備,沒有任何作品。我在cam = ...之後放了一個time.sleep(2),也沒有結果。我沒有找到更多的這個,任何人都可以幫忙嗎?謝謝!

注: cv2.__file__爲 'USR/local/lib目錄/ python2.7/DIST-包/ CV2/cv2.so'

​​是 '3.2.0'

cv2.getBuildInformation()有點長在這裏,可能會有一些重要的信息?

+0

爲什麼設備= -1?通常應該是0,如果你只有一臺攝像機,1或2 ..其他 –

+0

-1指定它找到的第一個設備。我也試過了0,1,2,同樣的錯誤。 – mamamamama

回答

0

刪除設備並將代碼更改爲cam = cv2.VideoCapture(0),然後查看它是否有效?
通常情況下,如果您的相機使用奶酪,驅動程序應該沒問題。

cv2.videocapture(0)用於設備默認值。
您目前有計算機還有其他相機設備嗎?

+0

我試過了,它沒有,反正應該是一樣的,因爲我已經厭倦了ith設備= 0.我有筆記本電腦的內置攝像頭和我打算使用的兩個B910之一。所有組合都失敗。奶酪正在工作,這對我來說並不是一件奇怪的事情。 – mamamamama

+0

@mamamamama:恩,我不能說真正的原因是什麼。可以給你一個建議就是設置它的分辨率。如果您的電腦使用的是usb2.0,那麼可能會出現一個帶寬問題。 – Minalinskey

+0

嗯,它也適用於2.0交換機的其他計算機。我認爲這可能會有所不同。 – mamamamama