我正在使用我的覆盆子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图像的质量:
raspistill的颜色要好得多:
我想每隔几秒捕获一张图片,但不想为每张图片写入磁盘,否则我会很快烧掉我的存储卡。另外,raspistill很慢。
关于如何以恒定速率捕获质量更好的图像的任何指示都将非常感激!
编辑感谢下面的Mark,我已编辑了当前手头的帖子。
答案 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)