Wednesday, September 19, 2012

Filter Blurring dan Sharpening Menggunakan Matlab

Filter


Filter 2D yang umum dapat dibangun di Matlab dengan menggunakan built-in fungsi fspecial (filter khusus).
fspecial (filtername, paramaters, ...) = matriks nilai-nilai yang mewakili filter.
fspecial mendefinisikan filter umum berikut:
  • average : averaging filter
  • disk : circular averaging filter
  • gaussian : Gaussian lowpass filter
  • laplacian : filter mendekati operator Laplacian 2-D
  • log : Laplacian of Gaussian filter
  • motion : motion filter
  • prewitt : Prewitt horizontal edge-emphasizing filter
  • sobel : Sobel horizontal edge-emphasizing filter
  • unsharp : unsharp contrast enhancement filter

Filter diterapkan untuk multi-dimensi (RGB gambar = 3D matriks) menggunakan fungsi imfilter, dan diterapkan untuk intensitas gambar (matriks 2D) menggunakan fungsi filter2.

Smoothing / Blurring


Blurring (Pengaburan) yaitu filter spasial low-pass yang melenyapkan detil halus dari suatu citra. Pengaburan dicapai melalui konvolusi dari seluruh koefisien mask bernilai sama. Blurring ini merupakan perataan nilai pixel-pixel tetangga, makin besar ukuran mask maka makin besar efek pengaburan yang dihasilkan.

Pelembutan Citra (smoothing) mempunyai tujuan mengurangi noise pada suatu image. Noise-noise tersebut muncul sebagai akibat dari hasil pensamplingan yang tidak bagus. Pixel komponen yang mempunyai noise pada umumnya memiliki frekuensi yang tinggi. Kompoen citra yang berfrekuensi rendah akan diloloskan dan komponen yang mempunyai frekuensi tinggi akan ditahan.

Filter smoothing dapat dibangun di Matlab dengan menggunakan fungsi fspecial (filter khusus). contohnya:
gaussianFilter = fspecial ('gaussian', [7, 7], 5) 
dalam pemanggilan fungsi ini akan membangun matriks gaussian filter dengan 7 baris dan 7 kolom, dengan standar deviasi 5.

Sharpening


Sharpening (Penajaman) yaitu memperjelas detil suatu citra(menambah kontras) dengan penjumlahan atas citra tepi dengan citra aslinya maka bagian tepi objek akan terlihat berbeda dengan latarnya, sehingga citra terkesan lebih tajam.

Proses penajaman berhubungan dengan deteksi tepi - perubahan warna yang dilemahkan untuk menciptakan efek tepi tajam. Menggunakan fspecial yang akan membuat filter untuk menajamkan (sharpening) gambar. Filter khususnya bernama 'unsharp'.

Contoh Pengolahan Citra

Gambar asli:

Pengolahan dengan Sharpening dan Blurring:

% Sharpening
pic2 = imread('Pomegranate.jpg');
sharpFilter = fspecial('unsharp');
figure, subplot(2,2,1), image(pic2), title('Original Pomegranate Seeds');
sharp = imfilter(pic2, sharpFilter, 'replicate');
subplot(2,2,2), image(sharp), title('Sharpened Pomegranate');

% Blurring
gaussianFilter = fspecial('gaussian', [7, 7], 5);
gaussianPic = imfilter(pic2, gaussianFilter, 'symmetric', 'conv');
subplot(2,2,3), image(gaussianPic), title('Blurring');


Hasil pengolahan gambar: 


Selain menggunakan fungsi blurring di atas, dapat pula menggunakan pengolahan gambar dengan metode pelembutan citra (smoothing). Pertama, gambar diconvert menjadi noise abu-abu agar terlihat perubahan gambarnya. Kemudian, dibuat pelembutannya sehingga gambar yang kasar menjadi lebih lembut dan terlihat lebih jelas. Fungsi uint8(x) digunakan untuk converts matrix x ke uint8 data type (0-255).

gambar = imread('Pomegranate.jpg');
gray = rgb2gray(gambar);
noisegray = imnoise(gray, 'Gaussian', 0.02);
k = [0.25 0.25 0.25 0.25]

thresh = graythresh(noisegray);
biner = im2bw(noisegray, thresh);
con = uint8(conv2(noisegray, k, 'same'));
conv = conv2(double(biner), k, 'same');
imshow(noisegray), title('Citra dengan penambahan Noise');

figure, imshow(con), title('Hasil citra noise setelah Konvolusi unit8');
figure, imshow(conv), title('Hasil citra noise setelah Konvolusi');







No comments:

Post a Comment