基本的に、私は piCamera を RPi に接続しています。USB ウェブカメラではなく、PiCamera を繰り返します。そこからフレームを読み取りたいのですが、実際にはフレームを読み取ることができますが、奇妙な動作がいくつかあります。
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 を使用するためのデフォルトの false フラグを指定しますが、それでもフレームを読み取ることができます。self.stream = WebcamVideoStream(src=src)
ソースとしてpiCameraを使用する行はどうですか。
ケース 2: 使用する場合
vs = VideoStream(usePiCamera=True, resolution = (640, 480)).start()
piCamera を使用してフレームを読み取ることはできますが (これは明らかです)、Case1 に比べて遅くなります。理由は何ですか?
結果がまったく表示されない場合でも、ケース 1 の方が速いのはなぜですか? PiCamera を使用する正しい方法として、CASE 2 でより高速な動作を得るにはどうすればよいですか?
ありがとう