2011-09-15 35 views
3

我一直在嘗試使用SimpleCV(www.simplecv.org)模塊來運行圖像識別和操作。不幸的是,我的傳入視頻源非常挑剔,我不確定我做錯了什麼。只需使用一些基本的示例代碼:蟒蛇opencv沒有收到相機飼料

import cvwindow = cv.NamedWindow("camera", 1) 
capture = cv.CreateCameraCapture(0) 
width = int(cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH)) 
height = int(cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT)) 

while 1: 
    img = cv.QueryFrame(capture) 
    cv.ShowImage("camera", img) 
    k = cv.WaitKey(1) 
    if(k == 102): 
     cv.destroyWindow("camera") 
     break 

當我插上然而,當我試圖用我的中星微牛郎星相機,我得到一個灰色屏幕,並完全在我的羅技攝像頭500保存到文件時,該文件是空的。

我也試圖利用SimpleCV代碼,基於了他們的線沿線的cookbook

mycam = Camera() 
img = mycam.getImage() 

這是同樣沒有成功,但不是沒有返回數據,簡單地返回了全黑的圖像。

我在造成這種情況的相當多的損失,我嘗試了我的筆記本電腦上完全相同的系統,它甚至沒有從羅技凸輪獲得圖像。我使用Python 2.7和SimpleCV 1.1運行Windows 7 64位。

謝謝

回答

5

我是SimpleCV開發人員之一。看起來你正在嘗試使用標準的python openCV包裝器。

我建議做的是就在這裏運行示例: https://github.com/sightmachine/SimpleCV/blob/develop/SimpleCV/examples/display/simplecam.py

或者這裏是代碼,以及:

import time, webbrowser 
from SimpleCV import * 

#create JPEG streamers 
js = JpegStreamer(8080) 
cam = Camera() 

cam.getImage().save(js) 
webbrowser.open("http://localhost:8080", 2) 

while (1): 
    i = cam.getImage() 
    i.save(js) 
    time.sleep(0.01) #yield to the webserver