Merhaba arkadaşlar, önceki yazılarımda yaptığımız örnekleri sabit bir pencerede görüyorduk. Bu yazımda nasıl farklı boyutlara getirebiliriz onu göreceğiz.

Kodumuz

import cv2


def basla():
    resim=cv2.imread("papatya.jpg")
    ekran_coz=600,400
    skala_genislik=ekran_coz[0]/resim.shape[1]
    skala_yukseklik=ekran_coz[1]/resim.shape[0]
    
    skala=min(skala_genislik,skala_yukseklik)
    
    pencere_genislik=int(resim.shape[1]*skala)
    pencere_yukseklik=int(resim.shape[0]*skala)
    
    cv2.namedWindow('Boyutlanabilir Pencere',cv2.WINDOW_NORMAL)
    cv2.resizeWindow('Boyutlanabilir Pencere',pencere_genislik,pencere_yukseklik)
    cv2.imshow('Boyutlanabilir Pencere',resim)
    
    
basla()

Çıktımız

Yeniden Boyutlandırılabilir Pencere

Anlatım

Öncelikle openCV kütüphanemizi import cv2 diyerek ekliyoruz. Daha sonra fonksiyonel bir yapıda olması için basla diye bir fonksiyon oluşturuyorum. Dilerseniz siz bunu yapmayabilirsiniz.

Dışarıdan resmimizi imread ile alıyoruz. Burada bir ekran çözünürlüğü giriyoruz. Bu başlangıç durumu oluyor aslında. Sonrasında genişlik ve yükseklik almamız gerekiyor. Bunu faremiz ile boyutu değiştiğinde sürekli yenilemesi gerekiyor. Bunları da skala_genislik ve skala_yukseklik diye iki değişkende tutuyoruz.

Daha sonra skala değişkenine en küçük parçayı atıyoruz. Sonrasında bunu resmin shape’i ile çarparak pencere genişlik ve yükseklik değerlerini bulacağız.

Artık son kısıma geldik.

Pencere yeniden boyutlandırılabilir bir pencere olduğunu cv2.namedWindow fonksiyonu içerisine cv2.WINDOW_NORMAL parametresini göndererek programa belirtiyoruz.

cv2.resizeWindow fonksiyonu içerisine de neye göre yeniden boyutlandırdığımızı gönderiyoruz. Biz pencere genişlik ve yükseklik değerlerini atıyoruz.

Ve cv2.imshow() diyerek ekranda gösteriyoruz. Umarım anlaşılır olmuştur. Belki ilk etapta hangisi ne için kullanılır anlamamış olabilirsiniz fakat kodlar üzerinde küçük oynamalar yaparak bulabilirsiniz.

 

Bunlara Göz Atmak İsteyebilirsiniz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir