Python Göz Rengi Algılama (Python Eye Color Detection)
Python ile göz rengi algılama

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ı:
-
Modül İçe Aktarımı:
cv2
modülü (OpenCV kütüphanesi) yüz ve göz tespiti için kullanılır. -
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. -
Video Yakalama: Webcam'den video akışı başlatılır.
VideoCapture(0)
ile webcam kaynağı açılır. -
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.
-
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.
-
Sonuç Gösterimi: Tespit edilen göz rengi, kare üzerinde metin olarak gösterilir.
-
Çı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?






