Merhaba, bugün sizlerle cv2 ve haarcascade kütüphanelerini kullanarak herhangi bir resimdeki yüzleri bulmaya çalışacağız.
İlk olarak önceden uzun uğraşlar sonucu yazılmış 30000 satırlık haarcascadefrontalface.xml kütüphanesini indirmemiz gerek.
Kütüphaneyi buradan indirebilirsiniz
https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml
Bu kütüphaneyi indirdikten sonra proje dosyamıza ekliyoruz. Ve tabi ki aynı zamanda yüzleri bulmak istediğimiz resimleri de. Ben prison break dizisinden tanıdığım scofield’in yüz resmini indirdim ve proje dosyama attım
Program kodlarımız yazıyoruz. Program kodlarımız bu şekilde
import cv2 # kütüphane ekleme işlemi
yuzprogramı = cv2.CascadeClassifier("haarcascade_frontalface_default.xml") # kullanacağmız hazır yüz bulma programı
resim = cv2.imread("yuz.jpg") # resmimizi belirtme
griresim = cv2.cvtColor(resim, cv2.COLOR_BGR2GRAY) # resmimizi griye donuştürme
program = yuzprogramı.detectMultiScale(griresim, 1.3,3) # programı çalıştırma (taranacak resim,büyütme oranı,kontrol sayısı)
for (a, b, c, d) in program:
cv2.rectangle(resim, (a, b), (a + c, b + d), (255, 0, 0),
2) # burada bulduğumuz insan yüzlerini kare içide alma işlemini yapıyoruz
# (yüzlerin gösterileceği resim,(köşe ayarlama)(köşe ayarlama),(karenin rengi),karenin kalınlığı)
cv2.imshow("kapatmak için herhangi bir tuşa basınız", resim) # resmin son halini gösterme
cv2.waitKey(0)
cv2.destroyAllWindows() # herhangi bir tuşa basınca kapatmak için
Yorumsuz sade hali ise bu şekilde
import cv2 yuzprogramı = cv2.CascadeClassifier("haarcascade_frontalface_default.xml") resim = cv2.imread("yuz.jpg") griresim = cv2.cvtColor(resim, cv2.COLOR_BGR2GRAY) program = yuzprogramı.detectMultiScale(griresim, 1.3,3) for (a, b, c, d) in program: cv2.rectangle(resim, (a, b), (a + c, b + d), (255, 0, 0), 2) cv2.imshow("kapatmak için herhangi bir tuşa basınız", resim) cv2.waitKey(0) cv2.destroyAllWindows()
Programı çalıştırdığımızda yüzü alanının kare içine alındığını görüyoruz.
Farklı bir resimde ise tüm yuzleri yine buluyor program.
Tek yapmamız gereken, proje dosyasına aktarmamız ve bu resmin ismini imread kısımına girmemiz.
Programın klasör bağlantıları ve görüntüsü ise şu şekilde