Python opencv未接收到相机数据
我一直在尝试使用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的食谱使用一些代码,像这样:
mycam = Camera()
img = mycam.getImage()
但同样没有成功,结果不是没有数据,而是返回了一张完全黑的图片。
我对造成这个问题感到很困惑,我在我的笔记本上用完全相同的系统,结果连Logitech摄像头的图像都没能获取到。我现在使用的是64位的Windows 7,Python 2.7和SimpleCV 1.1。
谢谢
1 个回答
6
我是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