0

所以基本上我的 RPi 附带了 piCamera,我重复 PiCamera 而不是 USB 网络摄像头。并想从中读取帧,我实际上能够读取帧但有一些奇怪的行为。

from imutils.video import VideoStream

案例1:如果我使用

vs = VideoStream(src=0, resolution = (640, 480)).start()

即使 VideoStream 库具有以下实现,它也会显示帧:

class VideoStream:
    def __init__(self, src=0, usePiCamera=False, resolution=(320, 240),
        framerate=32, **kwargs):
        # check to see if the picamera module should be used
        if usePiCamera:
            # only import the picamera packages unless we are
            # explicity told to do so -- this helps remove the
            # requirement of `picamera[array]` from desktops or
            # laptops that still want to use the `imutils` package
            from .pivideostream import PiVideoStream

            # initialize the picamera stream and allow the camera
            # sensor to warmup
            self.stream = PiVideoStream(resolution=resolution,
                framerate=framerate, **kwargs)

        # otherwise, we are using OpenCV so initialize the webcam
        # stream
        else:
            self.stream = WebcamVideoStream(src=src)

基本上它提供了一个默认的错误标志来使用 piCamera,但我仍然能够读取帧。self.stream = WebcamVideoStream(src=src)使用 piCamera 作为来源的线路如何。

案例2:如果我使用

vs = VideoStream(usePiCamera=True, resolution = (640, 480)).start()

我仍然可以使用我的 piCamera 读取(这很明显)帧,但与 Case1 相比它要慢一些。是什么原因?

为什么案例 1 更快,即使它根本不应该显示结果?我怎样才能在 CASE 2 中获得更快的行为,因为这是使用 PiCamera 的正确方法?

谢谢

4

0 回答 0