object_detection.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import cv2
  2. import time
  3. import os
  4. import numpy as np
  5. # class VideoStreaming(object):
  6. # def __init__(self):
  7. # super(VideoStreaming, self).__init__()
  8. # self.VIDEO = cv2.VideoCapture('rtsp://astrodom:hdci12@192.168.170.73:554/stream1')
  9. # self.MODEL = ObjectDetection()
  10. # self._preview = True
  11. # self._flipH = False
  12. # self._detect = False
  13. # self._exposure = self.VIDEO.get(cv2.CAP_PROP_EXPOSURE)
  14. # self._contrast = self.VIDEO.get(cv2.CAP_PROP_CONTRAST)
  15. # @property
  16. # def preview(self):
  17. # return self._preview
  18. # @preview.setter
  19. # def preview(self, value):
  20. # self._preview = bool(value)
  21. # @property
  22. # def flipH(self):
  23. # return self._flipH
  24. # @flipH.setter
  25. # def flipH(self, value):
  26. # self._flipH = bool(value)
  27. # @property
  28. # def detect(self):
  29. # return self._detect
  30. # @detect.setter
  31. # def detect(self, value):
  32. # self._detect = bool(value)
  33. # @property
  34. # def exposure(self):
  35. # return self._exposure
  36. # @exposure.setter
  37. # def exposure(self, value):
  38. # self._exposure = value
  39. # self.VIDEO.set(cv2.CAP_PROP_EXPOSURE, self._exposure)
  40. # @property
  41. # def contrast(self):
  42. # return self._contrast
  43. # @contrast.setter
  44. # def contrast(self, value):
  45. # self._contrast = value
  46. # self.VIDEO.set(cv2.CAP_PROP_CONTRAST, self._contrast)
  47. # def show(self):
  48. # while(self.VIDEO.isOpened()):
  49. # ret, snap = self.VIDEO.read()
  50. # if self.flipH:
  51. # snap = cv2.flip(snap, 1)
  52. # if ret == True:
  53. # if self._preview:
  54. # # snap = cv2.resize(snap, (0, 0), fx=0.5, fy=0.5)
  55. # if self.detect:
  56. # snap = self.MODEL.detectObj(snap)
  57. # else:
  58. # snap = np.zeros((
  59. # int(self.VIDEO.get(cv2.CAP_PROP_FRAME_HEIGHT)),
  60. # int(self.VIDEO.get(cv2.CAP_PROP_FRAME_WIDTH))
  61. # ), np.uint8)
  62. # label = "camera disabled"
  63. # H, W = snap.shape
  64. # font = cv2.FONT_HERSHEY_PLAIN
  65. # color = (255, 255, 255)
  66. # cv2.putText(snap, label, (W//2 - 100, H//2),
  67. # font, 2, color, 2)
  68. # frame = cv2.imencode(".jpg", snap)[1].tobytes()
  69. # yield (b'--frame\r\n'b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
  70. # time.sleep(0.01)
  71. # else:
  72. # break
  73. # print("off")
  74. class VideoStreaming(object):
  75. def __init__(self):
  76. self.video = cv2.VideoCapture(0)
  77. def __del__(self):
  78. self.video.release()
  79. def get_frame(self):
  80. ret, frame = self.video.read()
  81. ret, jpg = cv2.imencode('.jpg', frame)
  82. return jpg.toByte()