Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Help! Show coordinates face detection

Hi! i need calculate the distance between two o more faces (the faces are inside rectangle, because i am using facedetection code in python), and if two or more faces are together(rectangles together) then print " faces together". if(distance(face1 and face2)<= "n" pixel) {print "faces together"} #n = your calibrate distance. I do not know how translate this order to python language, somebody can help me? Thanks. this is the code:

!/usr/bin/python

----------------------------------------------------------------------------

Face Detection Test (OpenCV)

#

thanks to:

http://japskua.wordpress.com/2010/08/04/detecting-eyes-with-python-opencv

----------------------------------------------------------------------------

import cv import time import Image

def DetectFace(image, faceCascade):

min_size = (20,20)
image_scale = 2
haar_scale = 1.1
min_neighbors = 3
haar_flags = 0

# Allocate the temporary images
grayscale = cv.CreateImage((image.width, image.height), 8, 1)
smallImage = cv.CreateImage(
        (
            cv.Round(image.width / image_scale),
            cv.Round(image.height / image_scale)
        ), 8 ,1)

# Convert color input image to grayscale
cv.CvtColor(image, grayscale, cv.CV_BGR2GRAY)

# Scale input image for faster processing
cv.Resize(grayscale, smallImage, cv.CV_INTER_LINEAR)

# Equalize the histogram
cv.EqualizeHist(smallImage, smallImage)

# Detect the faces
faces = cv.HaarDetectObjects(
        smallImage, faceCascade, cv.CreateMemStorage(0),
        haar_scale, min_neighbors, haar_flags, min_size
    )

# If faces are found
if faces:
    for ((x, y, w, h), n) in faces:
        # the input to cv.HaarDetectObjects was resized, so scale the
        # bounding box of each face and convert it to two CvPoints
        pt1 = (int(x * image_scale), int(y * image_scale))
        pt2 = (int((x + w) * image_scale), int((y + h) * image_scale))
        cv.Rectangle(image, pt1, pt2, cv.RGB(255, 0, 0), 5, 8, 0)

return image

----------

M A I N

----------

capture = cv.CaptureFromCAM(0)

capture = cv.CaptureFromFile("test.avi")

faceCascade = cv.Load("haarcascades/haarcascade_frontalface_default.xml")

faceCascade = cv.Load("haarcascades/haarcascade_frontalface_alt2.xml")

faceCascade = cv.Load("haarcascades/haarcascade_frontalface_alt.xml")

faceCascade = cv.Load("haarcascades/haarcascade_profileface.xml")

faceCascade = cv.Load("haarcascades/haarcascade_frontalface_alt_tree.xml")

while (cv.WaitKey(15)==-1): img = cv.QueryFrame(capture) image = DetectFace(img, faceCascade) cv.ShowImage("face detection test", image)

cv.ReleaseCapture(capture)

click to hide/show revision 2
No.2 Revision

updated 2015-05-29 11:24:13 -0500

berak gravatar image

Help! Show coordinates face detection

Hi! i need calculate the distance between two o more faces (the faces are inside rectangle, because i am using facedetection code in python), and if two or more faces are together(rectangles together) then print " faces together". if(distance(face1 and face2)<= "n" pixel) {print "faces together"} #n = your calibrate distance. I do not know how translate this order to python language, somebody can help me? Thanks. this is the code:

!/usr/bin/python

----------------------------------------------------------------------------

#!/usr/bin/python

#----------------------------------------------------------------------------
# Face Detection Test (OpenCV)

#

(OpenCV) # # thanks to:

http://japskua.wordpress.com/2010/08/04/detecting-eyes-with-python-opencv

----------------------------------------------------------------------------

to: # http://japskua.wordpress.com/2010/08/04/detecting-eyes-with-python-opencv #---------------------------------------------------------------------------- import cv import time import Image

Image def DetectFace(image, faceCascade):

faceCascade):

    min_size = (20,20)
 image_scale = 2
 haar_scale = 1.1
 min_neighbors = 3
 haar_flags = 0

 # Allocate the temporary images
 grayscale = cv.CreateImage((image.width, image.height), 8, 1)
 smallImage = cv.CreateImage(
         (
             cv.Round(image.width / image_scale),
             cv.Round(image.height / image_scale)
         ), 8 ,1)

 # Convert color input image to grayscale
 cv.CvtColor(image, grayscale, cv.CV_BGR2GRAY)

 # Scale input image for faster processing
 cv.Resize(grayscale, smallImage, cv.CV_INTER_LINEAR)

 # Equalize the histogram
 cv.EqualizeHist(smallImage, smallImage)

 # Detect the faces
 faces = cv.HaarDetectObjects(
         smallImage, faceCascade, cv.CreateMemStorage(0),
         haar_scale, min_neighbors, haar_flags, min_size
     )

 # If faces are found
 if faces:
     for ((x, y, w, h), n) in faces:
         # the input to cv.HaarDetectObjects was resized, so scale the
         # bounding box of each face and convert it to two CvPoints
         pt1 = (int(x * image_scale), int(y * image_scale))
         pt2 = (int((x + w) * image_scale), int((y + h) * image_scale))
         cv.Rectangle(image, pt1, pt2, cv.RGB(255, 0, 0), 5, 8, 0)

 return image

----------

#---------- # M A I N

----------

N #---------- capture = cv.CaptureFromCAM(0)

capture = cv.CaptureFromFile("test.avi")

cv.CaptureFromCAM(0) #capture = cv.CaptureFromFile("test.avi") #faceCascade = cv.Load("haarcascades/haarcascade_frontalface_default.xml") #faceCascade = cv.Load("haarcascades/haarcascade_frontalface_alt2.xml") #faceCascade = cv.Load("haarcascades/haarcascade_frontalface_alt.xml") faceCascade = cv.Load("haarcascades/haarcascade_frontalface_default.xml")

faceCascade = cv.Load("haarcascades/haarcascade_frontalface_alt2.xml")

faceCascade = cv.Load("haarcascades/haarcascade_frontalface_alt.xml")

faceCascade = cv.Load("haarcascades/haarcascade_profileface.xml")

faceCascade = cv.Load("haarcascades/haarcascade_frontalface_alt_tree.xml")

cv.Load("haarcascades/haarcascade_profileface.xml") #faceCascade = cv.Load("haarcascades/haarcascade_frontalface_alt_tree.xml") while (cv.WaitKey(15)==-1): img = cv.QueryFrame(capture) image = DetectFace(img, faceCascade) cv.ShowImage("face detection test", image)

cv.ReleaseCapture(capture)

image) cv.ReleaseCapture(capture)

Help! Show coordinates face detection

Hi! i need calculate the distance between two o more faces (the faces are inside rectangle, because i am using facedetection code in python), and if two or more faces are together(rectangles together) then print " faces together". if(distance(face1 and face2)<= "n" pixel) {print "faces together"} #n = your calibrate distance. I do not know how translate this order to python language, somebody can help me? Thanks. this is the code:

i am using other code with opencv 2.4.9, this code:

Ejemplo de deteccion facial con OpenCV y Python

Por Glare

www.robologs.net

import numpy as np import cv2

cargamos la plantilla e inicializamos la webcam:

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml') cap = cv2.VideoCapture(0)

while(True): #leemos un frame y lo guardamos ret, img = cap.read()

#!/usr/bin/python

#----------------------------------------------------------------------------
# Face Detection Test (OpenCV)
#
# thanks to:
# http://japskua.wordpress.com/2010/08/04/detecting-eyes-with-python-opencv
#----------------------------------------------------------------------------

import cv
import time
import Image

def DetectFace(image, faceCascade):

    min_size = (20,20)
    image_scale = 2
    haar_scale = 1.1
    min_neighbors = 3
    haar_flags = 0

    # Allocate the temporary images
    grayscale = cv.CreateImage((image.width, image.height), 8, 1)
    smallImage = cv.CreateImage(
            (
                cv.Round(image.width / image_scale),
                cv.Round(image.height / image_scale)
            ), 8 ,1)

    # Convert color input image to grayscale
    cv.CvtColor(image, grayscale, cv.CV_BGR2GRAY)

    # Scale input image #convertimos la imagen a blanco y negro
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
#buscamos las coordenadas de los rostros (si los hay) y
#guardamos su posicion
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

#Dibujamos un rectangulo en las coordenadas de cada rostro
for faster processing
    cv.Resize(grayscale, smallImage, cv.CV_INTER_LINEAR)

    # Equalize the histogram
    cv.EqualizeHist(smallImage, smallImage)

    # Detect the faces
    faces = cv.HaarDetectObjects(
            smallImage, faceCascade, cv.CreateMemStorage(0),
            haar_scale, min_neighbors, haar_flags, min_size
        )

    # If faces are found
    if faces:
        for ((x, y, w, h), n) (x,y,w,h) in faces:
            # the input to cv.HaarDetectObjects was resized, so scale the
            # bounding box of each face and convert it to two CvPoints
            pt1 = (int(x * image_scale), int(y * image_scale))
            pt2 = (int((x + w) * image_scale), int((y + h) * image_scale))
            cv.Rectangle(image, pt1, pt2, cv.RGB(255, 0, 0), 5, 8, 0)

    return image

#----------
# M A I N
#----------

capture = cv.CaptureFromCAM(0)
#capture = cv.CaptureFromFile("test.avi")

#faceCascade = cv.Load("haarcascades/haarcascade_frontalface_default.xml")
#faceCascade = cv.Load("haarcascades/haarcascade_frontalface_alt2.xml")
#faceCascade = cv.Load("haarcascades/haarcascade_frontalface_alt.xml")
faceCascade = cv.Load("haarcascades/haarcascade_profileface.xml")
#faceCascade = cv.Load("haarcascades/haarcascade_frontalface_alt_tree.xml")


while (cv.WaitKey(15)==-1):
    img = cv.QueryFrame(capture)
    image = DetectFace(img, faceCascade)
    cv.ShowImage("face detection test", image)

cv.ReleaseCapture(capture)
cv2.rectangle(img,(x,y),(x+w,y+h),(125,255,0),2)


#Mostramos la imagen
cv2.imshow('img',img)

#con la tecla 'q' salimos del programa
if cv2.waitKey(1) & 0xFF == ord('q'):
    break

cap.release() cv2-destroyAllWindows()

Help! Show coordinates face detection

Hi! i need calculate the distance between two o more faces (the faces are inside rectangle, because i am using facedetection code in python), and if two or more faces are together(rectangles together) then print " faces together". if(distance(face1 and face2)<= "n" pixel) {print "faces together"} #n = your calibrate distance. I do not know how translate this order to python language, somebody can help me? Thanks. this is the code:

i am using other code with opencv 2.4.9, this code:

Ejemplo
#Ejemplo de deteccion facial con OpenCV y Python

Por Glare

www.robologs.net

Python #Por Glare #www.robologs.net import numpy as np import cv2

cargamos cv2 #cargamos la plantilla e inicializamos la webcam:

webcam: face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml') cap = cv2.VideoCapture(0)

cv2.VideoCapture(0) while(True): #leemos un frame y lo guardamos ret, img = cap.read()

cap.read()

#convertimos la imagen a blanco y negro
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
#buscamos las coordenadas de los rostros (si los hay) y
#guardamos su posicion
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

#Dibujamos un rectangulo en las coordenadas de cada rostro
for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(125,255,0),2)


#Mostramos la imagen
cv2.imshow('img',img)

#con la tecla 'q' salimos del programa
if cv2.waitKey(1) & 0xFF == ord('q'):
    break
cap.release()
cv2-destroyAllWindows()

cap.release() cv2-destroyAllWindows()