Opencv-Python Uygulamaları-6

Çarşamba, Ağustos 30, 2017 , , , 0 Comments

Kullanılan Sistem Özellikleri: Ubuntu 16.04 LTS, OpenCV 3.2, Python 3.5.2

Hedefler:

Görüntü özelliklerine erişim
Görüntüler için sınırlar oluşturma(Padding)

Kullanılacak Fonksiyonlar:
cv2.copyMakeBorder()

Görüntünün etrafında bir fotoğraf çerçevesi(frame) oluşturmak istiyorsanız; cv2.copyMakeBorder() fonksiyonunu kullanabilirsiniz. Konvülasyon, zero padding gibi işlemleri de yine aynı fonksiyon yardımı ile gerçekleştirebilirsiniz. Fonksiyonun iç yapısına bir göz atacak olursak:

src: görüntü girdisi(input)
top,bottom,left,right sınır piksellerinin değer aralıkları
borderType: İşaret(flag)'in nasıl olacağı ile ilgili parametreler. Aşağıdaki gibi devam edebilir.
cv2.BORDER_CONSTANT : Sabit renkli çerçeve ekler. Değerin hemen bir sonraki parametrede belirtilmesi gerekmektedir.
cv2.BORDER_REFLECT : Sınırlar ayna(mirror) efekti eklenerek belirtilir. Örneğin: abc|cba gibi
cv2.BORDER_DEFAULT : Mirror efekti gibi çalışır sınırları ilk tanımlı haline döndürür.
cv2.BORDER_REPLICATE : Son element kopyalanır,çoğaltılır(replicate). Örneğin: abc|ccccc
cv2.BORDER_WRAP : Son elemanı keser(wrapping)
value: Sınırın(Border) tipinin değerini gösterir.

Hadi tüm bu parametreleri daha iyi anlayabilmek için hepsini bir örnek içinde test edelim.
import cv2
import numpy as np
from matplotlib import pyplot as plt

# Matplotlib Modülünü Kurmayı Unutmayınız!!!

BLUE = [255,0,0]
res1= cv2.imread('opencv1.png')

# Kullanılan Parametreler:

replicate = cv2.copyMakeBorder(res1,15,15,15,15,cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(res1,15,15,15,15,cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(res1,15,15,15,15,cv2.BORDER_REFLECT_101)
wrap = cv2.copyMakeBorder(res1,15,15,15,15,cv2.BORDER_WRAP)
constant= cv2.copyMakeBorder(res1,15,15,15,15,cv2.BORDER_CONSTANT,value=BLUE)

# Subplotların Atamaları İçin:

plt.subplot(231),plt.imshow(res1,'gray'),plt.title('ORIGINAL')
plt.subplot(232),plt.imshow(replicate,'gray'),plt.title('REPLICATE')
plt.subplot(233),plt.imshow(reflect,'gray'),plt.title('REFLECT')
plt.subplot(234),plt.imshow(reflect101,'gray'),plt.title('REFLECT_101')
plt.subplot(235),plt.imshow(wrap,'gray'),plt.title('WRAP')
plt.subplot(236),plt.imshow(constant,'gray'),plt.title('CONSTANT')
plt.show()

Örnek resim olarak; dersler için kullandığımız resmi kullandığımızda aşağıdakine benzer bir çıktı almamız gerekmektedir. Parametreleri değiştirerek sonuçlarını gözlemleyebilirsiniz. İyi eğlenceler

Kaynakça: http://docs.opencv.org/3.2.0/
Kaynak dosyaları ve Resimleri indirmek için: TIKLAYINIZ!!!

0 yorum: