class CameoDepth(Cameo): def __init__(self): self._windowManager = WindowManager('Cameo', self.onKeypress) self._captureManager = CaptureManager( cv2.VideoCapture(0), self._windowManager, True) self._faceTracker = FaceTracker() self._shouldDrawDebugRects = False self._curveFilter = filters.BGRPortraCurveFilter() def run(self): """Run the main loop.""" self._windowManager.createWindow() while self._windowManager.isWindowCreated: self._captureManager.enterFrame() frame = self._captureManager.frame self._faceTracker.update(frame) faces = self._faceTracker.faces rects.swapRects(frame, frame, [face.faceRect for face in faces]) filters.strokeEdges(frame, frame) self._curveFilter.apply(frame, frame) if self._shouldDrawDebugRects: self._faceTracker.drawDebugRects(frame) self._captureManager.exitFrame() self._windowManager.processEvents()
class Cameo(object): def __init__(self): self._windowManager = WindowManager('Cameo', self.onKeypress) self._captureManager = CaptureManager( cv2.VideoCapture(0), self._windowManager, True) self._faceTracker = FaceTracker() self._shouldDrawDebugRects = False self._curveFilter = filters.BGRPortraCurveFilter() def run(self): """Run the main loop.""" self._windowManager.createWindow() while self._windowManager.isWindowCreated: self._captureManager.enterFrame() frame = self._captureManager.frame if frame is not None: self._faceTracker.update(frame) faces = self._faceTracker.faces rects.swapRects(frame, frame, [face.faceRect for face in faces]) filters.strokeEdges(frame, frame) self._curveFilter.apply(frame, frame) if self._shouldDrawDebugRects: self._faceTracker.drawDebugRects(frame) self._captureManager.exitFrame() self._windowManager.processEvents() def onKeypress(self, keycode): """Handle a keypress. space -> Take a screenshot. tab -> Start/stop recording a screencast. x -> Start/stop drawing debug rectangles around faces. escape -> Quit. """ if keycode == 32: # space self._captureManager.writeImage('screenshot.png') elif keycode == 9: # tab if not self._captureManager.isWritingVideo: self._captureManager.startWritingVideo( 'screencast.avi') else: self._captureManager.stopWritingVideo() elif keycode == 120: # x self._shouldDrawDebugRects = \ not self._shouldDrawDebugRects elif keycode == 27: # escape self._windowManager.destroyWindow()
class Cameo(object): def __init__(self): self._window_manager = WindowManager('Cameo', self.on_key_press) self._capture_manager = CaptureManager(cv2.VideoCapture(0), self._window_manager, True) self._face_tracker = FaceTracker() self._should_draw_debug_rects = False self._curve_filter = filters.EmbossFilter() # can use any of applied filters def run(self): self._window_manager.create_window() while self._window_manager.is_window_created: self._capture_manager.enter_frame() frame = self._capture_manager.frame self._face_tracker.update(frame) faces = self._face_tracker.faces rects.swap_rects(frame, frame, [face.face_rect for face in faces]) filters.stroke_edges(frame, frame) self._curve_filter.apply(frame, frame) if self._should_draw_debug_rects: self._face_tracker.draw_debug_rects(frame) self._capture_manager.exit_frame() self._window_manager.process_events() def on_key_press(self, keycode): """ Keypress handler space - screen tab - start/stop recording x - start/stop debug escape - quit :return: """ if keycode == 32: # space self._capture_manager.write_image('screenshot.png') elif keycode == 9: # tab if not self._capture_manager.is_writing_video: self._capture_manager.start_writing_video('screencast.avi') else: self._capture_manager.stop_writing_video() elif keycode == 120: # x self._should_draw_debug_rects = not self._should_draw_debug_rects elif keycode == 27: # escape self._window_manager.destroy_window()
def __init__(self): self._window_manager = TkinterWindowManager('Jarvis', self.on_key_press) self._capture_manager = CaptureManager( cv2.VideoCapture(0), should_mirror_capture=True, preview_manager=self._window_manager, should_mirror_preview=False) self._threaded_web_stream_manager = ThreadedWebStreamManager( self._capture_manager) self._face_tracker = FaceTracker() self._should_draw_debug = False self._curve_filter = filters.BGRPortraCurveFilter()
def __init__(self): self._windowManager = WindowManager('Cameo', self.onKeypress) self._captureManager = CaptureManager(cv2.VideoCapture(0), self._windowManager, True) self._faceTracker = FaceTracker() self._shouldDrawDebugRects = False self._curveFilter = filters.BGRPortraCurveFilter()
class CameoDepth(Cameo): def __init__(self): self._windowManager = WindowManager('Cameo', self.onKeypress) device = depth.CV_CAP_OPENNI # uncomment for Microsoft Kinect #device = depth.CV_CAP_OPENNI_ASUS # uncomment for Asus Xtion self._captureManager = CaptureManager( cv2.VideoCapture(device), self._windowManager, True) self._faceTracker = FaceTracker() self._shouldDrawDebugRects = False self._curveFilter = filters.BGRPortraCurveFilter() def run(self): """Run the main loop.""" self._windowManager.createWindow() while self._windowManager.isWindowCreated: self._captureManager.enterFrame() self._captureManager.channel = \ depth.CV_CAP_OPENNI_DISPARITY_MAP disparityMap = self._captureManager.frame self._captureManager.channel = \ depth.CV_CAP_OPENNI_VALID_DEPTH_MASK validDepthMask = self._captureManager.frame self._captureManager.channel = \ depth.CV_CAP_OPENNI_BGR_IMAGE frame = self._captureManager.frame self._faceTracker.update(frame) faces = self._faceTracker.faces masks = [ depth.createMedianMask( disparityMap, validDepthMask, face.faceRect) \ for face in faces ] rects.swapRects(frame, frame, [face.faceRect for face in faces], masks) filters.strokeEdges(frame, frame) self._curveFilter.apply(frame, frame) if self._shouldDrawDebugRects: self._faceTracker.drawDebugRects(frame) self._captureManager.exitFrame() self._windowManager.processEvents()
def __init__(self): self._windowManager = WindowManager('Cameo',self.onKeypress) device = depth.CV_CAP_OPENNI # uncomment for Microsoft Kinect #device = depth.CV_CAP_OPENNI_ASUS # uncomment for Asus Xtion self._captureManager = CaptureManager(cv2.VideoCapture(device), self._windowManager, True) self._faceTracker = FaceTracker() self._shouldDrawDebugRects = False self._curveFilter = filters.BGRPortraCurveFilter()
def __init__(self): ''' Constructor ''' self._windowManager = WindowManager('Cameo', self.onKeypress) self._captureManager = CaptureManager(cv2.VideoCapture(0), self._windowManager, True) self._faceTracker = FaceTracker() self._shouldDrawDebugRects = False self._curveFilter = filters.BGRCrossProcessCurveFilter()
class Cameo(object): def __init__(self): self._windowManager = WindowManager('Cameo', self.onKeypress) self._captureManager = CaptureManager(cv2.VideoCapture(0), self._windowManager, True) self._curveFilter = filters.BGRProviaCurveFilter() self._faceTracker = FaceTracker() self._shouldDrawDebugRects = False def run(self): """ Run the main loop """ self._windowManager.createWindow() print("Window '{}' Created".format(self._windowManager.windowName)) print("\n{}\n{}\n{}\n{}".format("Controls:", "space --> Take a screenshot", "tab --> Start/stop recording a screencast", "escape --> Quit")) while self._windowManager.isWindowCreated: self._captureManager.enterFrame() frame = self._captureManager.frame self._faceTracker.update(frame) faces = self._faceTracker.faces rects.swapRects(frame, frame, [face.faceRect for face in faces]) # Add filtering to the frame filters.strokeEdges(frame,frame) self._curveFilter.apply(frame,frame) if self._shouldDrawDebugRects: self._faceTracker.drawDebugRects(frame) self._captureManager.exitFrame() self._windowManager.processEvents() def stop(self): print("[CAMEO] closing all processes") self._captureManager._capture.release() self._windowManager.destroyWindow() def onKeypress(self, keycode): """ Handle a keypress space --> Take a screenshot tab --> Start/stop recording a screencast x --> Toggle drawing debug rectangles around faces escape --> Quit """ if keycode == 32: # Space self._captureManager.writeImage('screenshot.png'); print("Writing image to file....") elif keycode == 9: # Tab if not self._captureManager.isWritingVideo: self._captureManager.startWritingVideo('screencast.avi') print("Writing video to file...") else: self._captureManager.stopWritingVideo() print("Stopped writing video") elif keycode == 120: # x self._shouldDrawDebugRects = not self._shouldDrawDebugRects print("Toggled drawing rectangles") elif keycode == 27: # escape print("Closing Window...") self._windowManager.destroyWindow()
class Browser(object): def __init__(self,video_source): self._windowManager = WindowManager('Browser', self.onKeypress) self._captureManager = CaptureManager(video_source, self._windowManager, True) self._faceTracker = FaceTracker() self._shouldDrawDebugRects = False self._curveFilter = filters.BGRPortraCurveFilter() def run(self): """Run the main loop.""" self._windowManager.createWindow() while self._windowManager.isWindowCreated: self._captureManager.enterFrame() frame = self._captureManager.frame if frame is not None: print "got frame" self._faceTracker.update(frame) faces = self._faceTracker.faces rects.swapRects(frame, frame, [face.faceRect for face in faces]) #filters.strokeEdges(frame, frame) #self._curveFilter.apply(frame, frame) if self._shouldDrawDebugRects: self._faceTracker.drawDebugRects(frame) else: print "got None frame" print "press any key to exit." cv2.waitKey(0) break self._captureManager.exitFrame() waitkey_time=1 if self._captureManager._video_source!=0: waitkey_time=500 self._windowManager.processEvents(waitkey_time) def onKeypress(self, keycode): """Handle a keypress. space -> Take a screenshot. tab -> Start/stop recording a screencast. x -> Start/stop drawing debug rectangles around faces. escape -> Quit. """ if keycode == 32: # space self._captureManager.writeImage('screenshot.png') elif keycode == 9: # tab if not self._captureManager.isWritingVideo: self._captureManager.startWritingVideo( '/Users/xcbfreedom/Documents/screencast.avi') else: self._captureManager.stopWritingVideo() elif keycode == 120: # x self._shouldDrawDebugRects = \ not self._shouldDrawDebugRects elif keycode == 27: # escape self._windowManager.destroyWindow()
class Facedetect(object): def __init__(self): self._windowManager = WindowManager('Facedetect', self.onKeypress) self._captureManager = CaptureManager(cv2.VideoCapture(camera_nr), self._windowManager, True) self._faceTracker = FaceTracker() self._shouldDrawDebugRects = True self._curveFilter = filters.BGRPortraCurveFilter() def run(self): """Run the main loop.""" self._windowManager.createWindow() while self._windowManager.isWindowCreated: self._captureManager.enterFrame() frame = self._captureManager.frame if frame is not None: t = cv2.getTickCount() self._faceTracker.update(frame) faces = self._faceTracker.faces t = cv2.getTickCount() - t print("time taken for detection = %gms" % (t/(cv2.getTickFrequency())*1000.)) # uncomment this line for swapping faces #rects.swapRects(frame, frame, [face.faceRect for face in faces]) #filters.strokeEdges(frame, frame) #self._curveFilter.apply(frame, frame) if self._shouldDrawDebugRects: self._faceTracker.drawDebugRects(frame) self._faceTracker.drawLinesFromCenter(frame) self._captureManager.exitFrame() self._windowManager.processEvents() def onKeypress(self, keycode): """Handle a keypress. space -> Take a screenshot. tab -> Start/stop recording a screencast. x -> Start/stop drawing debug rectangles around faces. escape -> Quit. """ if keycode == 32: # space self._captureManager.writeImage('screenshot.png') elif keycode == 9: # tab if not self._captureManager.isWritingVideo: self._captureManager.startWritingVideo( 'screencast.avi') else: self._captureManager.stopWritingVideo() elif keycode == 120: # x self._shouldDrawDebugRects = \ not self._shouldDrawDebugRects elif keycode == 27: # escape self._windowManager.destroyWindow() # When everything is done, release the capture self._captureManager.release()
cv2.imshow('Addition',dst) cv2.imshow('Final',img_background) cv2.waitKey(0) cv2.destroyAllWindows() if __name__=="__main__": arr = os.listdir('faces/') path = 'faces/' for img_path in arr: img = cv2.imread(path + img_path) _faceTracker = FaceTracker() _faceTracker.update(img) faces = _faceTracker.faces _faceTracker.drawDebugRects(img) cv2.imshow('Faces', img) cv2.waitKey(0) cv2.destroyAllWindows() #overlays """sunglasses_img = cv2.imread('overlays/blackhat.png') mask_sungla = create_mask(cv2.imread('overlays/blackhat.png', -1))
def __init__(self): self._window_manager = WindowManager('Cameo', self.on_key_press) self._capture_manager = CaptureManager(cv2.VideoCapture(0), self._window_manager, True) self._face_tracker = FaceTracker() self._should_draw_debug_rects = False self._curve_filter = filters.EmbossFilter() # can use any of applied filters
# -*- coding: utf-8 -*- """ Created on Sun Jun 19 17:33:35 2016 test FaceDetectation @author: pip """ import cv2 import logging from cameraIO import IOSteam import sys from trackers import FaceTracker front=IOSteam() tracker=FaceTracker() front.run() tracker.update( front.frame) facelist=tracker.faces front.stop() print(facelist)
class JarvisVision(object): def __init__(self): self._window_manager = TkinterWindowManager('Jarvis', self.on_key_press) self._capture_manager = CaptureManager( cv2.VideoCapture(0), should_mirror_capture=True, preview_manager=self._window_manager, should_mirror_preview=False) self._threaded_web_stream_manager = ThreadedWebStreamManager( self._capture_manager) self._face_tracker = FaceTracker() self._should_draw_debug = False self._curve_filter = filters.BGRPortraCurveFilter() def run(self): """Run the main loop.""" try: self._window_manager.create_window() self._threaded_web_stream_manager.start() while self._window_manager.is_window_created: self._capture_manager.enter_frame() frame = self._capture_manager.frame if frame is not None: self._face_tracker.update(frame) faces = self._face_tracker.faces #rects.swap_rects(frame, frame, #[face.face_rect for face in faces]) #filters.stroke_edges(frame, frame) #self._curve_filter.apply(frame, frame) if self._should_draw_debug: self._face_tracker.draw_debug_text(frame) self._face_tracker.draw_debug_rects(frame) self._capture_manager.processed_frame = frame self._capture_manager.exit_frame() self._window_manager.process_events() finally: self._threaded_web_stream_manager.stop() self._threaded_web_stream_manager.join() def screenshot(self): self._capture_manager.write_image('screenshot.png') def toggle_record_video(self): if not self._capture_manager.is_writing_video: self._capture_manager.start_writing_video('screencast.avi') else: self._capture_manager.stop_writing_video() def toggle_show_detection(self): self._should_draw_debug = not self._should_draw_debug def on_key_press(self, keycode): """Handle a key press. space -> Take a screenshot. tab -> Start/stop recording a screencast. x -> Start/stop drawing debug data. escape -> Quit. """ if keycode == 32: # space self.screenshot() elif keycode == 9: # tab self.toggle_record_video() elif keycode == 120: # x self.toggle_show_detection() elif keycode == 27: # escape self._window_manager.destroy_window()
import cv2 from trackers import FaceTracker faceTracker = FaceTracker() vc = cv2.VideoCapture(0) if vc.isOpened(): rval, frame = vc.read() else: rval = False if rval: image = frame cv2.imwrite('prev.png', image) #image = cv2.imread('Pic.jpg') faceTracker.update(image) faceTracker.drawDebugRects(image) cv2.imwrite('Faces.png', image) else: print('Shit...')
def __init__(self,video_source): self._windowManager = WindowManager('Browser', self.onKeypress) self._captureManager = CaptureManager(video_source, self._windowManager, True) self._faceTracker = FaceTracker() self._shouldDrawDebugRects = False self._curveFilter = filters.BGRPortraCurveFilter()