diff --git a/imutils/video/videostream.py b/imutils/video/videostream.py index 4f9de0b..d7d1f13 100644 --- a/imutils/video/videostream.py +++ b/imutils/video/videostream.py @@ -20,7 +20,7 @@ def __init__(self, src=0, usePiCamera=False, resolution=(320, 240), # otherwise, we are using OpenCV so initialize the webcam # stream else: - self.stream = WebcamVideoStream(src=src) + self.stream = WebcamVideoStream(src=src, resolution=resolution) def start(self): # start the threaded video stream diff --git a/imutils/video/webcamvideostream.py b/imutils/video/webcamvideostream.py index dbe8751..de7481d 100644 --- a/imutils/video/webcamvideostream.py +++ b/imutils/video/webcamvideostream.py @@ -3,10 +3,16 @@ import cv2 class WebcamVideoStream: - def __init__(self, src=0, name="WebcamVideoStream"): - # initialize the video camera stream and read the first frame - # from the stream - self.stream = cv2.VideoCapture(src) + def __init__(self, src=0, resolution=(320, 240), name="WebcamVideoStream"): + # initialize the video camera stream + if isinstance(src, int): + self.stream = cv2.VideoCapture(src) + self.stream.set(3, int(resolution[0])) # cv2.CAP_PROP_FRAME_WIDTH + self.stream.set(4, int(resolution[1])) # cv2.CAP_PROP_FRAME_HEIGHT + else: + self.stream = src + + # read the first frame from the stream (self.grabbed, self.frame) = self.stream.read() # initialize the thread name @@ -38,5 +44,6 @@ def read(self): return self.frame def stop(self): + self.stream.release() # indicate that the thread should be stopped self.stopped = True