renix1

Cam cv2

Sep 13th, 2020 (edited)
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.91 KB | None | 0 0
  1. import cv2
  2.  
  3.  
  4. class Cam(object):
  5.     __flags_enabled = 0b00
  6.     available_flags = {
  7.         0b01: lambda frame: cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY),
  8.         0b10: lambda frame: frame
  9.     }
  10.  
  11.     def run_flags(self, frame):
  12.         for flag in self.available_flags:
  13.             if flag & self.__flags_enabled:
  14.                 frame = self.available_flags[flag](frame)
  15.         return frame
  16.  
  17.     def __init__(self):
  18.         self.__cap = cv2.VideoCapture(0)
  19.  
  20.     def __enter__(self, flags_enabled=0b01):
  21.         while True:
  22.             self.__flags_enabled = flags_enabled
  23.             ret, frame = self.__cap.read()
  24.             yield self.run_flags(frame)
  25.  
  26.     def __exit__(self, type, val, traceback):
  27.         self.__cap.release()
  28.  
  29.  
  30. with Cam() as cam:
  31.     for frame in cam:
  32.         cv2.imshow('Frame', frame)
  33.         if cv2.waitKey(1) == ord('q'):
  34.             cv2.destroyAllWindows()
  35.             exit(0)
Add Comment
Please, Sign In to add comment