Spaces:
Sleeping
Sleeping
''' Class for using separate thread for video streaming through web camera''' | |
import cv2 | |
from threading import Thread | |
class WebcamVideoStream: | |
def __init__(self, src=0): | |
self.stream = cv2.VideoCapture(src,cv2.CAP_DSHOW) | |
(self.grabbed, self.frame) = self.stream.read() | |
self.stopped = False | |
def start(self): | |
# start the thread to read frames from the video stream | |
Thread(target=self.update, args=()).start() | |
return self | |
def update(self): | |
# keep looping infinitely until the thread is stopped | |
while True: | |
# if the thread indicator variable is set, stop the thread | |
if self.stopped: | |
return | |
# otherwise, read the next frame from the stream | |
(self.grabbed, self.frame) = self.stream.read() | |
def read(self): | |
# return the frame most recently read | |
return self.frame | |
def stop(self): | |
# indicate that the thread should be stopped | |
self.stopped = True | |