From 7d66e0b2d10f0a758588e2012401f40f740e4565 Mon Sep 17 00:00:00 2001 From: David Hoffman Date: Mon, 1 Jul 2019 13:09:23 -0400 Subject: [PATCH 1/2] Update for PiCamera video streams so that camera parameters can be set by the vs.camera object's kwargs. --- imutils/video/pivideostream.py | 12 ++++++++++-- imutils/video/videostream.py | 6 +++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/imutils/video/pivideostream.py b/imutils/video/pivideostream.py index c7c5931..c8c6a00 100644 --- a/imutils/video/pivideostream.py +++ b/imutils/video/pivideostream.py @@ -5,11 +5,19 @@ import cv2 class PiVideoStream: - def __init__(self, resolution=(320, 240), framerate=32): - # initialize the camera and stream + def __init__(self, resolution=(320, 240), framerate=32, **kwargs): + # initialize the camera self.camera = PiCamera() + + # set camera parameters self.camera.resolution = resolution self.camera.framerate = framerate + + # set optional camera parameters (refer to PiCamera docs) + for arg, value in kwargs.items(): + setattr(self.camera, arg, value) + + # initialize the stream self.rawCapture = PiRGBArray(self.camera, size=resolution) self.stream = self.camera.capture_continuous(self.rawCapture, format="bgr", use_video_port=True) diff --git a/imutils/video/videostream.py b/imutils/video/videostream.py index f5d761c..4f9de0b 100644 --- a/imutils/video/videostream.py +++ b/imutils/video/videostream.py @@ -3,7 +3,7 @@ class VideoStream: def __init__(self, src=0, usePiCamera=False, resolution=(320, 240), - framerate=32): + framerate=32, **kwargs): # check to see if the picamera module should be used if usePiCamera: # only import the picamera packages unless we are @@ -15,7 +15,7 @@ def __init__(self, src=0, usePiCamera=False, resolution=(320, 240), # initialize the picamera stream and allow the camera # sensor to warmup self.stream = PiVideoStream(resolution=resolution, - framerate=framerate) + framerate=framerate, **kwargs) # otherwise, we are using OpenCV so initialize the webcam # stream @@ -36,4 +36,4 @@ def read(self): def stop(self): # stop the thread and release any resources - self.stream.stop() \ No newline at end of file + self.stream.stop() From 7bab8c0458b55fd636bd907580a0f7711d851294 Mon Sep 17 00:00:00 2001 From: David Hoffman Date: Tue, 2 Jul 2019 10:18:07 -0400 Subject: [PATCH 2/2] update style per Adrian's guidance --- imutils/video/pivideostream.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imutils/video/pivideostream.py b/imutils/video/pivideostream.py index c8c6a00..337db69 100644 --- a/imutils/video/pivideostream.py +++ b/imutils/video/pivideostream.py @@ -14,7 +14,7 @@ def __init__(self, resolution=(320, 240), framerate=32, **kwargs): self.camera.framerate = framerate # set optional camera parameters (refer to PiCamera docs) - for arg, value in kwargs.items(): + for (arg, value) in kwargs.items(): setattr(self.camera, arg, value) # initialize the stream