我正在尝试使用Python和OpenCV在Raspberry Pi上进行一些图像处理。到目前为止,除了低 FPS 速率外,它运行良好。即使没有任何图像处理,仅使用下面的代码,我也只能获得 10x640 FPS 的 640 FPS。有没有更快的方法来捕获视频流?我这里有什么问题吗?
import numpy as np
import cv2
import time
from picamera.array import PiRGBArray
from picamera import PiCamera
# initialize the camera and grab a reference to the raw camera capture
camera = PiCamera()
camera.resolution = (640, 480)
camera.framerate = 32
rawCapture = PiRGBArray(camera, size=(640, 480))
# allow the camera to warmup
time.sleep(0.1)
start = time.time()
for img in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
frame = img.array
rawCapture.truncate(0)
end = time.time()
print 'fps:', int(round(1 / (end - start)))
start = time.time()
到目前为止谢谢你。
问候
硬件始终产生 YUV (I420),并且转换为 BGR 或 RGB 作为额外的矢量 sw 阶段完成,从而减少每秒帧数。
我建议创建一个专门用于您的 IO 管道的线程,以减少延迟并可能增加您的 fps,但我非常怀疑您是否能够使用 BGR 模型实现辉煌的 90fps(640x480)。
查看这两个帖子以获取更详细的解释:有限帧率 PiCamera v2
https://raspberrypi.stackexchange.com/questions/22040/take-images-in-a-short-time-using-the-raspberry-pi-camera-module