makaleler / Python Programlama / Opencv Yüz ve Göz tanıma

Opencv Yüz ve Göz tanıma

26.10.2016 18:13:06

Python, yüz ve göz tanıma ve takip etme işlemlerini Opencv aracılığı ile yapabilirsiniz.

Opencv kütüphanesi bizlere kurulumda bir çok sınıflandırı sunarak yüz, göz, ağız ya da diğer objeler gibi nesneleri tanımamızı ve takip etmemize olanak tanır. Aşağıdaki örneğimiz de Yüz, Göz tanıma ve takip etme örneği olarak kullanılabilirsiniz.


Python Opencv Yüz Göz Tanıma
import cv
import cv2
import sys


FACE_CASCADE = '/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml'
EYES_CASCADE = '/usr/share/opencv/haarcascades/haarcascade_eye_tree_eyeglasses.xml'


# cascPath = sys.argv[1]
# cascPath = FACE_CASCADE
faceCascade = cv2.CascadeClassifier(FACE_CASCADE)
eyesCascade = cv2.CascadeClassifier(EYES_CASCADE)

video_capture = cv2.VideoCapture(0)

while True:
    # Capture frame-by-frame
    ret, frame = video_capture.read()

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    faces = faceCascade.detectMultiScale(
        gray,
        scaleFactor=1.1,
        minNeighbors=5,
        minSize=(30, 30),
        flags=cv2.cv.CV_HAAR_SCALE_IMAGE
    )

    # Draw a rectangle around the faces
    for (x, y, w, h) in faces:
        center =  x + w/2, y + h/2
        cv2.ellipse( frame, center, ( w/2, h/2 ), 0, 0, 360, (255, 0, 0 ), 2, 8, 0 );

        # cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)

    eyes = eyesCascade.detectMultiScale(
        gray,
        scaleFactor=1.1,
        minNeighbors=2,
        minSize=(30, 30),
        flags=cv2.cv.CV_HAAR_SCALE_IMAGE
    )

    # Draw a rectangle around the faces
    for (ex, ey, ew, eh) in eyes:
        # position = x + ex + ew/2, y + ey + eh/2
        position = ex + ew/2, ey + eh/2
        radius = cv.Round( (ew + eh)*0.25 )
        cv2.circle(frame, position, radius, ( 255, 0, 255 ), 3, 8, 0)
        # cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)

    # Display the resulting frame
    cv2.imshow('Video', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything is done, release the capture
video_capture.release()
cv2.destroyAllWindows()

yazar husonet

Yorumlar

Bu içerik için sizde yorum yapabilirsiniz!
anasayfa | makaleler | haberler | dosyalar | linkler | hakkımızda