You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
PENGOLAHAN CITRA DIGITAL
PADA DOMAIN SPASIAL
DENGAN IMPLEMENTASI
PEMROGRAMAN BERBASIS MATLAB
Matakuliah: Penginderaan Jarak Jauh
Dosen: Daeng Achmad Suaidi
Sumber Pustaka: Gonzalez, Bab 4
Agenda:
• Point Processing
o Image Negative
o Contrast Stretching
o Histogram Equalization
o Image Substraction
• Mask Processing
o Smoothing filters:
Lowpass filter: linear filter (average filter)
Median filter: non-linear filter
o Sharpening filters: Highpass filter
daeng’s files 1
• Image Negative
Mengubah nilai grey-level piksel citra input dengan: Gbaru = 255 – Glama.
Hasilnya seperti klise foto
Praktek 1
Lakukan perintah-perintah berikut pada command window matlab:
>>Citra= imread(‘woman.bmp’);
>> imshow(Citra);
>> Citra_Negatif=255- Citra;
>> figure, imshow(Citra_Negatif);
• Contrast Stretching
Contrast Stretching dengan menggunakan fungsi:
fout = (fin – a) * b
a = min(fin)
daeng’s files 2
b = 255 / (max(fin) – min(fin))
Citra masukan yang grey level nya tidak penuh dari 0 – 255 (low constrast) diubah
menjadi citra yang grey level nya berkisar dari 0 – 255 (high contrast)
Praktek 2
Lakukan perintah-perintah berikut pada command window matlab:
>>Citra= imread(‘kucing.bmp’);
>> imshow(Citra);
>> a = min(min(Citra));
>> b = max(max(Citra));
>> c = 255 / (b – a);
>> Cintra_contrast = (Citra – a) * c;
>> figure, imshow(Citra_contrast);
daeng’s files 3
• Histogram Equalization
Histogram: diagram yang menunjukkan jumlah kemunculan grey level (0-255) pada
suatu citra
Histogram processing:
Histogram processing: mengubah bentuk histogram agar pemetaan gray level pada
citra juga berubah
Ide: mengubah pemetaan greylevel agar sebarannya (kontrasnya) lebih menyebar pada
kisaran 0-255.
Sifat:
Grey level yang sering muncul lebih dijarangkan jaraknya dengan grey level sebelumnya
Grey level yang jarang muncul bisa lebih dirapatkan jaraknya dengan grey level
sebelumnya
Histogram baru pasti mencapai nilai maksimal keabuan (contoh: 255)
Praktek 3
Lakukan perintah-perintah berikut pada command window matlab:
>>Citra= imread(‘roda.bmp’);
>> imshow(Citra);
>> Citra_his = histeq(Citra);
daeng’s files 4
>> figure, imshow(Citra_his);
>> figure, imhist(Citra,64);
>> figure, imhist(Citra_his,64);
• Mask Processing
Jika pada point processing kita hanya melakukan operasi terhadap masing-masing
piksel, maka pada mask processing kita melakukan operasi terhadap suatu jendela
ketetanggaan pada citra. Kemudian kita menerapkan (mengkonvolusikan) suatu mask
terhadap jendela tersebut. Mask sering juga disebut filter.
Contoh: Jendela ketetanggan 3x3,
1 2 3
8 x 4
7 6 5
Nilai piksel pada posisi x dipengaruhi oleh nilai 8 tetangganya
Perbedaan dengan point processing: pada point processing, nilai suatu piksel tidak
dipengaruhi oleh nilai tetangga-tetangganya
Contoh sebuah mask berukuran 3x3.
Filter ini akan dikonvolusikan pada setiap jendela ketetanggaan 3x3 pada citra (anggap
filter sudah dalam bentuk terbalik
W1 W2 W3
W4 W5 W6
W7 W8 W9
daeng’s files 5
G11 G12 G13 G14 G15
G21 G22 G23 G24 G25
G31 G32 G33 G34 G35
G22’ = w1 G11 + w2 G12 + w3 G13+
w4 G21 + w5 G22 + w6 G23 +
w7 G31 + w8 G32 + w9 G33
G41 G42 G43 G44 G45
G51 G52 G53 G54 G55
‣ SMOOTHING
FILTER LINEAR
Pada prinsipnya, filter yang digunakan dalam filter linear adalah
neighborhood averaging merupakan salah satu jenis low-pass filter, yang bekerja
dengan cara mengganti nilai suatu piksel pada citra asal dengan nilai rata-rata dari
piksel tersebut dan lingkungan tetangganya.
Penapis rata-rata adalah salah satu penapis lolos rendah yang paling
sederhana. Aturan untuk penapis lolos rendah adalah :
Semua koefisien penapis harus positif
Jumlah semua koefisian harus sama dengan satu
Jika jumlah semua koefisien lebih besar daripada satu, maka konvolusi
menghasilkan penguatan (tidak diinginkan). Jika jumlah semua koefisien lebih kecil
dari satu, maka yang dihasilkan adalah penurunan, dua nilai mutlak setiap piksel di
seluruh bagian citra berkurang. Akibatnya, citra hasil pelembutan tampak lebih
gelap. Berikut beberapa penapis rata-rata, yaitu penapis lolos rendah yang sering
digunakan pada operasi pelembutan.
daeng’s files 6
1/9 1/9 1/9 1/16 1/8 1/16 1/10 1/10 1/10
1/9 1/9 1/9 1/8 1/4 1/8 1/10 1/5 1/10
1/9 1/9 1/9 1/16 1/8 1/16 1/10 1/10 1/10
Praktek 4
Contoh perintah untuk melakukan neighborhood averaging dengan kernel
berukuran 3×3:
I=imread('eight.tif');
A=imnoise(I,'gaussian');
B=imnoise(I,'poisson');
C=imnoise(I,'speckle');
kernel=[1 1 1; 1 1 1; 1 1 1]/9;
J=uint8(conv2(double(A),kernel,'same'));
figure,imshow(A);
figure,imshow(J);
Contoh pelembutan dengan noise tipe gaussian
daeng’s files 7
FILTER MEDIAN
Smoothing (penghalusan) citra adalah operasi pengurangan derau (noise) pada
citra. Metode atau filtering yang terbaik bergantung pada situasi citra dan jenis derau atau
degradasi yang terdapat pada citra. Beberapa filter tersebut adalah:
Filter median sangat bermanfaat untuk menghilangkan outliers, yaitu nilai-nilai
piksel yang ekstrim. Filter median menggunakan sliding neighborhood untuk memproses
suatu citra, yaitu suatu operasi dimana filter ini aka menentukan nilai masing-masing
piksel keluaran dengan memeriksa tetangga m×n di sekitar piksel masukan yang
bersangkutan. Filtering median mengatur nilai-nilai piksel dalam satu tetangga dan
memilih nilai tengah atau median sebagai hasil.
Median filter merupakan salah satu jenis low-pass filter, yang bekerja dengan
mengganti nilai suatu piksel pada citra asal dengan nilai median dari piksel tersebut dan
lingkungan tetangganya. Dibandingkan dengan neighborhood averaging, filter ini lebih
tidak sensitif terhadap perbedaan intensitas yang ekstrim.
Pada penapis median, suatu ‘jendela’ (window) memuat sejumlah piksel. Jendela
digeser titik demi titik pada seluruh daerah citra. Pada setiap pergeseran dibuat jendela
baru. Titik tengah dari jendela ini diubah dengan nilai median dari jendela tersebut.
13 10 15 14 18
12 10 10 10 15
11 11 35 10 10
13 9 12 10 12
13 12 9 8 10
Piksel bernilai 35 terkena derau
Sebagai contoh, tinjau jendela berupa kelompok piksel (daerah berwarna
biru cerah) pada sebuah citra pada gambar di atas. Piksel yang sedang diproses
adalah yang mempunyai intensitas 35.
10 10 10 11 35 10 9 12 10
daeng’s files 8
Urutkan piksel-piksel tersebut:
9 10 10 10 10 10 11 12 35
Median dari kelompok tersebut adalah 10 (dicetak tebal). Titik tengah dari
jendela (35) sekarang diganti dengan bilai median (10). Hasil dari penapis median
diperlihatkan pada gambar di bawah ini. Jadi, penapis median menghilangkan
nilai piksel yang sangat berbeda dengan piksel tetangganya.
13 10 15 14 18
12 10 10 10 15
11 11 10 10 10
13 9 12 10 12
13 12 9 8 10
Praktek 5
Piksel bernilai 35 diganti dengan 10
Contoh perintah untuk melakukan median filtering dengan kernel berukuran 3×3:
I=imread('eight.tif');
IN=imnoise(I,'salt & pepper',0.02);
J=medfilt2(I,[3 3]);
JN=medfilt2(IN,[3 3]);
figure,imshow(I);
figure,imshow(J);
figure,imshow(IN);
figure,imshow(JN);
daeng’s files 9
Hasil pemfilteran dengan filter median
‣ SHARPENING
Sharpening (penajaman) citra adalah operasi penonjolan bagian-bagian pada
citra. Metode atau filtering yang digunakan adalah high-pass filtering.
Operasi penajaman citra bertujuan untuk memperjelas tepi pada objek di dalam
citra. Penajaman citra merupakan kebalikan dari operasi pelembutan citra karena operrasi
ini menghilangkan bagian citra yang lembut.
Operasi penajaman dilakukan dengan melewatkan citra pada penapis lolos tinggi
(high pass filter). Penapis lolos tinggi akan meloloskan (atau memperkuat) komponen
yang berfrekuensi tinggi (misalnya tepi atau pinggiran objek) dan akan menurunkan
komponen berfrekuensi rendah. Akibatnya, pinggiran objek terlihat lebih tajam
dibandingkan sekitarnya.
Karena penajaman citra lebih berpengaruh pada tepi (edge) objek, maka
penajaman citra sering disebut juga penajaman tepi (edge sharpening) atau peningkatan
kualitas tepi (edge enchantment). Berikut di bawah ini adalah contoh penajaman citra:
daeng’s files 10
Contoh hasil penajaman citra ‘lena.jpg’
Seperti pada operasi pelembutan citra yang telah kita bahas sebelumnya, pada
operasi penajaman citra juga digunakan penapis yang berfungsi untuk melakukan
penajaman objek pada citra.
Penapis pada operasi penajaman citra disebut penapis lolos tinggi. Aturan dari
penapis lolos tinggi adalah sebagai berikut:
Koefisien boleh positif, negatif, atau nol
Jumlah semua koefisien adalah nol atau Satu
Jika jumlah koefisien = 0, maka komponen berfrekuensi rendah akan turun
nilainya, sedangkan jika jumlah koefisien sama dengan satu, maka komponen
berfrekuensi rendah akan tetap sama dengan nilai semula. Berikut contoh-contoh penapis
lolos tinggi yang sering digunakan dalam penajaman citra:
filter 1 filter 1 filter 2
-1 -1 -1 -1 -1 -1 0 -1 0
-1 8 -1 -1 9 -1 -1 5 -1
-1 -1 -1 -1 -1 -1 0 -1 0
∑ = 0 ∑ = 1 ∑ = 1
daeng’s files 11
filter 2 filter 3 filter 3
0 1 0 1 -2 1 1 -1 1
1 -4 1 -2 5 -2 -2 4 -2
0 1 0 1 -2 1 1 -1 1
∑ = 0 ∑ = 1 ∑ = 0
Nilai koefisien yang besar di titik pusat penapis memainkan peranan kunci dalam
proses konvolusi. Pada komponen citra dengan frekuensi tinggi (yang berarti perubahan
yang besar pada nilai intensitasnya), nilai tengah ini dikalikan dengan nilai piksel yang
dihitung. Koefisien negatif yang lebih kecil di sekitar titik tengah penapis bekerja untuk
mengurangi factor pembobotan yang besar. Efek nettonya adalah, piksel-piksel yang
bernilai besar diperkuat, sedangkan area citra dengan intensitas piksel konstan tidak
berubah nilainya.
Karena koefisien penapis mengandung nilai negatif, maka konvolusi mungkin
saja menghasilkan piksel bernilai negatif. Meskipun intensitas bernilai negatif menarik,
tetapi kita tidak dapat menampilkannya. Untuk alasan ini, implementasi konvolusi menset
nilai negative menjadi nilai nol. Cara lainnya adalah dengan mengambil nilai
mutlaknya atau menskalakan semua nilai piksel secara menaik sehingga nilai yang paling
negative menjadi nol.
Praktek 6: HIGH-PASS FILTERING
Sebagaimana pada proses pengolahan sinyal satu dimensi, high-pass filter
dua dimensi akan melewatkan komponen citra frekuensi tinggi dan meredam
komponen citra frekuensi rendah. Contoh perintah untuk melakukan high-pass
filtering:
I=imread('saturn.tif');
hpf1=[ 1 -2 1;-2 5 -2; 1 -2 1];
daeng’s files 12
hpf2=[ 0 -1 0;-1 5 -1; 0 -1 0];
hpf3=[-1 -1 -1;-1 9 -1;-1 -1 -1];
J1=uint8(conv2(double(I),hpf1,'same'));
J2=uint8(conv2(double(I),hpf2,'same'));
J3=uint8(conv2(double(I),hpf3,'same'));
figure,imshow(I);
figure,imshow(J1);
figure,imshow(J2);
figure,imshow(J3);
Hasil pemfilteran dengan filter high-pass
daeng’s files 13
TUGAS !
LAKUKAN PRKTEK 1 SAMPAI 6. TAMPILAN CITRA
INPUT DAN OUTPUT DICOPY PASTE KE WORD,
DIPRINT.
daeng’s files 14