Site icon Mobilhanem

OpenCv’de Piramit Oluşturma ve Dörtgen Ekleme

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 Ü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.

 

Görüntü Piramiti

İ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 İşlemi

 

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.

Bir Üst Seviye

 

Ş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()
Bir Alt Seviye

 

Ş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()

 

Piramit İşlemlerimizin Birleştirilmiş Hali

 

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.

Koordinat Bilgisi

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

 

Rectangle Fonksiyonunun Parametreleri

  1. Dörtgen eklenecek olan resim
  2. Oluşturulacak olan dörtgenin koordinat başlangıç noktası
  3. Oluşturulacak olan dörtgenin koordinat bitiş noktası
  4.  RGB renk kodları (değerleri değiştirerek farklı renkler elde edebilirsiniz.)
  5. 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()
Resime Dörtgen Eklenmiş Hali

 

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
Exit mobile version