import cv2 import time import os import numpy as np # class VideoStreaming(object): # def __init__(self): # super(VideoStreaming, self).__init__() # self.VIDEO = cv2.VideoCapture('rtsp://astrodom:hdci12@192.168.170.73:554/stream1') # self.MODEL = ObjectDetection() # self._preview = True # self._flipH = False # self._detect = False # self._exposure = self.VIDEO.get(cv2.CAP_PROP_EXPOSURE) # self._contrast = self.VIDEO.get(cv2.CAP_PROP_CONTRAST) # @property # def preview(self): # return self._preview # @preview.setter # def preview(self, value): # self._preview = bool(value) # @property # def flipH(self): # return self._flipH # @flipH.setter # def flipH(self, value): # self._flipH = bool(value) # @property # def detect(self): # return self._detect # @detect.setter # def detect(self, value): # self._detect = bool(value) # @property # def exposure(self): # return self._exposure # @exposure.setter # def exposure(self, value): # self._exposure = value # self.VIDEO.set(cv2.CAP_PROP_EXPOSURE, self._exposure) # @property # def contrast(self): # return self._contrast # @contrast.setter # def contrast(self, value): # self._contrast = value # self.VIDEO.set(cv2.CAP_PROP_CONTRAST, self._contrast) # def show(self): # while(self.VIDEO.isOpened()): # ret, snap = self.VIDEO.read() # if self.flipH: # snap = cv2.flip(snap, 1) # if ret == True: # if self._preview: # # snap = cv2.resize(snap, (0, 0), fx=0.5, fy=0.5) # if self.detect: # snap = self.MODEL.detectObj(snap) # else: # snap = np.zeros(( # int(self.VIDEO.get(cv2.CAP_PROP_FRAME_HEIGHT)), # int(self.VIDEO.get(cv2.CAP_PROP_FRAME_WIDTH)) # ), np.uint8) # label = "camera disabled" # H, W = snap.shape # font = cv2.FONT_HERSHEY_PLAIN # color = (255, 255, 255) # cv2.putText(snap, label, (W//2 - 100, H//2), # font, 2, color, 2) # frame = cv2.imencode(".jpg", snap)[1].tobytes() # yield (b'--frame\r\n'b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n') # time.sleep(0.01) # else: # break # print("off") class VideoStreaming(object): def __init__(self): self.video = cv2.VideoCapture(0) def __del__(self): self.video.release() def get_frame(self): ret, frame = self.video.read() ret, jpg = cv2.imencode('.jpg', frame) return jpg.toByte()