- 155 Okunma
- 0 Yorum
- 1 Beğeni
PYTHONLA GÖZ RAHATSIZLIKLARINI TESPİT ETME
import cv2
# Yüz tanıma için hazır bir model yükledim.
face_cascade = cv2.CascadeClassifier(’haarcascade_frontalface_default.xml’)
if face_cascade.empty():
raise IOError("Yüz tanıma modeli yüklenemedi. Lütfen dosyanın doğru olduğunu kontrol edin.")
# Daha spesifik bir göz tanıma modeli yükledim.
eye_cascade = cv2.CascadeClassifier(’haarcascade_eye_tree_eyeglasses.xml’)
if eye_cascade.empty():
raise IOError("Göz tanıma modeli yüklenemedi. Lütfen dosyanın doğru olduğunu kontrol edin.")
# Göz rahatsızlıklarını tespit etmek için bir fonksiyon tanımladım.
def detect_eye_diseases(image_paths):
for path in image_paths:
# Bir resmi oku
image = cv2.imread(path)
if image is None:
raise IOError(f"{path}: Resim yüklenemedi. Dosyanın doğru olduğunu kontrol edin.")
# Görüntüyü gri tonlamaya dönüştür
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Görüntüdeki yüzleri tanımla
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# Her bir yüz için
for (x, y, w, h) in faces:
# Yüzü dikdörtgen içine al
cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)
# Yüzün gri tonlamalı bölgesini al
roi_gray = gray[y:y+h, x:x+w]
# Yüzün renkli bölgesini al
roi_color = image[y:y+h, x:x+w]
# Yüz bölgesindeki gözleri tanımla
eyes = eye_cascade.detectMultiScale(roi_gray)
# Her bir göz için
for (ex, ey, ew, eh) in eyes:
# Gözü dikdörtgen içine al
cv2.rectangle(roi_color, (ex, ey), (ex+ew, ey+eh), (0, 255, 0), 2)
# Gözün renkli bölgesini işlemlere devam etmek için al
eye_color = roi_color[ey:ey+eh, ex:ex+ew]
# Göz rengini değerlendirmek ve bilgi vermek için buraya ek işlemler ekle
eye_color_center_avg = cv2.mean(eye_color)
h, _, _ = eye_color_center_avg[0], eye_color_center_avg[1], eye_color_center_avg[2]
if h < 10 or h > 170:
print(f"{path}: Gözde kırmızılık var. Konjonktivit veya alerji olabilir.")
elif 10 < h < 30:
print(f"{path}: Göz rengi sararmış. Katarakt olabilir.")
elif 30 < h < 90:
print(f"{path}: Göz rengi yeşillenmiş. Glokom olabilir.")
else:
print(f"{path}: Göz renginde anormal bir değişiklik yok.")
# Göz en-boy oranını değerlendir
if eh != 0: # Sıfıra bölme hatası kontrolü
eye_aspect_ratio = ew / eh
if eye_aspect_ratio < 0.5:
print(f"{path}: Göz çok dar. Tiroid hastalığı olabilir.")
elif eye_aspect_ratio > 1.5:
print(f"{path}: Göz çok geniş. Diyabet olabilir.")
else:
print(f"{path}: Göz şekli veya büyüklüğünde anormal bir değişiklik yok.")
# İşlenmiş resimleri gösterme kısmını devre dışı bıraktım, dilerseniz aktif edebilirsiniz
# cv2.imshow(’image’, image)
# cv2.waitKey(0)
# cv2.destroyAllWindows()
# Birden çok resmi işleme ekleyerek fonksiyonu çağır
image_paths = [’eye1.jpg’, ’eye2.jpg’, ’eye3.jpg’]
detect_eye_diseases(image_paths)
#Yazan Rıdvan Kaya
Bu kod, yüz ve göz tanıma için hazır modeller kullanarak, verilen resimlerdeki göz rahatsızlıklarını tespit etmeye çalışan bir Python programıdır. Kodun açıklaması şöyledir:
- İlk olarak, cv2 kütüphanesini içe aktarır. Bu kütüphane, görüntü işleme ve bilgisayarlı görü işlevleri sağlayan bir kütüphanedir.
- Sonra, yüz tanıma için hazır bir model yükler. Bu model, haarcascade_frontalface_default.xml dosyasından alınır. Bu dosya, yüzleri tanımlamak için önceden eğitilmiş bir sınıflandırıcıdır. Eğer dosya yüklenemezse, bir hata mesajı verir.
- Daha sonra, daha spesifik bir göz tanıma modeli yükler. Bu model, haarcascade_eye_tree_eyeglasses.xml dosyasından alınır. Bu dosya, gözlük takan veya takmayan gözleri tanımlamak için önceden eğitilmiş bir sınıflandırıcıdır. Eğer dosya yüklenemezse, bir hata mesajı verir.
- Daha sonra, göz rahatsızlıklarını tespit etmek için bir fonksiyon tanımlar. Bu fonksiyon, bir resim yolu listesi alır ve her bir resim için aşağıdaki işlemleri yapar:
- Resmi okur. Eğer resim yüklenemezse, bir hata mesajı verir.
- Resmi gri tonlamaya dönüştürür. Bu, görüntü işlemede yaygın bir adımdır, çünkü renkli resimler daha fazla bilgi içerir ve daha fazla hesaplama gerektirir.
- Resimdeki yüzleri tanımlar. Bu, yüz tanıma modelini kullanarak yapılır. Model, resimdeki yüzlerin konumunu ve boyutunu döndürür.
- Her bir yüz için, yüzü dikdörtgen içine alır ve yüzün gri tonlamalı ve renkli bölgesini alır. Bu, yüz bölgesindeki gözleri tanımlamak için kullanılacaktır.
- Yüz bölgesindeki gözleri tanımlar. Bu, göz tanıma modelini kullanarak yapılır. Model, yüz bölgesindeki gözlerin konumunu ve boyutunu döndürür.
- Her bir göz için, gözü dikdörtgen içine alır ve gözün renkli bölgesini alır. Bu, göz rengini ve şeklini değerlendirmek için kullanılacaktır.
- Göz rengini değerlendirir ve bilgi verir. Bu, göz renginin ortalamasını alarak ve renk uzayında hangi aralığa girdiğine bakarak yapılır. Örneğin, kırmızı renk, konjonktivit veya alerji; sarı renk, katarakt; yeşil renk, glokom gibi göz hastalıklarının belirtisi olabilir. Eğer göz renginde anormal bir değişiklik yoksa, bunu da belirtir.
- Göz en-boy oranını değerlendirir. Bu, gözün genişliğinin yüksekliğine oranını alarak yapılır. Örneğin, göz çok dar ise, tiroid hastalığı; göz çok geniş ise, diyabet gibi göz şekli veya büyüklüğünü etkileyen hastalıkların belirtisi olabilir. Eğer göz şekli veya büyüklüğünde anormal bir değişiklik yoksa, bunu da belirtir.
- Son olarak, birden çok resmi işleme ekleyerek fonksiyonu çağırır. Bu, image_paths listesindeki resim yollarını fonksiyona vererek yapılır. Fonksiyon, her bir resim için göz rahatsızlıklarını tespit eder ve ekrana yazdırır. Ayrıca, işlenmiş resimleri göstermek için bir kısım vardır, ancak bu kısım devre dışı bırakılmıştır. Bu kısmı aktif etmek için, yorum satırı işaretlerini (#) kaldırmak gerekir.
YORUMLAR
Henüz yorum yapılmamış.