Python – OpenCV Kullanımı

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.
Python OpenCV Kullanımı - Dizin
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:
Python OpenCV Kullanımı - Pencere İsmi

 

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:
Python OpenCV Kullanımı

 

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:
Python OpenCV Kullanımı - Resim Üzerine Daire

 

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:
Python OpenCV Kullanımı - Resim Üzerine Kare
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:
Python OpenCV Kullanımı - Resim Üzerine Çizgi

 

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ığı.
Python OpenCV Kullanımı - Resim Üzerine Yazı yazma

 

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:
Python OpenCV Yüz Bulucu
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

 

Yorum yapın