Raspberry Pi捕获了python与raspistill中的图像质量

时间:2016-08-16 23:00:41

标签: python opencv raspberry-pi

我正在使用我的覆盆子pi检测我的猫在桌子上的时间,并且我在使用几个图像捕获片时遇到了一些麻烦。这是我正在运行的相关代码:

from picamera.array import PiRGBArray
from picamera import PiCamera
import time
import cv2
import subprocess

#method 1
with PiCamera() as camera:
    capImg = PiRGBArray(camera)
    time.sleep(0.1)
    camera.capture(capImg,format = 'bgr')
    image = capImg.array
    cv2.imwrite('image4.bmp',image)

#method 2
callString = 'raspistill -n -w %s -h %s -o /home/pi/python/catcam/image5.bmp --timeout 0' % (640,480)
subprocess.call(callString, shell = True)

有没有办法将raspistill图像保存在内存中或做一些像camera.capture_continuous?比较picamera图像的质量:

enter image description here

raspistill的颜色要好得多:

enter image description here

我想每隔几秒捕获一张图片,但不想为每张图片写入磁盘,否则我会很快烧掉我的存储卡。另外,raspistill很慢。

关于如何以恒定速率捕获质量更好的图像的任何指示都将非常感激!

编辑感谢下面的Mark,我已编辑了当前手头的帖子。

1 个答案:

答案 0 :(得分:0)

如果需要,可以使用Python调用raspistill。这是一个示例,该示例以第二个延迟重复运行raspistill命令:

from time import sleep
from datetime import datetime
import subprocess

dir = "/home/pi/Desktop/cam_images/"

while (True):
    fileName= "img_" + datetime.now().strftime("%Y-%m-%d_%H-%M-%S") + ".jpg"
    cmd = "raspistill -o " + dir + fileName
    subprocess.call(cmd, shell=True)   
    sleep(1)