Upload
rizki-anhar
View
5
Download
2
Embed Size (px)
DESCRIPTION
Gabor Filter Machine Vision
Citation preview
Nama: Rizki Anhar R Putra
Nrp: 2210100134
Tugas 6 Machine Vision:
Gabor filter
Filter gabor disebut juga dengan filter pendeteksi tepi, dan dinamai oleh Dennis Gabor. Dengan kata lain filter gabor digunakan untuk memisahkan bagian tertentu dari sebuah gambar dimana bagian ini adalah seuah informasi yang kita inginkan. Filter gabor dan gabor wavelet mempunyai keterkaitan dimana mereka dapat dirancang untuk sejumlah dilations dan rotasi. Namun, secara umum, ekspansi tidak diterapkan untuk Gabor wavelet, karena ini perhitungan Membutuhkan bi-ortogonal wavelet, yang mungkin sangat memakan waktu. Oleh karena itu, biasanya, sebuah bank penyaring yang terdiri dari Gabor filter dengan berbagai skala dan rotasi dibuat. Penyaring convolved dengan sinyal, sehingga disebut ruang Gabor.
Tujuan utama dari Gabor wavelet adalah untuk memunculkan ciri ciri khusus dari gambar yang telah dikonvolusikan terhadap kernel. Proses yang berlangsung dalam bidang frekuensi mempengaruhi kecepatan proses yang terjadi, baik dalam proses gambar maupun saat proses konvolusi.
Gambar diatas adalah salah satu contoh dari gabor filter dimana sidik jari seseorang dapat kita ambil bagian-bagian yang ingin kita gali informasinya atau dengan kata lain kita dapat mengetahui karakteristik bentuk sidik jari manusia.
Gabor wavelet memiliki kemampuan untuk memberikan kekuatan untuk melawan besaran indeks brightness atau kecerahan yang berbeda beda pada gambar. Lokasi yang terbatas dalam space dan frekuensi menghasilkan sejumlah kekuatan tertentu untuk melawan translasi, distorsi, rotasi, dan scalling. Hanya fase yang berubah secara drastis dengan translasi. Kekurangan dari titik-titik yang besar adalah kesensitivitasan terhadap variasi background. Hal ini ditunjukan, tetapi jika garis objek diketahui, pengaruh pada background dapat ditekan.
Nama: Rizki Anhar R Putra
Nrp: 2210100134
Jika dimodelkan dalam sebuah persamaan maka proses gabor dapat dinyatakan dalam hubungan matematis sebagai berikut:
dimana
Algoritma menggunakan metode gabor filter sebagai berikut:
1. Mengakuisisi data gambar baik yang berupa video atau gambar statis yang diambil dari
devais atau media penyimpanan komputer
2. Mengubah jumlah kanal dari gambar tersebut sembari mengkuantisasi nilainya terhadap
level 8 bit(default) yakni menggunakan metode grayscale
3. Memulai menghimpun parameter-parameter dari gabor filter yang terdiri dari sigma,
panjang gelombang, orientasi atau teta, aspect ratio, dan phase offset
4. Menentukan besar kernel dari filter gabor
5. Parameter-parameter tersebut kemudian diolah berdasarkan rumus hubungan yang ada.
6. Melakukan proses konvolusi antara gambar dengan kernel yang telah diolah berdasarkan
parameter-parameter yang ada
7. Memfilter gambar hasil operasi filter gabor menggunakan filter 2D.
Nama: Rizki Anhar R Putra
Nrp: 2210100134
Berikut ini adalah listing program menggunakan filter gabor:
#include <cv.h>#include <highgui.h>#include <math.h>int kernel_size=21;int pos_sigma= 5;int pos_lm = 90;int pos_th = 90;int pos_psi = 120;void main(){
IplImage*src=0;IplImage*gray=0;IplImage*output=0;src=cvLoadImage("gabor.jpg",1);cvNamedWindow("Gray",1);cvNamedWindow("Output",1);gray = cvCreateImage(cvGetSize(src),8,1);cvCvtColor(src,gray,CV_RGB2GRAY);output = cvCreateImage(cvGetSize(src),8,1);if(!kernel_size%2)
kernel_size+=1;double sig = pos_sigma;double lm = 0.5+pos_lm/100.0;double th = pos_th;double ps = pos_psi;
int hks = (kernel_size-1)/2; double theta = th*CV_PI/180; double psi = ps*CV_PI/180; double del = 2.0/(kernel_size-1); double lmbd = lm; double sigma = sig/kernel_size; double x_theta; double y_theta; CvMat*kernel=cvCreateMat(kernel_size,kernel_size,CV_32F); for (int y=-hks; y<=hks; y++) for (int x=-hks; x<=hks; x++) { x_theta = x*del*cos(theta)+y*del*sin(theta); y_theta = -x*del*sin(theta)+y*del*cos(theta); CV_MAT_ELEM(*kernel,float,hks+y,hks+x) = (float)exp(
0.5*(pow(x_theta,2)+pow(y_theta,2))/pow(sigma,2))* cos(2*CV_PI*x_theta/lmbd+ psi);
}cvFilter2D(gray,output,kernel);cvShowImage("Output",output);if(cvWaitKey(0)>=0){
cvReleaseImage(&src);cvReleaseImage(&output);cvReleaseImage(&gray);cvDestroyWindow("Gray");cvDestroyWindow("Output");
}}
Nama: Rizki Anhar R Putra
Nrp: 2210100134
Dengan Gambar asli:
Denagn mengatur:
kernel size =21sigma = 5lamda = 90orientasi = 90phase offset = 120
Maka didapat:
Nama: Rizki Anhar R Putra
Nrp: 2210100134
Denagn mengatur:
kernel size =21sigma = 5lamda = 90orientasi = 0phase offset = 120
Maka didapat:
Nama: Rizki Anhar R Putra
Nrp: 2210100134
Nama: Rizki Anhar R Putra
Nrp: 2210100134