You are on page 1of 2

#!

/usr/bin/env python
import
import
import
import

numpy as np
cv2
mp3play
random

# local modules
from video import create_capture
from common import clock, draw_str
def detect(img, cascade):
rects = cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors=4, minSi
ze=(30, 30), flags = cv2.CASCADE_SCALE_IMAGE)
if len(rects) == 0:
return []
rects[:,2:] += rects[:,:2]
return rects
def draw_rects(img, rects, color):
for x1, y1, x2, y2 in rects:
cv2.rectangle(img, (x1, y1), (x2, y2), color, 2)
if __name__ == '__main__':
import sys, getopt
args, video_src = getopt.getopt(sys.argv[1:], '', ['cascade='])
try:
video_src = video_src[0]
except:
video_src = 0
args = dict(args)
cascade_fn = args.get('--cascade', "haarcascade_frontalface_alt.xml")
cascade = cv2.CascadeClassifier(cascade_fn)
cam = create_capture(video_src, fallback='synth:bg=clau_rostro.jpg:noise=0.5
')
clau = cv2.imread('clau_sonrisa.jpg')
clau_gray = cv2.cvtColor(clau, cv2.COLOR_BGR2GRAY)
clau_gray = cv2.equalizeHist(clau_gray)
clau_gray = cv2.resize(clau_gray, (220,300))
cara = clau_gray
##
print clau_gray.shape
silbido = mp3play.load('silbido.mp3')
piropo1 = mp3play.load('piropo1.mp3')
piropo2 = mp3play.load('piropo2.mp3')
piropo3 = mp3play.load('piropo3.mp3')
piropo4 = mp3play.load('piropo4.mp3')
piropo5 = mp3play.load('piropo5.mp3')
while True:
ret, img = cam.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.equalizeHist(gray)
#cv2.imshow('GRAY',gray)
rects = detect(gray, cascade)

if len(rects)>0:
aux = rects
aux.astype(int)
cara = gray[aux[0,1]:aux[0,3],aux[0,0]:aux[0,2]]
cara = cv2.resize(cara,(220,300))
cara = cv2.equalizeHist(cara)
cv2.imshow('rostro',cara)

##

cv2.imshow('CLAU',clau_gray)
diff = cv2.absdiff(clau_gray,cara)
parecido = cv2.countNonZero(diff)
print parecido
if ((300*220)-parecido)>550:
print "CLAUUUUUUUUUUUUUUUUUUU"
num = random.randint(0,5)
silbido.stop()
piropo1.stop()
piropo2.stop()
piropo3.stop()
piropo4.stop()
piropo5.stop()
if num == 0:
silbido.play()
if num == 1:
piropo1.play()
if num == 2:
piropo2.play()
if num == 3:
piropo3.play()
if num == 4:
piropo4.play()
if num == 5:
piropo5.play()
else:
print "----------------------"

##

cv2.imshow('CLAU_CARA',cara)
cv2.imshow('comparacion',diff)
#vis = img.copy()
#draw_rects(vis, rects, (0, 255, 0))
#dt = clock() - t
#draw_str(vis, (20, 20), 'time: %.1f ms' % (dt*1000))
#cv2.imshow('facedetect', vis)
if 0xFF & cv2.waitKey(5) == 27:
break
cv2.destroyAllWindows()

You might also like