Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: lucasfava en 18 Diciembre 2010, 01:11 am



Título: deteccion de rostros con Python
Publicado por: lucasfava en 18 Diciembre 2010, 01:11 am
Esto lo encontre por casualidad, buscando algo sobre manejo de hardware con python

usa la libreria  OpenCV (Open Source Computer Vision)

Código
  1. from opencv.cv import *
  2. from opencv.highgui import *
  3.  
  4. cvNamedWindow("w1", CV_WINDOW_AUTOSIZE)
  5. captura = cvCreateCameraCapture(0)
  6.  
  7. def calcular( image ):
  8.        escala = cvCreateImage(cvSize(image.width, image.height), 8, 1)
  9.        cvCvtColor(image, escala, CV_BGR2GRAY)
  10.        storage = cvCreateMemStorage(0)
  11.        cvClearMemStorage(storage)
  12.        cvEqualizeHist(escala, escala)
  13.        cascade = cvLoadHaarClassifierCascade( 'haarcascade_frontalface_default.xml', cvSize(1,1))
  14.        caras = cvHaarDetectObjects(escala, cascade, storage, 1.2, 2, CV_HAAR_DO_CANNY_PRUNING, cvSize(25,25))
  15.  
  16.        ret = []
  17.  
  18.        if caras:
  19.                for cara in caras:
  20.                        vertices_imagen = {}
  21.                        vertices_imagen['x1'] = cara.x
  22.                        vertices_imagen['y1'] = cara.y
  23.                        vertices_imagen['x2'] = cara.x+cara.width
  24.                        vertices_imagen['y2'] = cara.y+cara.height
  25.                        ret.append( vertices_imagen )
  26.        return ret
  27.  
  28. def bucle():
  29.        global captura
  30.  
  31.        ancho = 160
  32.        alto = 120
  33.  
  34.        frame = cvQueryFrame(captura)
  35.        imagen = cvCreateMat(alto, ancho,cvGetElemType( frame ))
  36.        cvResize(frame, imagen)
  37.  
  38.        vertices = calcular( imagen )
  39.  
  40.        for vertice in vertices:
  41.                cvRectangle( imagen, cvPoint( int(vertice['x1']), vertice['y1']), cvPoint(int(vertice['x2']), int(vertice['y2'])), CV_RGB(0, 255, 0), 3, 8, 0)
  42.  
  43.        cvShowImage("w1", imagen)
  44.        c = cvWaitKey(2)
  45.  
  46. while True:
  47.        bucle()
  48.  

dejo link donde lo encontre http://www.retronet.com.ar/?p=474 (http://www.retronet.com.ar/?p=474)


Título: Re: deteccion de rostros con Python
Publicado por: Yeison.Eng en 20 Diciembre 2010, 02:09 am
Excelente!  ;-)
ya lo probé y esta definitivamente muy interesante.
mas interesante aún el archivo .xml para hacer el trabajito