Erdem YILDIZ

Siber Güvenlik Araştırmacısı
Python Geliştiricisi
Linux Hayranı

Python ile Fotoğraf ve Video üzerinden yüz yakalama

Merhaba arkadaşlar bugün python ile yazmış olduğum script'lerde basit olarak insan yüzünü bulup bunu bir kare içersinde gösteren script'lerinin amacını , kodlarını ve video ile kullanımı göstereceğim.Haydi bir giriş yapalım...

Arkadaşlar yukarıda'da paylaştığım gibi insanların yüzünü yakalan python tabanlı bir script yazmak istedim. Bunun için birkaç araştırma yaptığımda karşıma Opencv kütüphanesi geldi ve işe önce onu yükleyerek başladım. Sonrasında ise hem fotoğrafta hemde video'da insan yüzü'nü yakalayan bir proje yapıp sizlerle paylaşmak istedim.

Kötü kod yazdığım için üzgünüm.Daha iyi bir yazılımcı olmak için yazılım geliştirme ve problem çözme yeteneğim üzerinde hala uğraşmaktayım.
                                        #DetectFaceImage.py
                                        import cv2
                                        import numpy as np
                                        import sys

                                        #Cascade yolu sizin bilgisayarınız için farklı olabilir

                                        def Detect(image):
                                                faceCascade = cv2.CascadeClassifier("/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml")
                                                eyeCascade  = cv2.CascadeClassifier('/usr/local/share/OpenCV/haarcascades/haarcascade_eye.xml')

                                                img = cv2.imread(image)

                                                faces = faceCascade.detectMultiScale(img , 1.3,5)
                                                for x,y,w,h in faces:
                                                        cv2.rectangle(img , (x,y) , (x+w , y+h) , (255,0,0),3)
                                                        cv2.imshow('Picture' , img)
                                                if cv2.waitKey(0) & 0xff == 27:
                                                    cv2.destroyAllWindows()


                                        if __name__ == "__main__":
                                                image = sys.argv[1]
                                                Detect(image)

                                        
                                        #DetectFaceVideo.py
                                        # -*- coding: utf-8 -*-
                                        import cv2
                                        import numpy as np

                                        #Cascade yolu sizin bilgisayarınız için farklı olabilir

                                        def PlayVideo():
                                                cap = cv2.VideoCapture(0)
                                                faceCascade = cv2.CascadeClassifier("/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml")

                                                while True:
                                                        _, frame = cap.read()
                                                        resize = cv2.resize(frame,(800,600) , interpolation = cv2.INTER_LINEAR )
                                                        faces = faceCascade.detectMultiScale(resize , 1.2,5)
                                                        for (x, y, w, h) in faces:
                                                                cv2.rectangle(resize, (x, y), (x+w, y+h), (0, 255, 0), 2)

                                                        cv2.imshow("Video" , resize)

                                                        if cv2.waitKey(10) & 0xff == 27:
                                                                break

                                                cap.release()
                                                cv2.destroyAllWindows()

                                        PlayVideo()

                                        

Yukarıda paylaşmış olduğum kodda bir sıkıntı yada yapılabilecek iyileştirmeler için bana ulaşabilirseniz çok sevinirim.Okuduğunuz için çok teşekkür ederim.Esen kalın :)