123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- 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()
|