Python Göz Rengi Algılama (Python Eye Color Detection)

Python ile göz rengi algılama

Ock 2, 2024 - 14:58
Eki 17, 2024 - 19:36
 0  77
Python Göz Rengi Algılama (Python Eye Color Detection)
import cv2

# Yüz ve göz tespiti için önceden eğitilmiş modelleri yükle
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')

# Video yakalama kaynağını ayarla (0, webcam için)
cap = cv2.VideoCapture(0)

while True:
    # Video akışını kare kare oku
    ret, frame = cap.read()

    # Yüz ve göz tespiti için kareyi gri tonlamaya çevir
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Gri tonlamalı karede yüzleri tespit et
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)

    # Bulunan her yüz için döngü
    for (x, y, w, h) in faces:
        # Yüzün etrafına dikdörtgen çiz
        cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)

        # Yüz dikdörtgeninin içindeki ilgi alanını (ROI) çıkar
        roi_gray = gray[y:y + h, x:x + w]
        roi_color = frame[y:y + h, x:x + w]

        # ROI içinde gözleri tespit et
        eyes = eye_cascade.detectMultiScale(roi_gray)

        # Bulunan her göz için döngü
        for (ex, ey, ew, eh) in eyes:
            # Gözlerin etrafına dikdörtgen çiz
            cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)

            # Göz dikdörtgeninin içindeki ilgi alanını (ROI) çıkar
            eye_roi = roi_gray[ey:ey + eh, ex:ex + ew]

            # Göz rengi tespiti için ortalama piksel yoğunluğunu hesapla
            avg_pixel_intensity = cv2.mean(eye_roi)[0]

            # Ortalama piksel yoğunluğuna göre göz rengini belirle
            if avg_pixel_intensity < 90:  # Koyu göz rengi
                eye_color = "Koyu"
            elif avg_pixel_intensity < 120:  # Kahverengi göz rengi
                eye_color = "Kahverengi"
            elif avg_pixel_intensity < 150:  # Ela göz rengi
                eye_color = "Ela"
            elif avg_pixel_intensity < 180:  # Yeşil göz rengi
                eye_color = "Yeşil"
            else:  # Mavi göz rengi
                eye_color = "Mavi"

            # Tespit edilen göz rengini görüntüle
            cv2.putText(frame, eye_color, (x + ex, y + ey - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)

    # Tespit edilen gözler ve göz rengi ile sonuçlanan kareyi görüntüle
    cv2.imshow('Eye Color Detection', frame)

    # 'q' tuşuna basıldığında sonsuz döngüyü kır
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# Video yakalama nesnesini serbest bırak ve tüm pencereleri kapat
cap.release()
cv2.destroyAllWindows()

Kodun Açıklaması:

  1. Modül İçe Aktarımı: cv2 modülü (OpenCV kütüphanesi) yüz ve göz tespiti için kullanılır.

  2. Model Yükleme: Önceden eğitilmiş yüz ve göz tespit modelleri (haarcascade) yüklenir. Bu modeller, görüntüdeki yüzleri ve gözleri tanımak için kullanılır.

  3. Video Yakalama: Webcam'den video akışı başlatılır. VideoCapture(0) ile webcam kaynağı açılır.

  4. Sonsuz Döngü: Sonsuz bir döngü içinde video akışından kareler okunur. Her kare için aşağıdaki işlemler gerçekleştirilir:

    • Kare gri tonlamaya dönüştürülür.
    • Gri tonlamalı karede yüzler tespit edilir.
    • Bulunan her yüz için, yüz etrafında bir dikdörtgen çizilir ve yüzün içindeki ilgi alanı (ROI) çıkarılır.
    • Bu ROI içinde gözler tespit edilir ve gözlerin etrafına da dikdörtgen çizilir.
  5. Göz Rengi Tespiti: Gözlerin ortalama piksel yoğunluğu hesaplanarak göz rengi belirlenir. Belirli yoğunluk aralıklarına göre göz rengi "Koyu", "Kahverengi", "Ela", "Yeşil" veya "Mavi" olarak tanımlanır.

  6. Sonuç Gösterimi: Tespit edilen göz rengi, kare üzerinde metin olarak gösterilir.

  7. Çıkış: Kullanıcı 'q' tuşuna basarsa döngü kırılır, video kaynağı serbest bırakılır ve tüm pencereler kapatılır.

Bu kod, yüz ve göz tespiti yaparak kullanıcıya gerçek zamanlı olarak göz rengini gösterir.

Bu Yazıya Tepkin Nedir?

like

dislike

love

funny

angry

sad

wow