Blurring

Kategori: Python / OpenCV , 05 Ekim 2019 , JanFranco


3x3 boyutlu bir matris düşünelim. Bu matris resmin sol üst köşesinden başlayarak birer birer sağa kaysın, en sağa gelince bir alt satırda soldan başlayarak kaymaya devam etsin. Her kayma adımında, matrisin elemanları ile alttaki resmin, matrise denk gelen pikselleri çarpılsın. Bu çarpımların toplamını alalım. Bu toplam yeni resmimizin (0, 0) koordinatındaki pikselidir. Bu işleme convolution denir.

Blurring yani bulanıklaştırma tekniği bu işlemi kullanılarak yapılır. Farklı blurring teknikleri vardır, bu tekniklerin farkı, convolution matrisinin (filtre) değerlerinin değişmesidir. OpenCV kütüphanesini kullanarak görelim:


import cv2
import numpy as np

image = cv2.imread("input.jpg")

blur = cv2.blur(image, (3,3))
cv2.imshow('Averaging', blur)
cv2.waitKey(0)
blur() methodunun ilk parametresi resim, ikinci parametresi filtre boyutudur. Mutlaka tek sayı verilmelidir. Bir başka method görelim:


Gaussian = cv2.GaussianBlur(image, (7,7), 0)
cv2.imshow('Gaussian Blurring', Gaussian)
cv2.waitKey(0)
İlk parametre resim, ikinci parametre boyut, üçüncü parametre sigmaX değeridir. Bir başka method görelim:


median = cv2.medianBlur(image, 5)
cv2.imshow('Median Blurring', median)
cv2.waitKey(0)
medianBlur() methodunun ikinci parametresi filtre boyutudur. Burada 5 değeri verilerek 5x5 boyutlu bir filtre oluşturulmuştur. Son bir method daha görelim:


bilateral = cv2.bilateralFilter(image, 9, 75, 75)
cv2.imshow('Bilateral Blurring', bilateral)
cv2.waitKey(0)
bilateralFilter() methodunun ilk parametresi resim, ikinci parametresi komşu piksel değeri, üçüncü ve dördüncü parametreler sigmaColor ve sigmaSpace değerleridir.

Computer Vision bölümünde bu methodları ayrı ayrı yazılarımda inceleyerek, arkalarındaki matematik ve algoritmalardan detaylıca bahsedeceğim. Bu yazımda methodların sadece nasıl kullanıldığını gördük.


Sonraki Yazı: Denoising
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın