pengolahan citra digital dengan menggunakan matlab

51
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

Upload: simesterious-themaster

Post on 09-Aug-2015

978 views

Category:

Education


4 download

TRANSCRIPT

Page 1: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 2: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 3: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 4: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 5: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 6: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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.

Page 7: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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.

Page 8: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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:

>>𝑃 = π‘–π‘šπ‘Ÿπ‘’π‘Žπ‘‘(β€˜π‘π‘œπ‘™π‘–π‘›π‘œπ‘š. 𝑗𝑝𝑔’)

Page 9: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 10: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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:

Page 11: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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.

Page 12: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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);

>> π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝑏𝑙𝑒𝑒);

>> 𝑑𝑖𝑑𝑙𝑒(′𝐼𝑛𝑖 πΆπ‘–π‘‘π‘Ÿπ‘Ž π΅π‘–π‘Ÿπ‘’β€²);

>>

Page 13: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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);

>> π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝑅𝐺𝐡);

Page 14: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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 βˆ— 𝑏𝑙𝑒𝑒;

Page 15: Pengolahan Citra Digital Dengan Menggunakan MATLAB

14

>> π‘ π‘’π‘π‘π‘™π‘œπ‘‘(2,2,1);

>> π‘–π‘šπ‘ β„Žπ‘œπ‘€(π‘Ÿπ‘’π‘‘)

>> 𝑑𝑖𝑑𝑙𝑒(β€²πΆπ‘–π‘‘π‘Ÿπ‘Ž π‘€π‘’π‘Ÿπ‘Žβ„Žβ€²);

>> π‘ π‘’π‘π‘π‘™π‘œπ‘‘(2,2,2);

>> π‘–π‘šπ‘ β„Žπ‘œπ‘€(π‘”π‘Ÿπ‘’π‘’π‘›);

>> 𝑑𝑖𝑑𝑙𝑒(β€²πΆπ‘–π‘‘π‘Ÿπ‘Ž π»π‘–π‘—π‘Žπ‘’β€²);

>> π‘ π‘’π‘π‘π‘™π‘œπ‘‘(2,2,3);

>> π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝑏𝑙𝑒𝑒)

>> 𝑑𝑖𝑑𝑙𝑒(β€²πΆπ‘–π‘‘π‘Ÿπ‘Ž π΅π‘–π‘Ÿπ‘’β€²);

>> π‘ π‘’π‘π‘π‘™π‘œπ‘‘(2,2,4);

>> π‘–π‘šπ‘ β„Žπ‘œπ‘€(π‘”π‘Ÿπ‘Žπ‘¦2)

>> 𝑑𝑖𝑑𝑙𝑒(β€²πΆπ‘–π‘‘π‘Ÿπ‘Ž π‘”π‘Ÿπ‘Žπ‘¦π‘ π‘π‘Žπ‘™π‘’β€²);

>>

Hasilnya:

Gambar 5: hasil dari pemisahan RGB dan Grayscale

Page 16: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 17: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 18: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 19: Pengolahan Citra Digital Dengan Menggunakan MATLAB

18

Gambar 10: Indeks Citra pada x=17 dan y=22

Gambar 11: Hasil nilai Matrik pada Citra Hitam Putih

Page 20: Pengolahan Citra Digital Dengan Menggunakan MATLAB

19

2.3 Function imadjust

>> 𝑔 = π‘–π‘šπ‘Žπ‘‘π‘—π‘’π‘ π‘‘(𝑓. [π‘™π‘œπ‘€_𝑖𝑛 β„Žπ‘–π‘”β„Ž_𝑖𝑛], . . . [π‘™π‘œπ‘€_π‘œπ‘’π‘‘ β„Žπ‘–π‘”β„Ž_π‘œπ‘’π‘‘], π‘”π‘Žπ‘šπ‘šπ‘Ž)

>> 𝑓 = π‘–π‘šπ‘Ÿπ‘’π‘Žπ‘‘(β€²π‘π‘œπ‘™π‘–π‘›π‘œπ‘š2011. 𝑗𝑝𝑔′);

>> π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝑓);

Hasilnya adalah:

>> 𝑔1 = π‘–π‘šπ‘Žπ‘‘π‘—π‘’π‘ π‘‘(𝑓, [0 1], [1 0]);

>> π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝑔1);

Hasilnya adalah:

Page 21: Pengolahan Citra Digital Dengan Menggunakan MATLAB

20

>> 𝑔2 = π‘–π‘šπ‘Žπ‘‘π‘—π‘’π‘ π‘‘(𝑓, [0.5 0.75], [0 1]);

>> π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝑔2);

Hasilnya adalah:

>> 𝑔3 = π‘–π‘šπ‘Žπ‘‘π‘—π‘’π‘ π‘‘(𝑓, [], [],2);

>> π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝑔3);

Hasilnya adalah:

Page 22: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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)

Page 23: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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:

Page 24: Pengolahan Citra Digital Dengan Menggunakan MATLAB

23

>> 𝑔 = π‘–π‘šβ„Žπ‘–π‘ π‘‘(β„Ž);

>> π‘π‘™π‘œπ‘‘(𝑔)

>> π‘Žπ‘₯𝑖𝑠([0 255 0 15000])

>> 𝑠𝑒𝑑(π‘”π‘π‘Ž, β€²π‘₯π‘‘π‘–π‘π‘˜β€², 0: 50: 255)

>> 𝑠𝑒𝑑(π‘”π‘π‘Ž, β€²π‘¦π‘‘π‘–π‘π‘˜β€², 0: 2000: 15000)

>>

Hasilnya adalah:

2.4.1.1 Some Useful Plotting Function

β€’ π‘π‘™π‘œπ‘‘(β„Žπ‘œπ‘Ÿπ‘§, 𝑣, β€™π‘π‘œπ‘™π‘œπ‘Ÿ_𝑙𝑖𝑛𝑒𝑠𝑑𝑦𝑙𝑒_π‘šπ‘Žπ‘Ÿπ‘˜π‘’π‘Ÿβ€™)

β€’ π‘π‘Žπ‘Ÿ(β„Žπ‘œπ‘Ÿπ‘§, 𝑣, π‘€π‘–π‘‘π‘‘β„Ž)

Page 25: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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:

>> π‘“π‘–π‘”π‘’π‘Ÿπ‘’, π‘–π‘šβ„Žπ‘–π‘ π‘‘(𝑓);

Page 26: Pengolahan Citra Digital Dengan Menggunakan MATLAB

25

>> π‘¦π‘™π‘–π‘š(β€²π‘Žπ‘’π‘‘π‘œβ€²);

Hasilnya adalah

>> 𝑔 = β„Žπ‘–π‘ π‘‘π‘’π‘ž(𝑓, 256);

≫ π‘“π‘–π‘”π‘’π‘Ÿπ‘’, π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝑔);

Hasilnya adalah

>> π‘“π‘–π‘”π‘’π‘Ÿπ‘’, π‘–π‘šβ„Žπ‘–π‘ π‘‘(𝑔);

Hasilnya adalah

Page 27: Pengolahan Citra Digital Dengan Menggunakan MATLAB

26

>> π‘¦π‘™π‘–π‘š(β€²π‘Žπ‘’π‘‘π‘œβ€²);

Hasilnya adalah

>> β„Žπ‘›π‘œπ‘Ÿπ‘š = π‘–π‘šβ„Žπ‘–π‘ π‘‘(𝑓)./π‘›π‘’π‘šπ‘’π‘™(𝑓);

>> %πΆπ‘’π‘šπ‘šπ‘’π‘™π‘Žπ‘‘π‘–π‘£π‘’ π‘‘π‘–π‘ π‘‘π‘Ÿπ‘–π‘π‘’π‘‘π‘–π‘œπ‘› π‘“π‘’π‘›π‘π‘‘π‘–π‘œπ‘›:

>> 𝑐𝑑𝑓 = π‘π‘’π‘šπ‘ π‘’π‘š(β„Žπ‘›π‘œπ‘Ÿπ‘š);

>> π‘₯ = π‘™π‘–π‘›π‘ π‘π‘Žπ‘π‘’(0,1,256);

>> π‘π‘™π‘œπ‘‘(π‘₯, 𝑐𝑑𝑓)

Page 28: Pengolahan Citra Digital Dengan Menggunakan MATLAB

27

>> π‘Žπ‘₯𝑖𝑠([0 1 0 1])

>> 𝑠𝑒𝑑(π‘”π‘π‘Ž, β€²π‘¦π‘‘π‘–π‘π‘˜β€², 0: .2: 1)

>> 𝑠𝑒𝑑(π‘”π‘π‘Ž, β€²π‘₯π‘‘π‘–π‘π‘˜β€², 0: .2: 1)

>> π‘₯π‘™π‘Žπ‘π‘’π‘™(′𝐼𝑛𝑝𝑒𝑑 𝑖𝑛𝑑𝑒𝑛𝑠𝑖𝑑𝑦 π‘£π‘Žπ‘™π‘’π‘’π‘ β€², β€²π‘“π‘œπ‘›π‘‘π‘ π‘–π‘§π‘’β€², 9)

>> π‘¦π‘™π‘Žπ‘π‘’π‘™(′𝑂𝑒𝑑𝑝𝑒𝑑 𝑖𝑛𝑑𝑒𝑛𝑠𝑖𝑑𝑦 π‘£π‘Žπ‘™π‘’π‘’π‘ β€², β€²π‘“π‘œπ‘›π‘‘π‘ π‘–π‘§π‘’β€², 9)

>> %𝑆𝑝𝑒𝑐𝑖𝑓𝑦 𝑑𝑒π‘₯𝑑 𝑖𝑛 π‘‘β„Žπ‘’ π‘π‘œπ‘‘π‘¦ π‘œπ‘“ π‘‘β„Žπ‘’ π‘”π‘Ÿπ‘Žπ‘β„Ž:

>> 𝑑𝑒π‘₯𝑑(0.18,0.5, β€²π‘‡π‘Ÿπ‘Žπ‘›π‘ π‘“π‘œπ‘Ÿπ‘šπ‘Žπ‘‘π‘–π‘œπ‘› π‘“π‘’π‘›π‘π‘‘π‘–π‘œπ‘›β€², . . . β€²π‘“π‘œπ‘›π‘‘π‘ π‘–π‘§π‘’β€², 9)

Hasilnya adalah

Page 29: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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:

Page 30: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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 𝑓 𝑀

Page 31: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 32: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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.

Page 33: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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)

)

Page 34: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 35: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 36: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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:

Page 37: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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:

Page 38: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 39: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 40: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 41: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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].

Page 42: Pengolahan Citra Digital Dengan Menggunakan MATLAB

41

>> 𝐹 = 𝑓𝑓𝑑2(𝑓, 128,128);

>> π‘“π‘–π‘”π‘’π‘Ÿπ‘’, π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝐹);

Hasilnya adalah:

Gambar 6a 𝑓𝑓𝑑 π‘π‘–π‘Žπ‘ π‘Ž

>> 𝐹𝑐 = π‘“π‘“π‘‘π‘ β„Žπ‘–π‘“π‘‘(𝐹);

>> π‘“π‘–π‘”π‘’π‘Ÿπ‘’, π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝐹𝑐);

Hasilnya adalah

Gambar 6b. Menggunakan π‘“π‘“π‘‘π‘ β„Žπ‘–π‘“π‘‘

Page 43: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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:

>> 𝐹 = π‘–π‘“π‘“π‘‘π‘ β„Žπ‘–π‘“π‘‘(𝐹𝑐)

>> 𝐹 = π‘–π‘“π‘“π‘‘π‘ β„Žπ‘–π‘“π‘‘(𝐹𝑐);

Page 44: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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(π‘–π‘šπ‘Žπ‘”(𝐹), π‘Ÿπ‘’π‘Žπ‘™(𝐹));

Page 45: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

>> 𝑆 = π‘Žπ‘π‘ (𝐹);

>> 𝐹 = 𝑆.βˆ— 𝑒π‘₯𝑝(𝑖 βˆ— π‘β„Žπ‘–);

Page 46: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 47: Pengolahan Citra Digital Dengan Menggunakan MATLAB

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

Page 48: Pengolahan Citra Digital Dengan Menggunakan MATLAB

47

Gambar15. Hasil real dari 𝑖𝑓𝑓𝑑2

2.8 Filtering In The Frequency Domain

>> 𝑓 = π‘–π‘šπ‘Ÿπ‘’π‘Žπ‘‘(β€²π‘‘π‘’π‘”π‘Žπ‘ 4. 𝑗𝑝𝑔′);

>> π‘“π‘–π‘”π‘’π‘Ÿπ‘’, π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝑓);

Hasilnya adalah:

>> 𝐹 = 𝑓𝑓𝑑2(𝑓);

>> π‘“π‘–π‘”π‘’π‘Ÿπ‘’, π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝐹);

Page 49: Pengolahan Citra Digital Dengan Menggunakan MATLAB

48

Hasilnya adalah:

[𝑀, 𝑁] = 𝑠𝑖𝑧𝑒(𝑓);

>> 𝑠𝑖𝑔 = 10;

>> 𝐻 = π‘“π‘ π‘π‘’π‘π‘–π‘Žπ‘™(β€²π‘”π‘Žπ‘’π‘ π‘ π‘–π‘Žπ‘›β€², [𝑀, 𝑁], 𝑠𝑖𝑔);

>> 𝐺 = π‘–π‘šπ‘“π‘–π‘™π‘‘π‘’π‘Ÿ(𝐹, 𝐻, β€²π‘ π‘Žπ‘šπ‘’β€²);

>> π‘“π‘–π‘”π‘’π‘Ÿπ‘’, π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝐺, []);

Hasilnya adalah:

>> β„Ž = π‘Ÿπ‘’π‘Žπ‘™(𝑖𝑓𝑓𝑑2(𝐻));

Page 50: Pengolahan Citra Digital Dengan Menggunakan MATLAB

49

>> π‘“π‘–π‘”π‘’π‘Ÿπ‘’, π‘–π‘šπ‘ β„Žπ‘œπ‘€(β„Ž);

Hasilnya adalah:

Untuk N=10 dan M=10 maka

>> 𝑓 = π‘–π‘šπ‘Ÿπ‘’π‘Žπ‘‘(β€²π‘‘π‘’π‘”π‘Žπ‘ 4. 𝑗𝑝𝑔′);

>> 𝐹 = 𝑓𝑓𝑑2(𝑓);

>> 𝑠𝑖𝑔 = 10;

>> 𝐻 = π‘“π‘ π‘π‘’π‘π‘–π‘Žπ‘™(β€²π‘”π‘Žπ‘’π‘ π‘ π‘–π‘Žπ‘›β€², [10,10], 𝑠𝑖𝑔);

>> 𝐺 = π‘–π‘šπ‘“π‘–π‘™π‘‘π‘’π‘Ÿ(𝐹, 𝐻, β€²π‘ π‘Žπ‘šπ‘’β€²);

>> π‘“π‘–π‘”π‘’π‘Ÿπ‘’, π‘–π‘šπ‘ β„Žπ‘œπ‘€(𝐺);

Hasilnya adalah:

>> β„Ž = π‘Ÿπ‘’π‘Žπ‘™(𝑖𝑓𝑓𝑑2(𝐻));

Page 51: Pengolahan Citra Digital Dengan Menggunakan MATLAB

50

>> π‘“π‘–π‘”π‘’π‘Ÿπ‘’, π‘–π‘šπ‘ β„Žπ‘œπ‘€(β„Ž);

>> π‘“π‘–π‘”π‘’π‘Ÿπ‘’, π‘–π‘šπ‘ β„Žπ‘œπ‘€(β„Ž[]);

π»π‘Žπ‘ π‘–π‘™π‘›π‘¦π‘Ž π‘Žπ‘‘π‘Žπ‘™π‘Žβ„Ž: