Sabtu, 17 November 2018

PENGOLAHAN CITRA DIGITAL : GABOR FILTER

Halo teman teman semua, kebetulan saya di Semester V saya mendapatkan matakuliah Pengolahan Citra Digital, saya ingin membagikan salah satu tugas yang diberikan oleh dosen saya. Jadi tugasnya itu berupa buatlah sebuah artikel mengenai "Gabor Filter". Kalian yang berada di bidang yang sama dengan saya pasti tidak asing dengan istilah ini kan? Jadi saya ingin membagikan sedikit pengetahuan mengenai Gabor Filter ini. Berikut adalah indeks - indeks yang akan saya bagikan ke teman - teman

  1. PENGERTIAN
  2. PENGAPLIKASIAN DARI GABOR FILTER
  3. CODE PYTHON UNTUK GABOR FILTER
1. PENGERTIAN

Gabor Filter merupakan salah satu filter yang mampu mensimulasikan karakteristik sistem visual manusia dalam mengisolasi frekuensi dan orientasi dari citra. Fungsi Gabor diperkenalkan oleh seorang fisikawan yang bernama Denis Gabor pada tahun 1946 sebagai alat untuk deteksi sinyal dalam noise / derau. Pada tahun 1980 seseorang bernama Dougman menggunakan Gabor Filter ini ke citra 2 Dimensi. Jadilah Gabor Filter yang digunakan untuk menganalisis tekstur dan deteksi tepi pada sebuah citra.

Filter Gabor pada dasarnya adalah sebuah fungsi Gaussian yang dikalikan oleh sinusoid kompleks. Jadi secara matematis persamaan gabor dapat ditulis sebagai berikut


Dimana:
i =  bilangan imajiner (akar -1)
u = frekuensi dari gelombang sinusoidal
θ = control terhadap orientasi dari fungsi gabor
σ = Standar deviasi Gausian Envelope
x,y = koordinat dari gabor filter

seperti yang sudah dijelaskan diatas, mungkin teman - teman bingung yang mana fungsi gausiannya yang mana fungsi sinusoidnya. jadi dari persamaan gabor diatas yang merupakan fungsi gausian adalah :
dan yang merupakan fungsi sinusoidnya adalah:



2. PENGAPLIKASIAN DARI GABOR FILTER

Dari salah satu sumber yang saya baca. Gabor Filter sudah digunakan di banyak aplikasi seperti.
  • Pengakuan Objek: filter Gabor dan versi modifikasi mereka digunakan secara luas dalam visi komputer.
  • Segmentasi tekstur: Filter Gabor Digunakan untuk memisahkan beberapa tekstur dalam suatu gambar.
  • Pengenalan karakter optik: Untuk mengenali huruf tulisan tangan plat nomor, papan reklame, dll secara otomatis.
  • Manajemen dimensi fraktal: Fraktal pada dasarnya adalah pola yang mirip diri.
  • Deteksi tepi: Mendeteksi ujung-ujungnya dalam gambar adalah langkah preproses dalam banyak sistem pemrosesan gambar.
  • Identifikasi retina: Mengidentifikasi retina manusia dengan andal. Biasanya digunakan untuk keamanan.
  • Pengkodean gambar: Penyandian gambar digunakan hampir di mana-mana untuk transmisi
3. CODE PYTHON UNTUK GABOR FILTER

Sebelumnya teman - teman pastikan sudah menginstall library numpy dan mathplotlib untuk menggunakan code ini.tujuan dari code yang saya kutip dari buku OpenCV3 ini adalah menunjukan gabor filter pada gambar untuk mendeteksi berapa jumlah coin yang ada pada gambar. Berikut adalah codenya

import math
import cv2
import numpy as np
import matplotlib.pyplot as plt

image = cv2.imread("koin.jpg",0).astype(np.float32)/255 
kernel = cv2.getGaborKernel((20, 20), 5, 1, 10, 1, 0, cv2.CV_32F)

'''
cv2.getGaborKernel(ksize, sigma, theta, lambda, gamma, phi, ktype)
ksize - size of gabor filter (n, n) --> line width of road markings in pixel
sigma - standard deviation of the gaussian function
theta - orientation of the normal to the parallel stripes
lambda - wavelength of the sunusoidal factor
gamma - spatial aspect ratio# phi - phase offset
ktype - type and range of values that each pixel in the gabor kernel can hold
'''

kernel /= math.sqrt((kernel * kernel).sum())
filtered = cv2.filter2D(image, -1, kernel)

plt.figure(figsize=(8,3))
plt.subplot(131)
plt.axis('off')
plt.title('image')
plt.imshow(image, cmap='gray')
plt.subplot(132)
plt.title('kernel')
plt.imshow(kernel, cmap='gray')
plt.subplot(133)
plt.axis('off')
plt.title('filtered')
plt.imshow(filtered, cmap='gray')
plt.tight_layout()
plt.show()

Berikut adalah hasil output dari program diatas

mungkin sekian dulu pengetahuan yang bisa saya bagi ke teman - teman mungkin jika ada tambahan bisa tambahkan di kolom komentar dibawah. saran dan kritik yang bersifat membangun sangat diperlukan disini. Terima Kasih :)

Reference:
  1. Spizhevoy Alexey, Rybnikov Aleksandr,2018, "OpenCV3 Computer Vision with Python Cookbook : Leverage The Power of Open CV3 and Python to Build Computer Vision Application".
  2. Arman, Hera, 2012, "Analisa Performance Metode Gabor Filter untuk Pengenalan Wajah"
  3. Jozhi,Prateek, 2014, "Understanding Gabor Filter",


Tidak ada komentar:

Posting Komentar