Merhaba arkadaşlar, Mobilhanem.com sitemizde Python ile Görüntü İşleme Dersleri eğitim serisine kaldığımız yerden devam ediyoruz. Geçen dersimizde OpenCv’de Format ve Çözünürlük Değiştirme’den bahsettik. Python ile Görüntü İşleme dersinde bu hafta ise OpenCV’de Piramit Oluşturma ve Dörtgen Ekleme konularından bahsedeceğiz. Eğer bir önceki dersimizi inceleme fırsatınız olmadıysa OpenCv’de Format ve Çözünürlük Değiştirme dersimize buradan ulaşabilirsiniz. Resim Üzerinde Piramit Oluşturma ve Dörtgen Ekleme işlemlerine başlamadan önce OpenCv’de Temel İşlemler dersimizde işleyeceğimiz konu başlıklarımızı tekrar gözden geçirelim.
Resim Okuma ve Yazma İşlemleriResim ÖzellikleriResim Çerçeveleme İşlemiÇözünürlüğe Göre Pencere BoyutlandırmaFormat ve Çözünürlük Değiştirme- Resim üzerinde piramit oluşturma (Görüntü işleme durumlarına göre resim boyutlandırma)
- Resime Dörtgen Ekleme
- Resime Çizgi ve Daire Ekleme
- Resime Metin Ekleme İşlemleri
Resim Üzerinde Piramit Oluşturma İşlemi
Bu konumuzda görüntü piramitlerinden bahsedeceğiz. Genellikle varsayılan resim özellikleri ile işlemlerimizi yapıyorduk. Bazen yapacağımız işlemlere göre aynı resmin farklı çözünürlüklerde işlem yapmamız gerekebilir. Mesela resimde yüz bulma, nesne tanıma yaparken farklı çözünürlüklerdeki resimlere ihtiyacımız olacaktır. Farklı çözünürlükteki oluşturucağımız görüntülere görüntü piramiti diyoruz.
İki tür görüntü piramidi vardır. Gauss Piramidi ve Laplace Piramidi. Bizim kullanacağımız piramit olan Gauss Piramidinde daha yüksek seviye (düşük çözünürlük), alt seviye (daha yüksek çözünürlük) görüntüde ardışık satırlar ve sütunlar kaldırılarak oluşturulur. Ayrıca yukarıdaki resimde gördüğünüz gibi piramidin en üst tepesine çıkıldıkça görüntünün çözünürlüğü düşmektedir. Kısa bir teorik bilgi verdikten sonra uygulamamıza geçebiliriz.
Öncelikle proje dosyamızda yeni bir Python dosyasını oluşturup opencv kütüphanemizi ekleyelim.
import cv2
Daha sonra standart olarak yaptığımız bir işlem olan dosyamızdan herhangi bir resmimizi okuyalım.
import cv2 resim=cv2.imread('gunbatimi.jpg') cv2.imshow('Piramit Ornek Resim',resim) cv2.waitKey(0) cv2.destroyAllWindows()
Resim okuma işlemimizi gerçekleştirdikten sonra piramit işlemi ile resmimizi bir üst seviyeye getirelim.
import cv2 resim=cv2.imread('gunbatimi.jpg') piramitustseviye=cv2.pyrUp(resim); cv2.imshow('Piramit Ornek Resim',resim) cv2.imshow('Piramit Bir Ust Seviye Resim',piramitustseviye) cv2.waitKey(0) cv2.destroyAllWindows()
Kod bloğunda bulunan “cv2.pyrUp(resim)” satırı ile resmin piramit işlemi ile bir üst seviyesine getirerek piksel seviyesini artırdık.
Şimdi ise “cv2.pyrDown(resim)” kod satırı ile bir alt seviyeye getirerek piksel değerini düşürelim.
import cv2 resim=cv2.imread('gunbatimi.jpg') piramitaltseviye=cv2.pyrDown(resim); cv2.imshow('Piramit Ornek Resim',resim) cv2.imshow('Piramit Bir Alt Seviye Resim',piramitaltseviye) cv2.waitKey(0) cv2.destroyAllWindows()
Şimdi yazdığımız kodları birleştirerek genel bir bakış yapalım.
import cv2 resim=cv2.imread('gunbatimi.jpg') piramitustseviye=cv2.pyrUp(resim); piramitaltseviye=cv2.pyrDown(resim); cv2.imshow('Piramit Ornek Resim',resim) cv2.imshow('Piramit Bir Alt Seviye Resim',piramitaltseviye) cv2.imshow('Piramit Bir Ust Seviye Resim',piramitustseviye) cv2.waitKey(0) cv2.destroyAllWindows()
Yukarıda göründüğü gibi piramit işlemimiz ile bir üst ve bir alt seviyeye göre resimlerimizi ekranda gösterdik. Görüntü piramitleri denmesinin sebebi resimlerimizi iç içe getirdiğimiz vakit piramit şeklini andırmasıdır.
Resime Dörtgen Ekleme İşlemi
Resmimize dörtgen ekleme işlemi yaparken resmimizin koordinatlarını kullanmamız gerekecektir. Oluşturulacak olan dikdörtgenin birinci koordinat bilgisi resmimizin sol üst köşe, ikinci koordinat bilgisi ise sağ alt köşedir.
Tekrar örnek resmimizi okuyalım.
import cv2 resim=cv2.imread('gunbatimi.jpg') cv2.imshow('Ornek Resim',resim) cv2.waitKey(0) cv2.destroyAllWindows()
Resmimizi okuduktan sonra belirleyeceğimiz koordinatlarda dörtgeni oluşturalım. Dörtgeni oluşturmak için rectangle fonksiyonunu kullanacağız. Öncelikle kullanacağımız fonksiyonumuzun parametrelerini inceleyelim.
Rectangle Fonksiyonunun Parametreleri
- Dörtgen eklenecek olan resim
- Oluşturulacak olan dörtgenin koordinat başlangıç noktası
- Oluşturulacak olan dörtgenin koordinat bitiş noktası
- RGB renk kodları (değerleri değiştirerek farklı renkler elde edebilirsiniz.)
- Dörtgenin çerçeve kalınlığı
import cv2 resim=cv2.imread('gunbatimi.jpg') cv2.imshow('Ornek Resim',resim) cv2.rectangle(resim,(350,40),(200,230),(125,40,20),3) cv2.imshow('Dortgen Eklenmis Resim',resim) cv2.waitKey(0) cv2.destroyAllWindows()
Yukarıdaki resimde gördüğünüz üzere belirlediğimiz örnek resmin başlangıç ve bitiş koordinatlarına göre dörtgenimizi oluşturduk. Sizde fonksiyon içerisinde vereceğiniz koordinat aralıkları ve diğer parametreler ile resim üzerinde dörtgen oluşturabilirsiniz.
Mobilhanem.com da Python ile Görüntü İşleme serisinde bir dersin daha sonuna geldik. Bu hafta Python ile Görüntü İşleme dersimizde OpenCV’de Piramit Oluşturma ve Dörtgen Ekleme‘den bahsettik. Umarım sizin için faydalı bir yazı olmuştur. Bir sonraki OpenCv ‘de Temel İşlemlerde devam edeceğimiz Resime Çizgi ve Daire Ekleme ile Resime Metin Ekleme İşlemleri dersinde görüşmek üzere. Eksik ya da yanlış gördüğünüz bir şey varsa lütfen iletişime geçmekten çekinmeyin.
Tüm Görüntü İşleme Dersleri için tıklayınız.
Kaynak 1 : Link
Kaynak 2: Link
8
Yorum Yaz