opencv logo

Python Görüntüyü Farklı Formatta Kayıt Etme

Merhaba arkadaşlar, bu yazımda sizlere olur da farklı formatta bir görsele ihtiyacınız oldu, bunu nasıl Python ile yaparız onu anlatacağım.

Ben daha önceki yazılarımda da kullandığım papatya görselini kullanacağım. Bu görseli jpg olarak alıp png olarak kayıt edeceğim. Bu kayıt etme sırasında ne kadar sıkıştıracağımızı, ne kadar kalitede fotoğraf kayıt edeceğimizi de fonksiyon içerisine kendimiz gireceğiz.

Öncelikle kodlarımız..

Çıktımız

Aslında herhangi bir görsel çıktı kodu yazmadım. Bunun yerine klasör içerisinde yeni oluşan görselleri ekledim.

format değiştirme ve kayıt etme

Anlatım

Artık kütüphaneleri şöyle ekleriz falan demeyeceğim. Direkt olarak konuya geçiyorum.

kaydet adında fonksiyon oluşturdum. Bu fonksiyon kayıt edilecek yolu(path), kayıt edilecek görseli(image), jpg formatında ise kalitesini(jpg_kalite), png formatında ise sıkıştırma miktarını(png_compress) parametrelerini alacak.

Eğer jpg kalitesi gönderildi ise kayıt et:

cv2.imwrite(path,image,[int(cv2.IMWRITE_JPEG_QUALITY),jpg_kalite])

neye göre kayıt edeceğini gelen parametrelerden alacak. Aynı şekilde png sıkıştırma miktarı gönderildi ise;

cv2.imwrite(path,image,[int(cv2.IMWRITE_PNG_COMPRESSION),png_compress])

şeklinde kayıt etmesini söylüyoruz.

Gelelim görseli alıp kaydet fonksiyonuna parametre değerlerini gönderdiğimiz kısıma..

gorsel_isle adında bir fonksiyon oluşturdum. format değişikliği yapacağım resmin yolunu impath adında bir değişkene atıyorum. img değişkenine de bu yoldaki görseli alıp atıyorum. Daha sonra test amaçlı imshow deyip ekranda göstertiyorum.

bize kaydet fonksiyonu diyor ki bana bir yol ver(path ver). O sebeple biz de daha sonra kayıt edeceğimiz görsellere bir ad veriyoruz.

cikis_jpg ve cikis_png adında iki değişkene isim/yol/path veriyorum. Sonrası bildiğiniz fonksiyonlar. kaydet fonksiyonuna path, görsel, jpg_kalitesi (1-100 arası) değerlerini gönderiyoruz.

png için ise; sıkıştırma boyutunu 1-10 arasında seçiyoruz. Ve kaydet fonksiyonuna gönderiyoruz. Umarım anlaşılır olmuştur.

 

Bir cevap yazın