From 7a550a20b26fd6d953504ccd75d4520499c76db4 Mon Sep 17 00:00:00 2001 From: HeshamTB Date: Mon, 12 Nov 2018 13:26:55 +0300 Subject: [PATCH] refactor 2 --- main.py | 81 +++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 50 insertions(+), 31 deletions(-) diff --git a/main.py b/main.py index 927a26f..25a9481 100644 --- a/main.py +++ b/main.py @@ -6,41 +6,60 @@ import cv2 import numpy as np def init(): + go = true print('Initilizing Camera and cascade components..') - camera = PiCamera() - print('[ OK ] Camera') - camera.resolution = (640, 480) - face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') - print('[ OK ] CascadeClassifier') - print('Starting Photo loop..') - start() + try: + camera = PiCamera() + camera.resolution = (640, 480) + sleep(2) + print('[ OK ] Camera') + except: + print('[ Error ] Can not initialize PiCamera') + go = false + + try: + face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') + sleep(1) + print('[ OK ] CascadeClassifier') + except: + print('[ Error ] Can not load cascade File') + go = false + if (go): + print('Starting Photo loop..') + start(camera) + else: + print('closing') -def start(): +def start(camera): while True: - print('Taking photo') - camera.capture('img.jpg') - print('Photo Captured') - img = cv2.imread('img.jpg',1) - gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) - print('Photo Converted') - faces = face_cascade.detectMultiScale(gray, 1.3, 5) - print('Photo Processed') - i = 0; - for (x,y,w,h) in faces: - i = i + 1 - cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) - cv2.imwrite('result.jpg', gray) - roi_gray = gray[y:y+h, x:x+w] - roi_color = img[y:y+h, x:x+w] - print('Drawing on face ', i) - - cv2.imshow('image',img) - cv2.waitKey(100) - if cv2.waitKey(1) & 0xFF == ord('q'): - cv2.destroyAllWindows() - break + try: + print('Taking photo') + camera.capture('img.jpg') + print('Photo Captured') + img = cv2.imread('img.jpg',1) + gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + print('Photo Converted') + faces = face_cascade.detectMultiScale(gray, 1.3, 5) + print('Photo Processed') + i = 0; + for (x,y,w,h) in faces: + i = i + 1 + cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) + #cv2.imwrite('result.jpg', gray) + roi_gray = gray[y:y+h, x:x+w] + roi_color = img[y:y+h, x:x+w] + print('Drawing on face ', i) + + cv2.imshow('image',img) + cv2.waitKey(100) + if cv2.waitKey(1) & 0xFF == ord('q'): + cv2.destroyAllWindows() + break - print('Finshed') + except: + print('[ Error ] Unexpected exception') + print('Closing') + break def recognize():