fidantokac commited on
Commit
bb1ce1b
·
verified ·
1 Parent(s): 897d71b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -6
app.py CHANGED
@@ -1,31 +1,44 @@
1
  import cv2
2
  import gradio as gr
3
 
4
- # Yüz tespiti için önceden eğitilmiş bir model yüklenir
5
  face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
6
 
7
  def detect_faces(img):
8
 
9
- if img is None: # Eğer img None ise, None döndür
10
  return None
11
 
12
- # Resmi istenen boyuta küçült
13
  height, width, _ = img.shape
14
  if height > 750 or width > 750:
15
  img = cv2.resize(img, (750, 750))
16
 
17
- # Görüntüyü gri tonlamaya çevir
 
18
  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
19
 
20
- # Yüzleri tespit et
 
 
 
21
  faces = face_cascade.detectMultiScale(gray, 1.3, 7)
22
 
 
 
23
  count = 0
 
24
  for (x, y, w, h) in faces:
 
25
  cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
26
  count += 1
27
 
28
- cv2.putText(img, f"** {count} people were detect in the photo.", (100, 700), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255,000 ), 2)
 
 
 
 
 
29
  return img
30
 
31
  # Gradio arayüzünü oluştur
 
1
  import cv2
2
  import gradio as gr
3
 
4
+ # Yüz tespiti için önceden eğitilmiş bir model. xml dosyası olarak indirilip proje dosyasına atılmalıç
5
  face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
6
 
7
  def detect_faces(img):
8
 
9
+ if img is None: # Clear butonuna bastığında output alanında error vermesin diye. Eğer img None ise, None döndür
10
  return None
11
 
12
+ #Resmi istenen boyuta küçültme(Çok büyük boyutlu resimlerle değil daha küçük boyutla çalışmak istedim)
13
  height, width, _ = img.shape
14
  if height > 750 or width > 750:
15
  img = cv2.resize(img, (750, 750))
16
 
17
+ #Görüntüyü gri tonlamaya çevir
18
+ #Yüz tespiti algoritmaları genellikle gri tonlamalı görüntülerde daha iyi çalışır.
19
  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
20
 
21
+ # face_cascade: Önceden eğitilmiş bir model olup, yüzlerin genellikle bulunduğu bölgeleri (gözler, burun, ağız) temsil eden özelliklere dayanır.
22
+ #detectMultiScale: Görüntüdeki yüzleri tespit etmek için kullanılır
23
+ #1.3=> scaleFactor parametresi her ölçeklendirme adımında görüntünün ne kadar küçültüleceğini belirtir.
24
+ #7=> minNeighbors parametresi bir yüzün geçerli olarak kabul edilmesi için, çevresindeki kaç tane komşu dikdörtgenin de nesne olarak kabul edilmesi gerektiğini belirtir
25
  faces = face_cascade.detectMultiScale(gray, 1.3, 7)
26
 
27
+ #!detectMultiScale metodu, her tespit edilen yüz için bir dikdörtgen koordinatı (x, y, w, h) döndürür.
28
+
29
  count = 0
30
+
31
  for (x, y, w, h) in faces:
32
+ #Bulduğu yüzlere bir dikdörtgen çizer
33
  cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
34
  count += 1
35
 
36
+ #Metin, görüntünün solundan 100 piksel sağa ve üstten 700 piksel aşağıya yazılacaktır
37
+ #cv2.FONT_HERSHEY_SIMPLEX=> Kullanılacak font tipi.
38
+ #1=> Font boyutunu belirtir.
39
+ #(255, 0, 0)=> Metnin rengi kırmızı renk belirtilmiştir.
40
+ #2=> Metnin kalınlığı.
41
+ cv2.putText(img, f"** {count} people were detect in the photo.", (100, 700), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0) ), 2)
42
  return img
43
 
44
  # Gradio arayüzünü oluştur