View
974
Download
4
Category
Preview:
Citation preview
PENGOLAHAN CITRA DIGITAL DENGAN MENGGUNAKAN MATLAB
PRODI MATEMATIKA
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS HASANUDDIN
MAKASSAR
2015
OLEH:
NAMA : SUKARDI
NIM : H111 11 002
1
DAFTAR ISI
DAFTAR ISI ....................................................................................................... 1
BAB I TOERI CITRA DIGITAL ......................................................................... 3
1.1 Representasi Citra Digital ........................................................................... 3
1.2 Gambar Sebagai Matriks ............................................................................ 4
1.3 Resolusi Citra ............................................................................................. 4
1.3.1. Resolusi Spasial .................................................................................. 4
1.3.2 Resolusi kecemerlangan ...................................................................... 4
1.4 Citra warna (True Colour) .......................................................................... 5
1.5 Citra warna (24 bit) .................................................................................... 5
1.6 Format File Citra ........................................................................................ 5
BAB II PENGOLAHAN CITRA DIGITAL ........................................................ 7
2.1 Pengolahan Citra Digital ............................................................................ 7
2.1.1 Membaca/Memanggil Citra (Image) .................................................... 7
2.1.2 Menampilkan Gambar ......................................................................... 9
2.2 Tipe Citra ................................................................................................. 10
2.2.1 Ekstraksi Nilai Piksel Red, Green dan Blue (RGB) ............................ 11
2.2.2 Konversi Gambar RGB ke Grayscale ................................................. 12
2.2.3 Konversi Gambar ke Hitam-Putih ...................................................... 15
2.2.4 Komversi Gambar ke Biner ............................................................... 16
2.2.5 Perbandingan Matriks Warna dan Hitam Putih .................................. 17
2.3 Function imadjust ..................................................................................... 19
2.4 Histogram Processing and Function Plotting ............................................ 21
2.4.1 Generating and Plotting Image Histograms ........................................ 21
2.4.2 Histogram Equalizati ......................................................................... 24
2
2.5 Spatial Filtering ........................................................................................ 28
2.5.1 Linear Spatial Filtering ...................................................................... 28
2.6 Transformasi Fourier Diskrit 2-Dimensi ................................................... 37
2.7 Menghitung dan Menvisualisasikan 2-D DFT dalam MATLAB ............... 38
2.8 Filtering In The Frequency Domain .......................................................... 47
3
BAB I
TEORI CITRA DIGITAL
1.1 Representasi Citra Digital
Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari
suatu objek. Citra terbagi 2 yaitu ada citra yang bersifat analog dan ada citra yang
bersifat digital. Citra analog adalah citra yang bersifat kontinu seperti gambar pada
monitor televisi, foto sinar X, hasil CT scan dll. Sedangkan pada citra digital adalah
citra yang dapat diolah oleh computer.
Sebuah citra digital dapat mewakili oleh sebuah matriks yang terdiri dari M
kolom N baris, dimana perpotongan antara kolom dan baris disebut piksel (piksel =
picture element), yaitu elemen terkecil dari sebuah citra. Piksel mempunyai dua
parameter, yaitu koordinat dan intensitas atau warna. Nilai yang terdapat pada
koordinat (π₯, π¦) adalah π(π₯, π¦), yaitu besar intensitas atau warna dari piksel di titik
itu.Oleh sebab itu, sebuah citra digital dapat ditulis dalam bentuk matriks berikut.
π(π₯, π¦) = [
π(0,0) π(0,1) β¦ π(0, π β 1)
π(1,0) β¦ β¦ π(1, π β 1) β¦
π(π β 1,0)β¦
π(π β 1,1)β¦β¦
β¦π(π β 1, π β 1)
] (1.1)
Berdasarkan gambaran tersebut, secara matematis citra digital dapat
dituliskan sebagai fungsi intensitas π (π₯, π¦), dimana harga x (baris) dan y (kolom)
merupakan koordinat posisi dan π(π₯, π¦) adalah nilai fungsi pada setiap titik (π₯, π¦)
yang menyatakan besar intensitas citra atau tingkat keabuan atau warna dari piksel
di titik tersebut. Pada proses digitalisasi (sampling dan kuantitas) diperoleh besar
baris M dan kolom N hingga citra membentuk matriks M x N dan jumlah tingkat
keabuan piksel G.
Pengolahan citra digital adalah sebuah disiplin ilmu yang mempelajari hal-
hal yang berkaitan dengan perbaikan kualitas gambar (peningkatan kontras,
transformasi warna, restorasi citra), transformasi gambar (rotasi, translasi, skala,
transformasigeometrik), melakukan pemilihan citra ciri (feature images) yang
4
optimal untuk tujuan analisis, melakukan proses penarikan informasi atau deskripsi
objek atau pengenalan objek yang terkandung pada citra, melakukan kompresi atau
reduksi data untuk tujuan penyimpanan data, transmisi data, dan waktu proses data.
Input dari pengoalahan citra adalah citra, sedangkan outputnya adalah citra hasil
pengolahan.
1.2 Gambar Sebagai Matriks
Matriks adalah kumpulan bilangan- bilangan yang disusun dalam larik baris
dan kolom. Umumnya matriks diberi notasi huruf kapital A, B,....
Jika matriks A terdiri dari m baris dan n kolom (sering disebut ordo mxn), maka
dapat ditulis sebagai :
π΄ = πππ = [
π11 π12 β¦ π1π
π21 π22β¦ π2π
β¦ππ1
β¦ππ2
β¦β¦
β¦πππ
] (1.2)
Perhatikan bahwa matriks yang terdiri dari 1 kolom sama dengan vektor.
1.3 Resolusi Citra
Resolusi citra merupakan tingkat detailnya suatu citra. Semakin tinggi
resolusinya semakin tinggi pula tingkat detail dari citra tersebut. Menurut T,Sutoyo
ada dua jenis resolusi yang perlu diketahui, yaitu :
1.3.1. Resolusi Spasial
Resolusi spasial ini merupakan ukuran halus atau kasarnya pembagian kisi-
kisi baris dan kolom pada saat sampling.Resolusi ini dipakai untuk menentukan
jumlah pixel per satuan panjang. Biasanya satuan resolusi ini adalah dpi (dot per
inchi).
Resolusi ini sangat berpengaruh pada detail dan perhitungan gambar.
1.3.2 Resolusi kecemerlangan
Resolusi kecemerlangan (intensitas/ brightness) atau biasanya disebut
dengan kedalaman bit/ kedalaman warna (Bit Depth) adalah ukuran halus kasarnya
pembagian tingkat gradasi warna saat dilakukan kuantisasi. Bit Depth menentukan
5
berapa banyak informasi warna yang tersedia untuk ditampilkan dalam setiap
piksel. Semakin besar nilanya, semakin bagus kualitas gambar yang dihasilkan dan
tentu ukuran juga semakin besar.
1.4 Citra warna (True Colour)
Setiap piksel pada citra warna mewakili warna yang merupakan kombinasi
dari tiga warna dasar (RGB = Red Green Blue). Setiap warna dasar menggunakan
penyimpanan 8 bit = 1 byte, yang berarti mempunyai gradasi sebanyak 255 warna
berarti setiap piksel mempunyai kombinasi warna sebanyak 28. 28. 28 = 224 =
16 ππ’π‘π π€ππππ ππππβ. Penyimpanan citra true color didalam memori berbeda
dengan citra grayscale. Setiap piksel dari citra grayscale 256 gradasi warna diwakili
oleh 1 byte. Sedangkan 1 piksel citra true color diwakili oleh 3 byte yang masing-
masing byte merepresentasikan warna merah (Red), hijau (Green), biru (Blue) (T,
Sutoyo et al.2009: 22).
1.5 Citra warna (24 bit)
Setiap pixel dari citra warna 24 bit diwakili dengan 24 bit sehingga total
16.777.216 variasi warna. Variasi ini sudah lebih dari cukup untuk
memvisualisasikan seluruh warna yang dapat dilihat penglihatan manusia.
Penglihatan manusia dipercaya hanya dapat membedakan hingga 10 juta warna
saja.
Setiap poin informasi pixel (RGB) disimpan kedalam 1 byte data. 8 bit
pertama menyimpan nilai biru, kemudian diikuti dengan nilai hijau pada 8 bit kedua
dan 8 bit terakhir merupakan warna merah.
1.6 Format File Citra
Sebuah format file citra harus dapat menyatukan kualitas citra, ukuran file
dan kompabilitas dengan berbagai aplikasi. Format file citra standar yang
digunakan saat ini terdiri dari beberapa jenis. Format- format ini digunakan untuk
menyimpan citra dalam sebuah file. Setiap format memiliki karakteristik masing-
masing. Ini adalah contoh format umum, yaitu : Bitmap (.bmp), tagged image
format (.tif, .tiff), Portable Network Graphics (.png), JPEG (.jpg), dll.
6
Bahkan menurut Sutoyo,T.Mulyanto,E, ada dua jenis format file citra yang
sering digunakan dalam pengolahan citra, yaitu citra bitmap dan citra vektor. Pada
citra bitmap ini sering disebut juga citra raster. Citra bitmap ini menyimpan data
kode citra secara digital dan lengkap (cara penyimpanannya adalah per piksel).
Citra bitmap ini dipresentasikan dalam bentuk matriks atau dipetakan dengan
menggunakan bilangan biner atau sistem bilangan yang lain. Citra ini memiliki
kelebihan untuk memanipulasi warna, tetapi untuk mengubah objek lebih sulit.
Tampilan bitmap mampu menunjukkan kehalusan gradasi bayangan dan warna dari
sebuah gambar. Tetapi bila tampilan diperbesar maka tampilan di monitor akan
tampak pecah-pecah (kualitas citra menurun). Contoh format file citra antara lain
adalah BMP, GIFF, TIF, WPG, IMG, dll. Sedangkan pada format file citra vektor
merupakan citra vektor yang dihasilkan dari perhitungan matematis dan tidak
terdapat piksel, yaitu data yang tersimpan dalam bentuk vektor posisi, dimana yang
tersimpan hanya informasi vektor posisi dengan bentuk sebuah fungsi. Pada citra
vektor, mengubah warna lebih sulit dilakukan, tetapi membentuk objek dengan cara
mengubah nilai lebih mudah. Oleh karena itu, bila citra diperbesar atau diperkecil,
kualitas citra relatif tetap baik dan tidak berubah. Citra vektor biasanya dibuat
menggunakan aplikasi- aplikasi citra vektor seperti CorelDRAW, Adobe Illustrator,
Macromedia Freehand, Autocad, dll.
7
BAB II
PENGOLAHAAAN CITRA DIGITAL
2.1 Pengolahan Citra Digital
Pengolahan citra adalah pemrosesan citra, khususnya dengan menggunakan
computer, menjadi citra yang kualitasnya lebih baik.
MATLAB adalah bahasa pemrograman computer yang tidak memerlukan
definsi variasi secara khusus , secara sederhana MATLAB bekerja seperti
kalkulator . cukup kita menuliskan intruksi operasi yang digunakan kemudian tekan
enter.
Dalam menyelesaikan tugas Rangkuman ini saya memncoba menjalankan
MATLAB untuk pengolahan citra digital, berikut adalah beberapa fungsi
MATLAB dalam pengolahan citra digital:
2.1.1 Membaca/Memanggil Citra (Image)
Pada program matlab fungsi untuk melakukan pembacaan image standar adalah:
ππππππ(β²ππππππππβ²)
Contoh penggunaan Imread
Ganbar Asli:
>>π = ππππππ(βπππππππ. πππβ)
8
Ket: Menampilkan matriks tidak menggunakan ; namun jika hanya membaca saja
akhir perintah harus menggunakan ;.
>>Hasil Pembacaan Citra dalm bentuk MAtriks:
Hasil dari pembacaan imread(βfilenameβ) bisa berupa matriks dua dimensi jika
gambar yang dibaca adalah gambar grayscale dan matriks 3 dimensi jika berupa
gambar 3 dimesi.
Perintah imread(βfilenameβ) dapat digunakan untuk membaca/memanggil beberapa
format file. Antara lain:
Tabel 1. Format file yang bias digunakan untuk membaca perintah imread.
Format Deskripsi Extension
TIFF Tagged Image File Format .tif.tiff
JPEG Join Photographic Expertβs Group .jpeg.jpg
GIF Graphics Interchange Format .gif
BMP Windws Bitmap .bmp
9
PNG Portable Network Graphics .png
XWD X-Window Dump .xwd
Berikut contoh penggunaan sintaks imread(βfilenameβ):
>> π = ππππππ(β²πππππππ1. πππβ²);
>> π ππ§π(π)
πππ =
320 529
>> [π, π] = π ππ§π(π);
>> π = π ππ§π(π, 1);
>> π€βππ π
ππππ πππ§π π΅π¦π‘ππ πΆπππ π π΄π‘π‘ππππ’π‘ππ
π 320π₯529π₯3 507840 π’πππ‘8
Penjelasan:
π = ππππππ(βπππππππ. πππβ); Perintah imread digunakan untuk membaca image
dan file grafis polinom.jpg yang hasilnya berupa matriks dan di simpan dalam
sebuah variabel bernama P. Matriks citra disini akan memiliki bentuk tiga dimensi
dengan ukuran 320 Γ 529 Γ 3 karena didapat dari file citra warna RGB berukuran
320 Γ 529 dengan tiga lapisan warna dasar red,green dan blue.
[π, π] = π ππ§π(π); perintah size digunakan untuk membaca ukuran matriks P. M
digunakan untuk menampung jumlah M, N menampung jumlah N dari matriks P.
2.1.2 Menampilkan Gambar
Untuk menampilkan gambar dengan nama file polinom.jpg di gunakan
source code sebagai berikut:
10
>> π = ππππππ(βπππππππ. πππβ);
>> πππ βππ€(π);
>> Hasilnya:
Gambar 1: Hasil Imshow(P)
Penejelasan:
Source code baris pertama membaca citra dengan nama file polinom.jpg dan
kemudian disimpan dalam variable a dalam bentuk matriks sedangkan baris kedua
untuk menampilkan file citra yang telah di baca.
2.2 Tipe Citra
Terdapat 4 tipe dari Citra yaitu:
1. Gray-Scale Images
2. Binary images
3. Indexed Images
4. RGB Images
Dibawah ini dijelaskan tentang pengolahan tipe Citra.
11
2.2.1 Ekstraksi Nilai Piksel Red, Green dan Blue (RGB)
MATLAB menyediakan fasilitas yang cukup baik dalam memisahkan
RGB(Red,Green,Blue).
Berikut contoh Ekstraksi Nilai Pikse(RGB):
>> πππππ;
>> π = ππππππ(β²πππππππ1. πππβ²);
>> πππ = π(: , : ,1);
>> πππππ = π(: , : ,2);
>> πππ’π = π(: , : ,3);
>> π π’πππππ‘(2,2,1);
>> πππ βππ€(π);
>> π‘ππ‘ππ(β²πΌππ πΆππ‘ππ ππ ππβ²);
>> π π’πππππ‘(2,2,2);
>> πππ βππ€(πππ);
>> π‘ππ‘ππ(β²πΌππ πΆππ‘ππ ππππββ²);
>> π π’πππππ‘(2,2,3);
>> πππ βππ€(πππππ);
>> π‘ππ‘ππ(β²πΌππ πΆππ‘ππ π»ππππ’β²);
>> π π’πππππ‘(2,2,4);
>> πππ βππ€(πππ’π);
>> π‘ππ‘ππ(β²πΌππ πΆππ‘ππ π΅πππ’β²);
>>
12
Hasilnya:
Gambar 3: hasil dari pemisahan RGB
Penjelasan:
π = ππππππ(β²πππππππ. πππβ²); perintah ini berfungsi untuk membaca gambar..
πππ = π(: , : ,1); perintah ini berfungsi hanya berisi piksel warna merah, πππππ =
π(: , : ,2); perintah ini berfungsi untuk membaca hanya pada piksel warna hijau
begitu pula dengan perintah πππ’π = π(: , : ,3); hanya berisi piksel warna biru.
2.2.2 Konversi Gambar RGB ke Grayscale
Grayscaling adalah teknik yang digunakan untuk mengubah citra
berwarna(RGB) menjadi bentuk grayscale atau tingkat keabuan(dari hitam ke
putih).
Berikut contoh Ekstraksi Nilai Piksel (RGB);
>> πππππ;
>> π πΊπ΅ = ππππππ(β²πππππππ. πππβ²);
>> π = πππ2ππππ¦(π πΊπ΅);
>> π π’πππππ‘(1,2,1);
>> πππ βππ€(π πΊπ΅);
13
>> π‘ππ‘ππ(β²πΆππ‘ππ π΄π ππβ²);
>> π π’πππππ‘(1,2,2);
>> πππ βππ€(π)
>> π‘ππ‘ππ(β²πΆππ‘ππ πΊπππ¦π ππππβ²);
>>
Hasilnya:
Gambar 4: Hasil dari pengubahan warna ke abu abuan
Untuk perubahan bentuk grayscale ini tidak menggunakan fungsi MATLAB
yang sudah ada yang merupakan nilai rata-rata piksel RGB tetapi masing-masing
nilai RGB diberi nilai bobot yang berbeda-beda, hal ini dengan mudah dilakukan
dengan menggunakan nilai seperti yang telah dilakukan diatas. Contoh sebagai
berikut:
>> π = ππππππ(β²πππππππ. πππβ²);
>> πππ = π(: , : ,1);
>> πππππ = π(: , : ,2);
>> πππ’π = π(: , : ,3);
>> ππππ¦2 = 0.3 β πππ + 0.5 β πππππ + 0.2 β πππ’π;
14
>> π π’πππππ‘(2,2,1);
>> πππ βππ€(πππ)
>> π‘ππ‘ππ(β²πΆππ‘ππ ππππββ²);
>> π π’πππππ‘(2,2,2);
>> πππ βππ€(πππππ);
>> π‘ππ‘ππ(β²πΆππ‘ππ π»ππππ’β²);
>> π π’πππππ‘(2,2,3);
>> πππ βππ€(πππ’π)
>> π‘ππ‘ππ(β²πΆππ‘ππ π΅πππ’β²);
>> π π’πππππ‘(2,2,4);
>> πππ βππ€(ππππ¦2)
>> π‘ππ‘ππ(β²πΆππ‘ππ ππππ¦π ππππβ²);
>>
Hasilnya:
Gambar 5: hasil dari pemisahan RGB dan Grayscale
15
2.2.3 Konversi Gambar ke Hitam-Putih
MATLAB menyediakan fungsi untuk meubah gambar yang memiliki warna
menjadi Hitam-Putih(BW)
>> π = ππππππ(β²πππππππ. πππβ²);
>> π π’πππππ‘(1,2,1);
>> πππ βππ€(π)
>> π‘ππ‘ππ(β²πΆππ‘ππ π΄π ππβ²);
>> π΅π = ππ2ππ€(π);
>> π π’πππππ‘(1,2,2);
>> πππ βππ€(π΅π)
>> π‘ππ‘ππ(β²πΆππ‘ππ π΅πβ²);
>> πππ€πππ‘π(π΅π, β²πππππππ. πππβ², β²πππβ²)
>>
Hasilnya:
Gambar 6: Hasil Konversi Warna ke Hitam Putih
16
2.2.4 Komversi Gambar ke Biner
Binerisasi citra adalah salah satu proses penting yang biasanya dilakukan
dalam pengolahan citra.
>> π = ππππππ(β²πππππππ. πππβ²);
>> ππππ¦ = πππ2ππππ¦(π);
>> π‘βπππ β = ππππ¦π‘βπππ β(ππππ¦);
>> ππππ€ = ππ2ππ€(ππππ¦, π‘βπππ β);
>> π π’πππππ‘(1,2,1);
>> πππ βππ€(π)
>> π‘ππ‘ππ(β²πΆππ‘ππ π΄π ππβ²);
>> π π’πππππ‘(1,2,2);
>> πππ βππ€(ππππ€)
>> π‘ππ‘ππ(β²πΆππ‘ππ π΅ππππβ²)
>>
Hasilnya:
Gambar 7: Hasil konvers dari Citra Hitam Putih ke Citra Biner
17
Ada 2 fungsi penting dalam proses diatas yaitu thresh=graythresh(gray);
yang digunakan untuk mendapatkan nilai ambang batas dan
imbw=im2bw(gray,thresh); yang melakukan proses binerisasi citra itu sendiri.
2.2.5 Perbandingan Matriks Warna dan Hitam Putih
Gambar 8: Indeks Citra dengan x=17 dan y=22
Gambar 9: Hasil nilai matrik pada citra warna
18
Gambar 10: Indeks Citra pada x=17 dan y=22
Gambar 11: Hasil nilai Matrik pada Citra Hitam Putih
19
2.3 Function imadjust
>> π = ππππππ’π π‘(π. [πππ€_ππ βππβ_ππ], . . . [πππ€_ππ’π‘ βππβ_ππ’π‘], πππππ)
>> π = ππππππ(β²πππππππ2011. πππβ²);
>> πππ βππ€(π);
Hasilnya adalah:
>> π1 = ππππππ’π π‘(π, [0 1], [1 0]);
>> πππ βππ€(π1);
Hasilnya adalah:
20
>> π2 = ππππππ’π π‘(π, [0.5 0.75], [0 1]);
>> πππ βππ€(π2);
Hasilnya adalah:
>> π3 = ππππππ’π π‘(π, [], [],2);
>> πππ βππ€(π3);
Hasilnya adalah:
21
2.4 Histogram Processing and Function Plotting
2.4.1 Generating and Plotting Image Histograms
>> π = ππππππ(β²πππππππ2011. πππβ²);
>> β = π(: , : ,1);
>> πππ βππ€(π), ππβππ π‘(β)
Hasilnya adalah:
>> π = ππβππ π‘(β);
>> π1 = π(1: 10: 256);
>> βπππ§ = 1: 10: 256;
>> πππ(βπππ§, π1)
22
ππ₯ππ ([0 255 0 15000])
>> ππ₯ππ ([0 255 0 15000])
>> π ππ‘(πππ, β²π₯π‘πππβ², 0: 50: 255)
>> π ππ‘(πππ, β²π¦π‘πππβ², 0: 2000: 15000)
π»ππ ππππ¦π πππππβ:
>> π = ππβππ π‘(β);
>> π1 = π(1: 10: 256);
>> βπππ§ = 1: 10: 256;
>> π π‘ππ(βπππ§, π1, β²ππππβ²)
>> ππ₯ππ ([0 255 0 15000])
>> π ππ‘(πππ, β²π¦π‘πππβ², 0: 50: 255)
>> π ππ‘(πππ, β²π₯π‘πππβ², 0: 2000: 15000)
>>
Hasilnya adalah:
23
>> π = ππβππ π‘(β);
>> ππππ‘(π)
>> ππ₯ππ ([0 255 0 15000])
>> π ππ‘(πππ, β²π₯π‘πππβ², 0: 50: 255)
>> π ππ‘(πππ, β²π¦π‘πππβ², 0: 2000: 15000)
>>
Hasilnya adalah:
2.4.1.1 Some Useful Plotting Function
β’ ππππ‘(βπππ§, π£, βπππππ_πππππ π‘π¦ππ_ππππππβ)
β’ πππ(βπππ§, π£, π€πππ‘β)
24
β’ π π‘ππ(βπππ§, π£, βπππππ_πππππ π‘π¦ππ_ππππππβ, βππππβ)
β’ ππ₯ππ ([βπππ§πππ βπππ§πππ₯ π£πππ‘πππ π£πππ‘πππ₯])
β’ π₯πππππ(βπ‘ππ₯π‘ π π‘ππππβ, βππππ‘π ππ§πβ, π ππ§π)
β’ π¦πππππ(βπ‘ππ₯π‘ π π‘ππππβ, βππππ‘π ππ§πβ, π ππ§π)
β’ π‘ππ₯π‘(π₯πππ, π¦πππ, βπ‘ππ₯π‘ π π‘ππππβ, βππππ‘π ππ§πβ, π ππ§π)
β’ π‘ππ‘ππ(βπ‘ππ‘πππ π‘ππππβ)
Symbol Color Symbol Line Style Symbol Marker
k Black - Solid + Plus sign
w White -- Dashed o Circle
r Red : Dotted * Asterisk
g Green -. Dash-dot . Point
b Blue none No line x Cross
c Cyan s Square
y Yellow d Diamond
m Magenta none No marker
2.4.2 Histogram Equalizati
>> π = ππππππ(β²πππππππ2011. πππβ²);
>> πππ βππ€(π);
Hasilnya adalah:
>> ππππ’ππ, ππβππ π‘(π);
25
>> π¦πππ(β²ππ’π‘πβ²);
Hasilnya adalah
>> π = βππ π‘ππ(π, 256);
β« ππππ’ππ, πππ βππ€(π);
Hasilnya adalah
>> ππππ’ππ, ππβππ π‘(π);
Hasilnya adalah
26
>> π¦πππ(β²ππ’π‘πβ²);
Hasilnya adalah
>> βππππ = ππβππ π‘(π)./ππ’πππ(π);
>> %πΆπ’πππ’πππ‘ππ£π πππ π‘ππππ’π‘πππ ππ’πππ‘πππ:
>> πππ = ππ’ππ π’π(βππππ);
>> π₯ = ππππ ππππ(0,1,256);
>> ππππ‘(π₯, πππ)
27
>> ππ₯ππ ([0 1 0 1])
>> π ππ‘(πππ, β²π¦π‘πππβ², 0: .2: 1)
>> π ππ‘(πππ, β²π₯π‘πππβ², 0: .2: 1)
>> π₯πππππ(β²πΌπππ’π‘ πππ‘πππ ππ‘π¦ π£πππ’ππ β², β²ππππ‘π ππ§πβ², 9)
>> π¦πππππ(β²ππ’π‘ππ’π‘ πππ‘πππ ππ‘π¦ π£πππ’ππ β², β²ππππ‘π ππ§πβ², 9)
>> %πππππππ¦ π‘ππ₯π‘ ππ π‘βπ ππππ¦ ππ π‘βπ ππππβ:
>> π‘ππ₯π‘(0.18,0.5, β²πππππ ππππππ‘πππ ππ’πππ‘πππβ², . . . β²ππππ‘π ππ§πβ², 9)
Hasilnya adalah
28
2.5 Spatial Filtering
Neighborhood processing consists of
Defining a center point, (x, y);
Performing an operation that involves only the pixels in a predefined
neighborhood about that center point;
Letting the result of that operation be the "response" of the process at that
point; and
Repeating the process for every point in the image. If the computations
performed on the pixels of the neighborhoods are linear, the operation is
called linear spatial filtering; otherwise it is called nonlinear spatial
filtering.
2.5.1 Linear Spatial Filtering
The mechanics of linear spatial filtering:
29
Berikut contoh penggunaan Korelasi dan Konvolusi dalam pemfilteran spasial
sebuah cittra.
Correlation
(a) 0 0 0 1 0 0 0 0 2 8 0 6 0
(b) 0 0 0 1 0 0 0 0
2 8 0 6 0
Starting position alignment
Zero padding
(c) (0 0 0 0) 0 0 0 1 0 0 0 0 (0 0 0 0)
2 8 0 6 0
(d) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
2 8 0 6 0
Position after one shift
(e) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
2 8 0 6 0
Position after four shifts
(f) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
2 8 0 6 0
Final position
Origin π π€
30
βFullβ correlation result
(g) 0 0 0 0 2 8 0 6 0 0 0 0 0 0 0 0
βSameβ correlation result
(h) 0 0 2 8 0 6 0 0
Convolution
Origin π w rotated 180Β°
(i) 0 0 0 1 0 0 0 0 0 6 0 8 2
(j) 0 0 0 1 0 0 0 0
0 6 0 8 2
(k) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 6 0 8 2
(l) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 6 0 8 2
(m) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 6 0 8 2
(n) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 6 0 8 2
(o) βfullβ convolution resul
0 0 0 2 8 0 6 0 0 0 0 0
(p) 0 0 2 8 0 6 0 0 0
31
Terlihat pada Gambar diatas baik Korelasi maupun konvulusi, barisan terakhir pada
w diletakkan tepat pada baris pertama dari f kemudian yang kosong ditambahkan
dengan angka 0, kemudian dari posisi itu w mulai digeser dan setiap pergeseran f
dikalikan dengan w sehingga akan menghasilkan barisan pada βfull correlation
resultβ, cara mengkalikannya adalah
(0 Γ 2) + (0 Γ 8 ) + (0 Γ 0) + (0 Γ 6 ) + ( 0 Γ 0) = 0
Sehingga baris pertama pada βfull correlation resultβ nilainya 0, kemudian setelah
itu w digeser lagi dan setiap pergeserannya dikalikan lagi dengan f sampai pada
ujung f , contoh pada saat w berada pada barisan kelima pada f maka akan
menghasilkan nilai =2, berikut buktinya:
(0 Γ 2) + (0 Γ 8 ) + (0 Γ 0) + (1 Γ 6) + (0 Γ 0 ) = 6
Sehingga diperoleh nilai full correlation result seperti berikut:
0 0 0 0 2 8 0 6 0 0 0 0
Karena ukuran f adalah 8 maka hasil full correlation diubah ukurannya menjadi 8,
sehingga menjadi seperti berikut ini:
0 0 2 8 0 6 0 0
Begitupun dengan Konvolusi, caranya sama dengan Korelasi hanya saja
perbedaannya adalah nilai w, nilai w pada konvulusi di putar 180o sehingga w-nya
menjadi seperti berikut:
0 6 0 8 2
Untuk mendapatkan βfull convolution resultβ, caranya sama dengan cara mencari
βfull korrelation resultβ yaitu dengan menggeser w sampai ujung f dengan disetiap
pergeseran w dikalikan dengan f .
Contoh diatas adalah penggunaan Korelasi dan Konvolution pada satu dimensi,
bagaiman jika penggunaan korelasi dan konvolusi pada dua dimensi.
32
Untuk melakukan proses pemfilteran, maka proses tersebut dimulai dari pojok kiri
atas dengan mengambil f(x, y) dengan ordo 3 x 3.langka pertama sama dengan
proses yang dilakukan pada satu imensi yaitu menempatkan barisan terakhir dari w
tepat pada barisan pertama dari f,
Origin of f(x,y)
0 0 0 0 00 0 0 0 0000
000
100
000
000
1 3 57 9 24 6 8
(a)
Padded f
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 1 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
(b)
Initial position for w
π π ππ π ππ π π
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 1 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
(c)
w(x,y)
)
33
βfullβ correlation result
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
π π ππ π ππ π π
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
(d)
βsameβ correlation result
0 0 0 0 00 8 6 4 0000
250
930
710
000
(e)
Rotated w
π π ππ π ππ π π
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 1 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
(f)
βfullβ convolution result
34
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
π π ππ π ππ π π
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
(g)
βsameβ convolution result
0 0 0 0 00 1 3 5 0000
740
960
280
000
(h)
kemudian yang kosong diisi dengan angka 0 sehingga menghasilkan sebagai
berikut
π π ππ π ππ π π
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 1 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
Kemudian w dikalikan dengan f, seperti berikut:
0 0 00 0 00 0 0
1 3 57 9 24 6 8
(1Γ0)+(3Γ0 )+(5Γ0)+(7 Γ0 )+(9Γ0)+(2Γ0 )+(4Γ0)+(6Γ0)+(8Γ0)=0
35
Maka diperoleh nilai 0, untuk mendapatkan nilai 8 pada titik (4,4), berikut
caranya:
0 0 00 0 00 0 1
1 3 57 9 24 6 8
(1Γ0)+(3Γ0 )+(5Γ0)+(7 Γ0 )+(9Γ0)+(2Γ0 )+(4Γ0)+(6Γ0)+(8Γ1)=8
Begitupun untuk mendapatkan nilai 9 pada titik (5,5)
0 0 00 1 00 0 0
1 3 57 9 24 6 8
(1Γ0)+(3Γ0 )+(5Γ0)+(7 Γ0 )+(9Γ1)+(2Γ0)+(4Γ0)+(6Γ0 )+(8Γ0)=9
Begitupun untuk mendapatkan nilai 3 pada titik (5,6)
0 1 00 0 00 0 0
1 3 57 9 24 6 8
(1Γ0)+(3Γ1)+(5Γ0 )+(7Γ0)+(9Γ0 )+(2Γ0)+(4Γ0)+(6Γ0)+(8Γ0)=3
Sehingga setelah pergeseran sampai pada ujung f maka diperoleh berikut ini:
36
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
π π ππ π ππ π π
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
Hasil diatas sama saja dengan hasil dibawah ini:
0 0 0 0 00 8 6 4 0000
250
930
710
000
Begitun dengan Konvolusi, caranya sama dengan Korelasi diatas hanya saja w-
nya yang berbeda, karena pada konvolusi sebelum dilakukan prosesnya maka
w harus di putar 180o sehingga menghasilkan w seperti berikut:
8 6 42 9 75 3 1
Dengan cara yang sama dengan korelasi maka didapatkanlah hasil konvolusi
berikut:
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
π π ππ π ππ π π
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
0 0 00 0 00 0 0
Hasil di atas sama saja dengan hasil dibawah ini:
37
0 0 0 0 00 1 3 5 0000
740
960
280
000
2.6 Transformasi Fourier Diskrit 2-Dimensi
Misalkan π(π₯, π¦) untuk π₯ = 0,1,2, β¦ , π β 1 dan π¦ = 0,1,2, β¦ , π β 1
melambangkan citra digital dari partisi matrik berukuran π Γ π. Transformasi
Fourier Diskrit (TFD) dari π(π₯, π¦) disimbolkan πΉ(π’, π£), diberikan dari persamaan:
πΉ(π’, π£) = β β π(π₯, π¦)πβπ2π(π’π₯π
+π£π¦π
)
πβ1
π¦=0
πβ1
π₯=0
Untuk π’ = 0,1,2, β¦ π β 1 πππ π£ = 0,1,2, β¦ π β 1. Fungsi eksponensial dapat
diubah menjadi fugsi cosinus dan fungsi sinus, dengan variable baru π’ dan π£ yang
menentukan nilai frekuensinya (π₯ πππ π¦π ππππ’πππβπππ ππππ’ππ). Domain
frekuensi adalah system koordinat yang dibangun oleh πΉ(π’, π£) dimana π’ dan π£
sebagai variable (frekuensi).
Inverse dari transformasi Fourier Diskrit (IDFF) adalah
π(π₯, π¦) =1
ππβ β πΉ(π’, π£)ππ2π(
π’π₯π
+π£π¦π
)
πβ1
π¦=0
πβ1
π₯=0
Dimana π₯ = 0,1,2, β¦ π β 1 dan π¦ = 0,1,2, β¦ , π β 1. π(π₯, π¦) dapat diperoleh dari
IDFF. Nilai dari πΉ(π’, π£) dalam persamaan ini biasa disebut sebagai koefisien
Fourier dari ekspansi.
Nilai dari ransformasi di titik asal βdariβ domain frekuensi (contoh F(0,0)
disebut component dc dari TRansformasi Fourier, dimana dc menyatakan direct
current.
Meskipun jika π(π₯, π¦) adalah fungsi real, secara umum transformasinya
adalah kompleks. Metode dasar untuk menganalisis transformasi visualnya adalah
38
menghitung nilai spektrumnya (Gelombang dari fungsi πΉ(π’, π£), yang merupakan
fungsi bilangan real) dan menampilkan dalam bentuk gambar.
Misalkan π (π’, π£) dan πΌ(π’, π£) melambangkan komponen real dan imajiner dari
πΉ(π’, π£), Spektrum Fourier didefinisikan sebagai:
|πΉ(π’, π£)| = [π 2(π’, π£) + πΌ2(π’, π£)]12
Nilai sudut fase dari transformasi didefinsikan sebagai
π(π’, π£) = arctan [πΌ(π’, π£)
π (π’, π£)]
2.7 Menghitung dan Menvisualisasikan 2-D DFT dalam MATLAB
DFT dan inversnya diperoleh dengan menggunakan algoritma fast Fourier
transform (FFT). FFT dari matriks gambar π yang diperoleh menggunakan fungsi
πππ‘2, yang memiliki syntax:
πΉ = πππ‘2(π)
π = ππππππ(β²π‘π’πππ 4. πππβ²);
ππππ’ππ, πππ βππ€(π)
Hasilnya adalah
Gambar 1. Citra asli
39
>> πΉ = πππ‘2(π);
>> ππππ’ππ, πππ βππ€(πΉ);
Hasilnya adalah
Gambar 2. Hasil transformasi dengan FFT
Fungsi ini menghasilkan matriks baru yang juga memiliki ukuran π Γ π.
Jika transformasi Fourier digunakan untuk filtering. Syntaksnya berubah menjadi
πΉ = πππ‘2(π, π, π)
Dengan syntax diatas akan menghasilkan hasil matriks transformasi berukuran π Γ
π
>> πΉ = πππ‘2(π, 128,128);
>> ππππ’ππ, πππ βππ€(πΉ);
Hasilnya adalah
40
Gambar3 fft dengan dimensi filtering
Spetrum Fourier diperoleh dengan menggunakanfungsi abs:
π = πππ (πΉ)
Yang menghitung nilai magnitude (akar kuadrat dari penjumlahan kuadrat dari
bagian imajiner dan bagian real) dari setiap elemen dari array.
>> π = πππ (πΉ);
>> ππππ’ππ, πππ βππ€(π)
Gambar 4 Visualisasi Spektrum Fourier
Fungsi πππ‘π βπππ‘, dapat digunakan untuk memindahkan titik asal dari transformasi
ke tengah dari segiempat frekuensi, syntaksnya adalah
πΉπ = πππ‘π βπππ‘(πΉ)
Dimana F adalah hasil transformasi yang dihitung dengan menggunakan πππ‘2 dan
πΉπ adalah transformasi yang focus ditengah. Fungsi πππ‘π βπππ‘ dioperasikan dengan
mengganti kuadran dari F. contoh, jika π = [2 8; 0 6], maka πππ‘π βπππ‘(π) =
[6 0; 8 2].
41
>> πΉ = πππ‘2(π, 128,128);
>> ππππ’ππ, πππ βππ€(πΉ);
Hasilnya adalah:
Gambar 6a πππ‘ ππππ π
>> πΉπ = πππ‘π βπππ‘(πΉ);
>> ππππ’ππ, πππ βππ€(πΉπ);
Hasilnya adalah
Gambar 6b. Menggunakan πππ‘π βπππ‘
42
Interval dari nilai spectrum ini sangat besar yaitu (0 β 420.495) dibandingkan
dengan 8 bit sehingga nilai terang mendominasi hasilnya. Kesulitan ini dapat
diperbaiki dengan menggunakan transformasi log.
>> π2 = πππ(1 + πΉπ);
>> ππππ’ππ, πππ βππ€(π2);
Hasilnya adalah
Gambar 8. Hasil transformasi dengan fungsi log biasa
>> π2 = πππ(1 + πππ (πΉπ));
>> ππππ’ππ, πππ βππ€(π2);
Hasilnya adalah
Gambar 9. Hasil transformasi dengan fungsi log dengan fungsi abs
Fungsi ππππ‘π βπππ‘, dapat digunakan untuk membalikkan Fc(mengembalikan ke
gambar semula), Syntaksnya adalah:
>> πΉ = ππππ‘π βπππ‘(πΉπ)
>> πΉ = ππππ‘π βπππ‘(πΉπ);
43
>> ππππ’ππ, πππ βππ€(πΉ);
Hasilnya adalah
Gambar 10 βππ ππ ππππ‘π βπππ‘
Fungsi ini juga dapat digunakan untuk mengkoversi sebuah fungsi awalnya
berpsat disegi empat ke fungsi yang berpusat dibagian atas sebelah kiri segiempat.
Untuk menghitung nilai sudut fase. Karena komponen bagian real dan
imajiner dari transformasi Fourier 2-D, π (π’, π£)πππ πΌ(π’, π£), array dari ukuran yang
sama sebagai πΉ(π’, π£). Karena elemen dari R dan I saling bebas dan dapat bernilai
positif maupun negative, kita harus menghitung arctan dalaminterval [βπ, π]
(fungsi dengan sifat ini disebut arctan empat kuadran).
Fungsi MATLAB atan2, dapat menghitung perhitungan ini. Syntaksnya adalah:
β« πβπ = ππ‘ππ2(β1,1)
πβπ =
β0.7854
Untuk membuat fungsi phi digunakan syntax:
>> πΉ = ππππ‘π βπππ‘(πΉπ);
>> πβπ = ππ‘ππ2(ππππ(πΉ), ππππ(πΉ));
44
>> ππππ’ππ, πππ βππ€(πβπ)
Hasilnya adalah
Gambar 11 Fungsi phi
Selain menginput langsung bagian real dan bagian imajiner dari array F, dapat juga
diperoleh dengan menggunakan fungsi sudut secara langsung:
> > πβπ = πππππ(πΉ);
> > πΉπππ’ππ, πππ βππ€(πβπ)
Gambar 12. Fungsi sudut
Hasilnya juga sama, selain itu dapat diperoleh DFT dengan menggunakan ekspresi
>> π = πππ (πΉ);
>> πΉ = π.β ππ₯π(π β πβπ);
45
>> ππππ’ππ, πππ βππ€(π);
>> ππππ’ππ, πππ βππ€(πΉ)
Hasilnya adalah
Gambar 13, hasil DFT
Akhirnya, diperoleh invers dari transformasi Fourier dapat dihitung dengan
menggunakan fungsi ππππ‘2, yang memiliki syntaks dasar:
π = ππππ‘2(πΉ)
Dimana F adalah transformasi Fourier dan f adalah gambar asli. Karena fft2
mengkonversi gambar input ke kelas double tanpa menggunakaaan penskalaan.
Hasil dari operasi ππππ‘2(πΉ) akan menghasilkan matriks baru berukuran sama
dengan f dengan nilai yang berada di interval [0255]. Tetapi menggunakan kelas
double.
>> πΉ = πππ‘2(π);
>> π = ππππ‘2(πΉ);
>> ππππ’ππ, πππ βππ€(π)
Hasilnya adalah
46
Gambar14 Hasil invers dari πππ‘2 double
Jika gambar input F adalah real, invers dari input ini adalah real. Tetapi
kadang ouput dari ifft2 kadang memiliki komponen imajiner yang kecil hasil dari
pembulatan saat perhitungan, untuk menghasilkan bagian realnya saja, digunakan
syntax.
>> π = ππππ(ππππ‘2(πΉ));
>> ππππ’ππ, πππ βππ€(π)
>>
Hasilnya adalah
47
Gambar15. Hasil real dari ππππ‘2
2.8 Filtering In The Frequency Domain
>> π = ππππππ(β²π‘π’πππ 4. πππβ²);
>> ππππ’ππ, πππ βππ€(π);
Hasilnya adalah:
>> πΉ = πππ‘2(π);
>> ππππ’ππ, πππ βππ€(πΉ);
48
Hasilnya adalah:
[π, π] = π ππ§π(π);
>> π ππ = 10;
>> π» = ππ ππππππ(β²πππ’π π πππβ², [π, π], π ππ);
>> πΊ = ππππππ‘ππ(πΉ, π», β²π πππβ²);
>> ππππ’ππ, πππ βππ€(πΊ, []);
Hasilnya adalah:
>> β = ππππ(ππππ‘2(π»));
49
>> ππππ’ππ, πππ βππ€(β);
Hasilnya adalah:
Untuk N=10 dan M=10 maka
>> π = ππππππ(β²π‘π’πππ 4. πππβ²);
>> πΉ = πππ‘2(π);
>> π ππ = 10;
>> π» = ππ ππππππ(β²πππ’π π πππβ², [10,10], π ππ);
>> πΊ = ππππππ‘ππ(πΉ, π», β²π πππβ²);
>> ππππ’ππ, πππ βππ€(πΊ);
Hasilnya adalah:
>> β = ππππ(ππππ‘2(π»));
50
>> ππππ’ππ, πππ βππ€(β);
>> ππππ’ππ, πππ βππ€(β[]);
π»ππ ππππ¦π πππππβ:
Recommended