我一直在尝试使用SimpleCV(www.simplecv.org)模块来运行图像识别和操作。不幸的是,我收到的视频提要非常挑剔,我不确定自己做错了什么。仅使用一些基本的示例代码:
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
当我插入Logitech Webcam 500时,该方法效果最佳。但是,当我尝试使用Vimicro Altair摄像机时,屏幕变灰,并且保存到文件时,文件为空。
我还尝试使用SimpleCV代码,基于它们的cookbook:
mycam = Camera()
img = mycam.getImage()
这同样不成功,但是,它没有返回任何数据,而是返回了全黑的图像。
我完全不知道是什么原因造成的,我在笔记本电脑上尝试了完全相同的系统,甚至无法从Logitech摄像头获取图像。我正在使用Python 2.7和SimpleCV 1.1运行Windows 7 64位。
谢谢
最佳答案
我是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