使用picamera和python脚本进行运动跟踪

时间:2015-02-01 01:30:20

标签: python raspberry-pi detection motion

我正在使用和修改this Python脚本以进行简单的动作跟踪。不幸的是,我已经遇到了捕获原始图像的基本移动功能的问题。

def captureTestImage():
count[0] = count[0] + 1
command = "raspistill -w %s -h %s -e bmp -o %s%s" % (100, 75, filepath, filenamePrefix)   
imageData = StringIO.StringIO()
imageData.write(subprocess.check_output(command, shell=True))
imageData.seek(0)
im = Image.open(imageData)
buffer = im.load()
imageData.close()
return im, buffer

上述功能在到达

行时会出现问题
im = Image.open(imageData)

理论上,这一行将写入dataData的字节转换回可用的图像文件。但是,当在imageData上调用Image.open时,我收到一条错误,指出字节数组不能强制转换为图像。我的理解是subprocess.check_output返回返回值的字节表示(假设有一个)。这显然不是这种情况,但我无法弄清楚如何将我的字节文件(imageData)转换回实际的图像文件。到目前为止,我已经使用了io.ByteIO,但这给了我与StringIO相同的问题。

我稍微修改了这个函数,因为传递了一个参数(-t 0),命令(raspistill)无限运行。删除后,允许脚本向前进行,直到Image.open。

任何输入都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

您没有使用raspistill写入STDOUT,因此您无法将任何图像数据传输到STDOUT。

command = "raspistill -w %s -h %s -e bmp -o -" % (100, 75)