Python OpenCV modülüyle yüz tanıma , fotoğraf özelleştirme vs. gibi birçok şeyi gerçekleştirebilirsiniz.
Öncelikle modülümüzü kurmamız lazım bunun için şu komutu terminal penceremize yazalım:
pip install opencv-python
Bu komutla beraber sadece ana modüller gelir.
4 farklı opencv paketi var fakat bizim işimizi görecek olan paket bu paket.
Python OpenCV Nasıl Kullanılır?
OpenCV Projeye Dahil Etme
OpenCV modülümüzü projemize dahil etmemiz için şu komutu kullanmalıyız:
import cv2
bu komut OpenCV kütüphanesini projemize dahil eder.
Resim Üzerinde OpenCV ile Değişiklikler Yapma
OpenCV kütüphanemizi az önceki komutla programımıza dahil ettik.
Şimdi OpenCV kullanarak bir görsel açalım ve onun üzerinde değişiklikler yapalım.
Öncelikle bir görsel seçiyoruz ve görseli proje dosyasının olduğu konuma taşıyoruz.
Daha sonra proje dosyamıza gelip şu kodları yazıyoruz:
img = cv2.imread(“kullanacağımız görselin adı.jpg”)
imread kullanarak görselimizi tanımladık. Eğer görselimiz farklı bir konumdaysa path yani yolunu belirtmeliyiz. Şu şekilde yapabiliriz:
path = “görselin bulunduğu dizin”
img = cv2.imread(path)
Şeklinde yazarak görsele erişebiliriz. Dizini şöyle kopyalayabilirsiniz.
Gördüğünüz gibi Dosyalarım uygulamasında buraya tıklayıp kopyalarsak dizin almış oluruz.
Görselimize eriştik , peki görselimizi nasıl göstereceğiz? Şu kodları kullanmamız yeterli:
cv2.imshow(“Kod Akademisi”, img)
Bu kodun ilk parametresi pencere ismimiz yani:
bu kodu yazarsak görselimizin hemen açılıp kapandığını fark edeceksiniz.
Bu sorunu çözmek için aşağıdaki kodu kullanmanız yeterli.
cv2.waitKey()
Kodların tamamı ve resmi göstermek gerekirse:
Gördüğünüz gibi kodlarımız ve resmimiz.
Resmin Bilgilerine Erişim
Resmin yükseklik, satır ve sütun bilgilerine erişmek için resmimizi “imread” yöntemiyle tanımladıktan sonra şu kodu yazıyoruz:
print(resim.shape)
Bu kod ile resmin değerleri döndürülür .
Resmin Üzerine Daire Çizme
Yukarıdaki resmin ortasına bir daire koymak istersek napmalıyız?
Öncelikle remimizi “imread” yöntemi kullanarak tanımlıyoruz.
Daha sonra şu kodu yazarak resmin üzerine daire çiziyoruz:
cv2.ellipse(resim, (250,200), (2,2), 0, 0, 180, 255, 200)
Kodun ilk iki parametresi piksel belirtme.
Sondan bir önceki parametremiz dairenin rengi için.
Sonuncu parametremiz dairenin büyüklüğü için.
Bunun sonucunda resmimiz şöyle gözüküyor:
Resmin Üzerine Dikdörtgen Çizme
Resimde pikselini belirttiğimiz yere bir daire çizmiştik.
Şimdi ise bir dikdörtgen çizdireceğiz. Bunun için şu kodları yazıyoruz:
cv2.rectangle(resim, (250,200), (2,2), (255,255,0), 8)
Bu kodlarda ilk iki parametremiz resim piksel belirtmek için.
Üçüncü parametresi renk belirtmek için sondaki sıfırı değiştirerek farklı renkler elde edebilirsiniz.
Son parametremi ise dikdörtgenin kenar kalınlığı için.
Bu kod satırı sonrasında resmimiz şöyle gözükecek:
Farklı parametreler deneyerek farklı yerlerin üzerine dikdörtgen çizebilirsiniz.
Resmin Üzerine Çizgi Çizdirmek
Resmimizin üzerine bir çizgi çizdirmek istiyorsak şu kodu kullanırız:
cv2.line(resim(250,400), (2,2), (255,255,0), 8)
Kodun ilk iki parametresi piksel belirtmek için.
Üçüncü parametresi renk belirtmek için.
Son parametresi çizginin kalınlığı için.
Bu kodlar sonrası resmimiz şöyle görünecek:
Farklı parametreler deneyerek başka yerlere çizdirebilirsiniz.
Resmin Üzerine Yazı Yazma
Görselimizin üzerine bir yazı yazmak istiyorsak şu kodu kullanırız:
Öncelikle font belirtmemiz lazım.
font = cv2.FONT_HERSHEY_SIMPLEX
fontumuzu seçtik daha sonra yazımızı yazdıralım.
cv2.putText(resim,’Kod Akademisi’,(25,300),font,1,(255,255,0),2,cv2.LINE_AA)
‘Kod Akademisi’ yazdığımız yere siz ne yazmak istiyorsanız onu yazabilirsiniz.
(25,300) yazımızı yazdırdığımız koordinatlar.
font yazarak fontumuzu dahil ettik.
1 yazdığımız yer yazımızın büyüklüğü.
(255,255,0) yazarak rengimizi belirledik.
2 yazdığımız yer yazımızın kalınlığı.
Resmimiz yukardaki gibi olur.
OpenCv Yüz Bulma Programı
Örnek olarak bir program vermek istedim. Bu programda önceden hazırlanmış 30.000 kod satırından oluşan bir kütüphane kullanacağız ve bu kütüphanenin de yardımıyla bir resimdeki yüzleri belirleyeceğiz.
Kütüphanemizi indirmek için buraya tıklayın.
Öncelikle kullanacağımız modül olan opencv modülünü import ediyoruz.
import cv2
daha sonra dosya yollarımızı belirtiyoruz.
path = “resmin dosya yolu”
path2 = “kütüphanenin dosya yolu”
daha sonrasında kütüphanemizi içeri aktarmak için şu kodu yazıyoruz.
yuzbulucu = cv2.CascadeClassifier(path2)
daha sonra resmimizi belirtiyoruz.
resim = cv2.imread(path)
resmimizi griye dönüştürmemiz lazım bunun için şu kodu yazıyoruz.
griresim = cv2.cvtColor(resim,cv2.COLOR_BGR2GRAY)
veya
griresim = cv2.cvtColor(resim,0)
şeklinde de olur.
daha sonra program isimli bir değişken tanımlayıp programın ana bölümü olan kodlarımızı giriyoruz.
program = yuzbulucu.detectMultiScale(griresim,1.9,0)
İlk parametrede taranacak resmi belirtiyoruz.
İkinci parametrede büyütme oranını 1.9 olarak ayarlıyoruz.
Üçüncü parametrede kontrol sayısını 0 olarak belirityoruz.
Daha sonra bulduğu yüzleri kare içine alma işlemi gerçekleştimesi için şu kodları yazıyoruz.
for (a,b,c,d) in program:
cv2.rectangle(resim, (a,b), (a+c,b+d), (255,255,0), 2)
İlk parametremiz yüzlerin kareyle gösterileceği resim.
İkinci ve üçüncü parametremiz köşe ayarlama.
Dördüncü parametremiz karenin rengi.
Beşinci parametremiz karenin kalınlığı.
Daha sonra bulduğu yüzleri göstermesi için:
cv2.imshow(“Kod Akademisi”,resim)
cv2.waitKey(0)
Kodların tümü şu şekilde:
import cv2
path = “resmin dosya yolu”
path2 = “kütüphanenin dosya yolu”
yuzbulucu = cv2.CascadeClassifier(path2)
resim = cv2.imread(path)
griresim = cv2.cvtColor(resim,cv2.COLOR_BGR2GRAY)
program = yuzbulucu.detectMultiScale(griresim,1.9,0)
for (a,b,c,d) in program:
cv2.rectangle(resim, (a,b), (a+c,b+d), (255,255,0), 2)
cv2.imshow(“Kod Akademisi”,resim)
cv2.waitKey(0)
Yukarıdaki kodların çıktısı şu şekilde olur:
Bugünkü dersimiz buraya kadardı bu konuyla ilgili daha fazla makale gelecek:)
Etiketler: python, python opencv kullanımı, python opencv, python opencv modülü kullanımı, python opencv nasıl kullanılır