Merge branch 'major-refactoring' of Hesham/FaceRecognition-python into master
This commit is contained in:
		
						commit
						e004dc434f
					
				
							
								
								
									
										65
									
								
								main.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								main.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,65 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					from time import sleep
 | 
				
			||||||
 | 
					from picamera import PiCamera
 | 
				
			||||||
 | 
					from io import BytesIO
 | 
				
			||||||
 | 
					import cv2
 | 
				
			||||||
 | 
					import numpy as np
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def init():
 | 
				
			||||||
 | 
						go = True
 | 
				
			||||||
 | 
						print('Initilizing Camera and cascade components..')
 | 
				
			||||||
 | 
						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, face_cascade)
 | 
				
			||||||
 | 
						else: 
 | 
				
			||||||
 | 
							print('closing')
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					def start( camera, face_cascade):
 | 
				
			||||||
 | 
						while True:
 | 
				
			||||||
 | 
							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
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							except:
 | 
				
			||||||
 | 
								print('[ Error ] Unexpected exception')
 | 
				
			||||||
 | 
								print('Closing')
 | 
				
			||||||
 | 
								break
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					init()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										57
									
								
								untitled.py
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								untitled.py
									
									
									
									
									
								
							@ -1,57 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env python
 | 
					 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#  untitled.py
 | 
					 | 
				
			||||||
#  
 | 
					 | 
				
			||||||
#  Copyright 2018  <pi@RPi-01>
 | 
					 | 
				
			||||||
#  
 | 
					 | 
				
			||||||
#  This program is free software; you can redistribute it and/or modify
 | 
					 | 
				
			||||||
#  it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
#  the Free Software Foundation; either version 2 of the License, or
 | 
					 | 
				
			||||||
#  (at your option) any later version.
 | 
					 | 
				
			||||||
#  
 | 
					 | 
				
			||||||
#  This program is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
#  GNU General Public License for more details.
 | 
					 | 
				
			||||||
#  
 | 
					 | 
				
			||||||
#  You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
#  along with this program; if not, write to the Free Software
 | 
					 | 
				
			||||||
#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 | 
					 | 
				
			||||||
#  MA 02110-1301, USA.
 | 
					 | 
				
			||||||
#  
 | 
					 | 
				
			||||||
#  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from time import sleep
 | 
					 | 
				
			||||||
from picamera import PiCamera
 | 
					 | 
				
			||||||
from io import BytesIO
 | 
					 | 
				
			||||||
import cv2
 | 
					 | 
				
			||||||
import numpy as np
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
camera = PiCamera()
 | 
					 | 
				
			||||||
camera.resolution = (640, 480)
 | 
					 | 
				
			||||||
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
while True: 
 | 
					 | 
				
			||||||
	print('Taking photo')
 | 
					 | 
				
			||||||
	camera.capture('img.jpg')
 | 
					 | 
				
			||||||
	img = cv2.imread('img.jpg',1)
 | 
					 | 
				
			||||||
	gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
 | 
					 | 
				
			||||||
	faces = face_cascade.detectMultiScale(gray, 1.3, 5)
 | 
					 | 
				
			||||||
	for (x,y,w,h) in faces:
 | 
					 | 
				
			||||||
		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 face')
 | 
					 | 
				
			||||||
	print('displying iamge')	
 | 
					 | 
				
			||||||
	cv2.imshow('image',img) 
 | 
					 | 
				
			||||||
	cv2.waitKey(100)
 | 
					 | 
				
			||||||
	if cv2.waitKey(1) & 0xFF == ord('q'):
 | 
					 | 
				
			||||||
		cv2.destroyAllWindows()
 | 
					 | 
				
			||||||
		break
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
print('Finshed')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user