modul pengolahan citra full bab

229
 Bab 1_Pengantar Pengolahan Citra 1 Bab 1 Pengantar Pengolahan Citra ata atau informasi tidak hanya disajikan dalam bentuk teks, tetapi juga dapat berupa gambar, audio (bunyi, suara, musik), dan video. Keempat macam data atau informasi ini sering disebut multimedia. Era teknologi informasi saat ini tidak dapat dipisahkan dari multimedia. Situs web ( website) di Internet dibuat semenarik mungkin dengan menyertakan visualisasi berupa gambar atau video yang dapat diputar. Beberapa waktu lalu istilah SMS ( Short  Message Service) begitu populer bagi pengguna telepon genggam ( handphone atau HP). Tetapi, saat ini orang tidak hanya dapat mengirim pesan dalam bentuk teks, tetapi juga dapat mengirim pesan berupa gambar maupun video, yang dikenal dengan layanan MMS (  Multimedia Mess age Service). Citra (image) 1  –istilah lain untuk gambar– sebagai salah satu komponen multimedia memegang peranan sangat penting sebagai bentuk informasi visual. Citra mempunyai karakteristik yang tidak dimiliki oleh data teks, yaitu citra kaya dengan informasi. Ada sebuah peribahasa yang berbunyi “sebuah gambar  bermakna lebih dari seribu kata” ( a picture is more than a thousand words ). Maksudnya tentu sebuah gambar dapat memberikan informasi yang lebih banyak daripada informasi tersebut disajikan dalam bentuk kata-kata (tekstual).  Bab pertama ini berisi pembahasan mengenai citra dan pengolahannya. Selain itu, di dalam bab ini dipaparkan pula bidang-bidang yang berkaitan dengan pengolahan citra, seperti grafika komputer dan pengenalan pola. 1  Di dalam buku ini, ka ta “gambar” dan “c itra” digunakan seca ra bergantian, namun keduanya mengacu pada objek yang sama. Kata “citra” akan lebih banyak digunakan pada materi yang berkaitan dengan konseptual dan teknis, sementara kata “gambar” digunakan jika mengacu pada objek yang dibicarakan dalam kehidupan sehari-hari. D

Upload: agus-arya-anggaedinata

Post on 27-Feb-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 1/229

 

Bab 1_Pengantar Pengolahan Citra 1 

Bab 1

Pengantar Pengolahan Citra

ata atau informasi tidak hanya disajikan dalam bentuk teks, tetapi juga

dapat berupa gambar, audio (bunyi, suara, musik), dan video. Keempat

macam data atau informasi ini sering disebut multimedia. Era teknologi

informasi saat ini tidak dapat dipisahkan dari multimedia. Situs web (website) di

Internet dibuat semenarik mungkin dengan menyertakan visualisasi berupa

gambar atau video yang dapat diputar. Beberapa waktu lalu istilah SMS (Short

 Message Service) begitu populer bagi pengguna telepon genggam (handphone 

atau HP). Tetapi, saat ini orang tidak hanya dapat mengirim pesan dalam bentuk

teks, tetapi juga dapat mengirim pesan berupa gambar maupun video, yang

dikenal dengan layanan MMS ( Multimedia Message Service).

Citra (image)1  –istilah lain untuk gambar– sebagai salah satu komponenmultimedia memegang peranan sangat penting sebagai bentuk informasi visual.

Citra mempunyai karakteristik yang tidak dimiliki oleh data teks, yaitu citra kaya

dengan informasi. Ada sebuah peribahasa yang berbunyi “sebuah gambar

 bermakna lebih dari seribu kata” (a picture is more than a thousand words).

Maksudnya tentu sebuah gambar dapat memberikan informasi yang lebih banyak

daripada informasi tersebut disajikan dalam bentuk kata-kata (tekstual). 

Bab pertama ini berisi pembahasan mengenai citra dan pengolahannya. Selain itu,

di dalam bab ini dipaparkan pula bidang-bidang yang berkaitan dengan pengolahan

citra, seperti grafika komputer dan pengenalan pola.

1  Di dalam buku ini, kata “gambar” dan “citra” digunakan secara bergantian, namun keduanya

mengacu pada objek yang sama. Kata “citra” akan lebih banyak digunakan pada materi yangberkaitan dengan konseptual dan teknis, sementara kata “gambar” digunakan jika mengacu padaobjek yang dibicarakan dalam kehidupan sehari-hari.

D

Page 2: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 2/229

 

2 Pengolahan Citra Digital

1.1 Citra

Secara harafiah, citra (image) adalah gambar pada bidang dwimatra (dua

dimensi). Gambar 1.1 adalah citra seorang gadis model yang bernama Lena, dan

gambar di sebelah kanannya adalah citra kapal di sebuah pelabuhan. Ditinjau dari

sudut pandang matematis, citra merupakan fungsi menerus (continue) dariintensitas cahaya pada bidang dwimatra. Sumber cahaya menerangi objek, objek

memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini

ditangkap oleh oleh alat-alat optik, misalnya mata pada manusia, kamera,

 pemindai ( scanner ), dan sebagainya, sehingga bayangan objek yang disebut citra

tersebut terekam.

Citra sebagai keluaran dari suatu sistem perekaman data dapat bersifat [MUR92]:

1.  optik berupa foto,

2.  analog berupa sinyal video seperti gambar pada monitor televisi,

3.  digital yang dapat langsung disimpan pada suatu pita magnetik.

Citra yang dimaksudkan di dalam keseluruhan isi buku ini adalah “citra diam”( still images). Citra diam adalah citra tunggal yang tidak bergerak. Gambar 1.1

adalah dua buah citra diam. Untuk selanjutnya, citra diam kita sebut citra saja.

(a) Lena (b) Kapal

Gambar 1.1 Citra Lena dan citra kapal

Citra bergerak (moving images) adalah rangkaian citra diam yang ditampilkan

secara beruntun (sekuensial) sehingga memberi kesan pada mata kita sebagaigambar yang bergerak. Setiap citra di dalam rangkaian itu disebut  frame.

Gambar-gambar yang tampak pada film layar lebar atau televisi pada hakikatnya

terdiri atas ratusan sampai ribuan frame.

Page 3: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 3/229

 

Bab 1_Pengantar Pengolahan Citra 3 

1.2 Definisi Pengolahan Citra

Meskipun sebuah citra kaya informasi, namun seringkali citra yang kita miliki

mengalami penurunan mutu (degradasi), misalnya mengandung cacat atau derau

(noise), warnanya terlalu kontras, kurang tajam, kabur (blurring ), dan sebagainya.

Tentu saja citra semacam ini menjadi lebih sulit diinterpretasi karena informasiyang disampaikan oleh citra tersebut menjadi berkurang.

Agar citra yang mengalami gangguan mudah diinterpretasi (baik oleh manusia

maupun mesin), maka citra tersebut perlu dimanipulasi menjadi citra lain yang

kualitasnya lebih baik. Bidang studi yang menyangkut hal ini adalah pengolahan

citra (image processing ).

Pengolahan citra adalah pemrosesan citra, khususnya dengan menggunakan

komputer, menjadi citra yang kualitasnya lebih baik. Sebagai contoh, citra burung

nuri pada Gambar 1.2 (a) tampak agak gelap, lalu dengan operasi pengolahan

citra kontrasnya diperbaiki sehingga menjadi lebih terang dan tajam (b).

Umumnya, operasi-operasi pada pengolahan citra diterapkan pada citra bila

[JAI89]:

1.   perbaikan atau memodifikasi citra perlu dilakukan untuk meningkatkan

kualitas penampakan atau untuk menonjolkan beberapa aspek informasi yang

terkandung di dalam citra,

2.  elemen di dalam citra perlu dikelompokkan, dicocokkan, atau diukur,

3.  sebagian citra perlu digabung dengan bagian citra yang lain.

(a) (b)

Gambar 1.2. (a) Citra burung nuri yang agak gelap, (b) Citra burung yang telah diperbaiki kontrasnyasehingga terlihat jelas dan tajam

Page 4: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 4/229

 

4 Pengolahan Citra Digital

Di dalam bidang komputer, sebenarnya ada tiga bidang studi yang berkaitan

dengan data citra, namun tujuan ketiganya berbeda, yaitu:

1.  Grafika Komputer (computer graphics).

2.  Pengolahan Citra (image processing ).

3.  Pengenalan Pola ( pattern recognition/image interpretation).

Hubungan antara ketiga bidang (grafika komputer, pengolahan citra, pengenalan

 pola) ditunjukkan pada Gambar 1.3.

citra citra

deskripsi deskripsi

Pengolahan Citra

Pengenalan

 Pola

Grafika

Komputer 

 

Gambar 1.3. Tiga bidang studi yang berkaitan dengan citra

Grafika Komputer bertujuan menghasilkan citra (lebih tepat disebut grafik atau

 picture) dengan primitif-primitif geometri seperti garis, lingkaran, dan

sebagainya. Primitif-primitif geometri tersebut memerlukan data deskriptif untuk

melukis elemen-elemen gambar. Contoh data deskriptif adalah koordinat titik,

 panjang garis, jari-jari lingkaran, tebal garis, warna, dan sebagainya. Grafika

komputer memainkan peranan penting dalam visualisasi dan virtual reality.

Grafika

Komputer 

data

deskriptif   citra

 

Contoh grafika komputer misalnya menggambar sebuah ‘rumah’ yang dibentuk

oleh garis-garis lurus, dengan data masukan berupa koordinat awal dan koordinat

ujung garis (Gambar 1.4).

Page 5: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 5/229

 

Bab 1_Pengantar Pengolahan Citra 5 

 Program:

Line(0, 0, 0, 40)

Line(0, 40, 60, 60)

Line(40, 60, 80, 40)

Line(0, 40, 80, 40)

Line(80, 40, 80, 0)

Line(80, 0, 0, 0)

Line(20, 0, 25, 25)

Line(25, 25, 35, 25)

Line(35, 25, 35, 0) 

(a)

Gambar hasil:

(b)

Gambar 1.4. (a) Program Grafika Komputer untuk membuat gambar ‘rumah (b)

Pengolahan Citra bertujuan memperbaiki kualitas citra agar mudah diinterpretasi

oleh manusia atau mesin (dalam hal ini komputer). Teknik-teknik pengolahan

citra mentransformasikan citra menjadi citra lain. Jadi, masukannya adalah citradan keluarannya juga citra, namun citra keluaran mempunyai kualitas lebih baik

daripada citra masukan. Termasuk ke dalam bidang ini juga adalah pemampatan

citra (image compression).

Pengolahan

Citracitra citra

 

Pengubahan kontras citra seperti pada Gambar 1.2 adalah contoh operasi

 pengolahan citra. Contoh operasi pengolahan citra lainnya adalah penghilangan

derau (noise) pada citra Lena (Gambar 1.4). Citra Lena yang di sebelah kiri

mengandung derau berupa bintik-bintik putih (derau). Dengan operasi penapisan

( filtering ), yang akan dijelaskan di dalam Bab 7, derau pada citra masukan ini

dapat dikurangi sehingga dihasilkan citra Lena yang kualitasnya lebih baik.

Page 6: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 6/229

 

6 Pengolahan Citra Digital

(a) (b)

Gambar 1.4. (a) Citra Lena yang mengandung derau, (b) hasil dari operasi penapisan derau.

Pengenalan Pola mengelompokkan data numerik dan simbolik (termasuk citra)

secara otomatis oleh mesin (dalam hal ini komputer). Tujuan pengelompokan

adalah untuk mengenali suatu objek di dalam citra. Manusia bisa mengenali objek

yang dilihatnya karena otak manusia telah belajar mengklasifikasi objek-objek di

alam sehingga mampu membedakan suatu objek dengan objek lainnya.

Kemampuan sistem visual manusia inilah yang dicoba ditiru oleh mesin.

Komputer menerima masukan berupa citra objek yang akan diidentifikasi,

memproses citra tersebut, dan memberikan keluaran berupa deskripsi objek di

dalam citra.

Pengenalan

Polacitra

  deskripsi

objek

 

Contoh pengenalan pola misalnya citra pada Gambar 1.5 adalah tulisan tangan

yang digunakan sebagai data masukan untuk mengenali karakter ‘ A’. Dengan

menggunakan suatu algoritma pengenalan pola, diharapkan komputer dapat

mengenali bahwa karakter tersebut adalah ‘ A’.

Page 7: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 7/229

 

Bab 1_Pengantar Pengolahan Citra 7 

Gambar 1.5. Citra karakter ‘A’ yang digunakan sebagai masukan untuk pengenalan huruf.

1.3 Computer Vision dan Hubungannya denganPengolahan Citra

Terminologi lain yang berkaitan erat dengan pengolahan citra adalah computervision  atau machine vision. Pada hakikatnya, computer vision  mencoba meniru

cara kerja sistem visual manusia (human vision).  Human vision  sesungguhnya

sangat kompleks. Manusia melihat objek dengan indera penglihatan (mata), lalu

citra objek diteruskan ke otak untuk diinterpretasi sehingga manusia mengerti

objek apa yang tampak dalam pandangan matanya. Hasil interpretasi ini mungkin

digunakan untuk pengambilan keputusan (misalnya menghindar kalau melihat

mobil melaju di depan).

Computer vision  merupakan proses otomatis yang mengintegrasikan sejumlah

 besar proses untuk persepsi visual, seperti akuisisi citra, pengolahan citra,

klasifikasi, pengenalan (recognition), dan membuat keputusan.

Computer vision  terdiri dari teknik-teknik untuk mengestimasi ciri-ciri objek di

dalam citra, pengukuran ciri yang berkaitan dengan geometri objek, dan

menginterpretasi informasi geometri tersebut. Mungkin berguna bagi anda untuk

mengingat persamaan [JAI95] berikut:

Vision = Geometry + Measurement  + Interpretation  (1.1)

Proses-proses di dalam computer vision dapat dibagi menjadi tiga aktivitas:

1.  Memperoleh atau mengakuisisi citra digital.

2.  Melakukan teknik komputasi untuk memperoses atau memodifikasi data citra

(operasi-operasi pengolahan citra).3.  Menganalisis dan menginterpretasi citra dan menggunakan hasil pemrosesan

untuk tujuan tertentu, misalnya memandu robot, mengontrol peralatan,memantau proses manufaktur, dan lain-lain.

Page 8: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 8/229

 

8 Pengolahan Citra Digital

[SCH89] mengklasifikasikan proses-proses di dalam computer vision  dalam

hirarkhi sebagai berikut :

Hirarkhi Pemrosesan Contoh Algoritma

 preprocessing noise removalcontrast enhancement

lowest-level feature extraction edge detection

texture detection

intermediate-level feature connectivity

identification pattern matching

boundary coding

high-level scene interpretation model-base recognitionvia images

Dari penjelasan di atas, dapat kita lihat bahwa pengolahan citra dan pengenalan

 pola merupakan bagian dari computer vision. Pengolahan citra merupakan proses

awal ( preprocessing ) pada computer vision, sedangkan pengenalan pola merupakan

 proses untuk menginterpretasi citra. Teknik-teknik di dalam pengenalan pola

memainkan peranan penting dalam computer vision untuk mengenali objek.

Jika dihubungkan dengan grafika komputer, maka computer vision  merupakan

kebalikannya. Grafika komputer membentuk (sintesis) citra, sedangkan computer

vision  mengoraknya (analisis). Pada masa awal kedua bidang ini, tidak ada

hubungan antara keduanya, tetapi beberapa tahun belakangan kedua bidang

tersebut berkembang semakin dekat. Computer vision menggunakan representasi

kurva dan permukaan dan beberapa teknik lain dari grafika komputer, sedangkan

grafika komputer menggunakan teknik-teknik di dalam computer vision  untuk

memuat citra realistik (virtual reality) [JAI95].

1.4 Operasi Pengolahan Citra

Operasi-operasi yang dilakukan di dalam pengolahan citra banyak ragamnya.

 Namun, secara umum, operasi pengolahan citra dapat diklasifikasikan dalam

 beberapa jenis sebagai berikut:

1.  Perbaikan kualitas citra (image enhancement ).

Page 9: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 9/229

 

Bab 1_Pengantar Pengolahan Citra 9 

Jenis operasi ini bertujuan untuk memperbaiki kualitas citra dengan caramemanipulasi parameter-parameter citra. Dengan operasi ini, ciri-ciri khususyang terdapat di dalam citra lebih ditonjolkan.Contoh-contoh operasi perbaikan citra:a.   perbaikan kontras gelap/terang

 b.   perbaikan tepian objek (edge enhancement )c.   penajaman ( sharpening )d.   pembrian warna semu ( pseudocoloring ) e.   penapisan derau (noise filtering ) 

Gambar 1.6 adalah contoh operasi penajaman. Operasi ini menerimamasukan sebuah citra yang gambarnya hendak dibuat tampak lebih tajam.Bagian citra yang ditajamkan adalah tepi-tepi objek.

(a) (b)

Gambar 1.6   (a) Citra Lena asli, (b) Citra Lena setelah ditajamkan

2.  Pemugaran citra (image restoration).Operasi ini bertujuan menghilangkan/meminimumkan cacat pada citra.Tujuan pemugaran citra hampir sama dengan operasi perbaikan citra.Bedanya, pada pemugaran citra penyebab degradasi gambar diketahui.Contoh-contoh operasi pemugaran citra:a.   penghilangan kesamaran (deblurring ). b.   penghilangan derau (noise)

Gambar 1.7 adalah contoh operasi penghilangan kesamaran. Citra masukanadalah citra yang tampak kabur (blur ). Kekaburan gambar mungkin

disebabkan pengaturan fokus lensa yang tidak tepat atau kamera bergoyang pada pengambilan gambar. Melalui operasi deblurring , kualitas citramasukan dapat diperbaiki sehingga tampak lebih baik.

Page 10: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 10/229

 

10 Pengolahan Citra Digital

(a) (b)

Gambar 1.7   Kiri: Citra Lena yang kabur (blur), kanan: citra Lena setelah deblurring

3.  Pemampatan citra (image compression).Jenis operasi ini dilakukan agar citra dapat direpresentasikan dalam bentukyang lebih kompak sehingga memerlukan memori yang lebih sedikit. Hal penting yang harus diperhatikan dalam pemampatan adalah citra yang telahdimampatkan harus tetap mempunyai kualitas gambar yang bagus. Contohmetode pemampatan citra adalah metode JPEG. Perhatikan Gambar 1.8.Gambar sebelah kiri adalah citra kapal yang berukuran 258 KB. Hasil pemampatan citra dengan metode JPEG dapat mereduksi ukuran citra semulasehingga menjadi 49 KB saja.

(a) (b)

Gambar 1.8.  (a) Citra boat.bmp (258 KB) sebelum dimampatkan, (b) citra boat.jpg  (49 KB)

sesudah dimampatkan.

Page 11: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 11/229

 

Bab 1_Pengantar Pengolahan Citra 11 

4.  Segmentasi citra (image segmentation).

Jenis operasi ini bertujuan untuk memecah suatu citra ke dalam beberapa

segmen dengan suatu kriteria tertentu. Jenis operasi ini berkaitan erat dengan

 pengenalan pola.

5.  Pengorakan citra (image analysis)

Jenis operasi ini bertujuan menghitung besaran kuantitif dari citra untuk

menghasilkan deskripsinya. Teknik pengorakan citra mengekstraksi ciri-ciri

tertentu yang membantu dalam identifikasi objek. Proses segmentasi

kadangkala diperlukan untuk melokalisasi objek yang diinginkan dari

sekelilingnya.

Contoh-contoh operasi pengorakan citra:

a.  Pendeteksian tepi objek (edge detection)

 b.  Ekstraksi batas (boundary)

c.  Representasi daerah (region)

Gambar 1.9 adalah contoh operasi pendeteksian tepi pada citra Camera.Operasi ini menghasilkan semua tepi (edge) di dalam citra.

(a) (b)

Gambar 1.9.  (a) Citra camera, (b) citra hasil pendeteksian seluruh tepi

6.  Rekonstruksi citra (image reconstruction)

Jenis operasi ini bertujuan untuk membentuk ulang objek dari beberapa citra

hasil proyeksi. Operasi rekonstruksi citra banyak digunakan dalam bidangmedis. Misalnya beberapa foto rontgen  dengan sinar  X digunakan untuk

membentuk ulang gambar organ tubuh.

Page 12: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 12/229

 

12 Pengolahan Citra Digital

1.5 Aplikasi Pengolahan Citra dan Pengenalan

Pola 

Pengolahan citra mempunyai aplikasi yang sangat luas dalam berbagai bidang

kehidupan. Di bawah ini disebutkan beberapa aplikasi dalam beberapa bidang[MEN89].

1.  Bidang perdagangan

(a)  Pembacaan kode batang (bar code) yang tertera pada barang (umum

digunakan di pasar swalayan/supermarket).

(b)  Mengenali huruf/angka pada suatu formulir secara otomatis.

2.  Bidang militer

(a)  Mengenali sasaran peluru kendali melalui sensor visual.

(b)  Mengidentifikasi jenis pesawat musuh.

3.  Bidang kedokteran(a)  Pengolahan citra sinar X untuk mammografi (deteksi kanker payudara)

(b)  NMR ( Nuclear Magnetic Resonance)

(c)  Mendeteksi kelainan tubuh dari foto sinar X.

(d)  Rekonstruksi foto janin hasil USG

4.  Bidang biologi

Pengenalan jenis kromosom melalui gambar mikroskopik

5.  Komunikasi data

Pemampatan citra yang ditransmisi.

6.  HiburanPemampatan video ( MPEG)

7.  Robotika

Visualy-guided autonomous navigation

8.  Pemetaan

Klasifikasi penggunaan tanah melalui foto udara/LANDSAT

9.  Geologi

Mengenali jenis batu-batuan melalui foto udara/LANDSAT

10.  Hukum(a)  Pengenalan sidik jari

(b)  Pengenalan foto narapidana.

Page 13: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 13/229

 

Bab 1_Pengantar Pengolahan Citra 13 

1.6 Citra Uji

Pada pembahasan operasi-operasi pengolahan citra, biasanya penulis buku/

literatur menggunakan beberapa contoh citra uji (test images) atau sampel.

Terdapat sejumlah citra yang sering dipakai di dalam literatur pengolahan citra

atau computer vision. Citra-citra tersebut banyak ditemukan di situs-situs webuniversitas yang menawarkan mata kuliah (course) pengolahan citra. Anda bisa

mencari citra tersebut dengan menggunakan bantuan mesin pencari Google

(www.google.com) Kebanyakan dari citra tersebut merupakan citra klasik dalam

 pengolahan citra. Inilah beberapa diantaranya (dengan keterangan nama citra dan

ukurannya, lebar × tinggi, dalam satuan pixel ):

Lena, 256 × 256  Peppers 512 × 512 Zelda 512 × 512

Bird 256 × 256 Camera 256 × 256 Mandrill 512 × 512

Barbara 512 × 512 Boat 512 × 512 Slope 256 × 256

Page 14: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 14/229

 

14 Pengolahan Citra Digital

San Fransisco 256 × 256 Collie 256 × 256 Circle 256 × 256

Squares 256 × 256 Text 256 × 256 Mountain 640 × 480

Goldhill 512 × 512 Eltoro 512 × 512 Girl 256 × 256

Page 15: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 15/229

 

Bab 2_Pembentukan Citra 15 

Bab 2

Pembentukan Citra

itra ada dua macam: citra kontinu dan citra diskrit. Citra kontinu dihasilkan dari

sistem optik yang menerima sinyal analog, misalnya mata manusia dan

kamera analog. Citra diskrit dihasilkan melalui proses digitalisasi terhadap

citra kontinu. Beberapa sistem optik dilengkapi dengan fungsi digitalisasi sehingga

ia mampu menghasilkan citra diskrit, misalnya kamera digital dan  scanner . Citra

diskrit disebut juga citra digital. Komputer digital yang umum dipakai saat ini

hanya dapat mengolah citra digital. Bab 2 ini berisi konsep pembentukan citra,

 baik citra kontinu maupun citra digital.

2.1 Model Citra 

Pada bagian kuliah yang pertama sudah dijelaskan bahwa citra merupakan fungsi

malar  (kontinyu) dari intensitas cahaya pada bidang dwimatra. Secara matematis

fungsi intensitas cahaya pada bidang dwimatra disimbolkan dengan  f ( x,  y), yang

dalam hal ini:

( x, y) : koordinat pada bidang dwimatra

 f ( x, y) : intensitas cahaya (brightness) pada titik ( x, y)

Gambar 2.1 memperlihatkan posisi koordinat pada bidang citra. Sistem koordinat

yang diacu adalah sistem koordinat kartesian, yang dalam hal ini sumbu mendatar

menyatakan sumbu- X , dan sumbu tegak menyatakan sumbu-Y .

C

Page 16: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 16/229

 

16 Pengolahan Citra Digital

Gambar 2.1. Cara menentukan koodinat titik di dalam citra.

Karena cahaya merupakan bentuk energi, maka intensitas cahaya bernilai antara 0sampai tidak berhingga,

0 ≤  f ( x, y) < ∞ 

 Nilai f ( x, y) sebenarnya adalah hasil kali dari [GON77]:1.  i( x,  y) =jumlah cahaya yang berasal dari sumbernya (illumination), nilainya

antara 0 sampai tidak berhingga, dan2.  r ( x,  y) = derajat kemampuan obyek memantulkan cahaya (reflection),

nilainya antara 0 dan 1.

Gambar 2.2 memperlihatkan proses pembentukan intensitas cahaya. Sumbercahaya menyinari permukaan objek. Jumlah pancaran (iluminasi) cahaya yangditerima objek pada koodinat ( x,  y) adalah i( x,  y). Objek memantulkan cahayayang diterimanya dengan derajat pantulan r ( x, y). Hasil kali antara i( x, y) dan r ( x, y) menyatakan intensitas cahaya pada koordinat ( x, y) yang ditangkap oleh sensorvisual pada sistem optik.

Jadi,

 f ( x, y) = i( x, y) ⋅  r ( x,  y)

yang dalam hal ini,

0 ≤ i( x, y) < ∞ 

0 ≤ r ( x, y) ≤ 1

Page 17: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 17/229

 

Bab 2_Pembentukan Citra 17 

 permukaan

sumber 

cahaya

i(x,y)

normala

 f(x,y)

sehingga

0 ≤  f ( x, y) < ∞ 

Gambar 2.2   Pembentukan Citra [PIT93]

 Nilai i( x,  y) ditentukan oleh sumber cahaya, sedangkan r ( x,  y) ditentukan oleh

karakteristik objek di dalam gambar. Nilai r ( x, y) = 0 mengindikasikan penerapan

total, sedangkan r ( x, y) = 1 menyatakan pemantulan total. Jika permukaan

mempunyai derajat pemantulan nol, maka fungsi intensitas cahaya,  f ( x,  y), juga

nol. Sebaliknya, jika permukaan mempunyai derajat pemantulan 1, maka fungsiintensitas cahaya sama dengan iluminasi yang diterima oleh permukaan tersebut.

Contoh-contoh nilai i( x, y):

1.   pada hari cerah, matahari menghasilkan iluminasi i( x,  y) sekitar 9000  foot

candles, 2.   pada hari mendung (berawan), matahari menghasilkan iluminasi i( x,  y)

sekitar 1000 foot candles, 

3.   pada malam bulan purnama, sinar bulan menghasilkan iluminasi i( x,  y)

sekitar 0.01 foot candle. 

Contoh nilai r ( x, y)

1.   benda hitam mempunyai r ( x, y) = 0.01,

2.  dinding putih mempunyai r ( x, y) = 0.8,

3.   benda logam dari stainlessteel  mempunyai r ( x, y) = 0.65,

4.  salju mempunyai r ( x, y) = 0.93.

Page 18: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 18/229

 

18 Pengolahan Citra Digital

Intensitas  f   dari gambar hitam putih pada titik ( x,  y) disebut  derajat keabuan 

( grey level ), yang dalam hal ini derajat keabuannya bergerak dari hitam ke putih,

sedangkan citranya disebut citra hitam-putih  ( greyscale  image) atau citra 

monokrom (monochrome image).

Derajat keabuan memiliki rentang nilai dari l min sampai l max, atau

l min < f  < l max

Selang (l min, l max) disebut skala keabuan.

Biasanya selang (l min, l max) sering digeser untuk alasan-alasan praktis menjadi

selang [0,  L], yang dalam hal ini nilai intensitas 0 menyatakan hitam, nilai

intensitas  L  menyatakan putih, sedangkan nilai intensitas antara 0 sampai  L 

 bergeser dari hitam ke putih.

Sebagai contoh, citra hitam-putih dengan 256 level  artinya mempunyai skala abu

dari 0 sampai 255 atau [0, 255], yang dalam hal ini nilai intensitas 0 menyatakanhitam, nilai intensitas 255 menyatakan putih, dan nilai antara 0 sampai 255

menyatakan warna keabuan yang terletak antara hitam dan putih.

Citra hitam-putih disebut juga citra satu kanal, karena warnanya hanya ditentukan

oleh satu fungsi intensitas saja. Citra berwarna (color images) dikenal dengan

nama citra spektral, karena warna pada citra disusun oleh tiga komponen warna

yang disebut komponen  RGB, yaitu merah (red ), hijau ( green), dan biru (blue).

Intensitas suatu titik pada citra berwarna merupakan kombinasi dari tiga

intensitas: derajat keabuan merah ( f merah( x, y)), hijau ( f hijau( x, y)), dan biru ( f  biru( x, y)).

2.2 Digitalisasi CitraAgar dapat diolah dengan dengan komputer digital, maka suatu citra harus

direpresentasikan secara numerik dengan nilai-nilai diskrit . Representasi citra dari

fungsi malar (kontinu) menjadi nilai-nilai diskrit disebut digitalisasi. Citra yang

dihasilkan inilah yang disebut citra digital (digital image). Pada umumnya citra

digital berbentuk empat persegipanjang, dan dimensi ukurannya dinyatakan

sebagai tinggi × lebar (atau lebar × panjang).

Citra digital yang tingginya N , lebarnya M , dan memiliki L derajat keabuan dapat

dianggap sebagai fungsi [DUL97]:

 f ( x, y)

≤≤

≤≤

≤≤

 L f 

 N  y

 M  x

0

0

0

 

Page 19: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 19/229

 

Bab 2_Pembentukan Citra 19 

Citra digital yang berukuran  N   ×  M   lazim dinyatakan dengan matriks yang

 berukuran N  baris dan M  kolom sebagai berikut:

 f ( x, y) ≈ 

−−−− )1,1(...)1,1()0,1(

),1(...)1,1()0,1(

),0(...)1,0()0,0(

 M  N  f  N  f  N  f 

 M  f  f  f 

 M  f  f  f 

MMMM 

Indeks baris (i) dan indeks kolom ( j) menyatakan suatu koordinat titik pada citra,

sedangkan f (i, j) merupakan intensitas (derajat keabuan) pada titik (i, j).

Masing-masing elemen pada citra digital (berarti elemen matriks) disebut image

element ,  picture element   atau  pixel   atau  pel . Jadi, citra yang berukuran  N  ×  M  

mempunyai  NM   buah  pixel . Sebagai contoh, misalkan sebuah berukuran 256 × 

256  pixel  dan direpresentasikan secara numerik dengan matriks yang terdiri dari256 buah baris (di-indeks dari 0 sampai 255) dan 256 buah kolom (di-indeks dari

0 sampai 255) seperti contoh berikut:

156......210219221

120......189187220

197......2011670

231......1451340

MMMMMM

MMMMMM 

 Pixel   pertama pada koordinat (0, 0) mempunyai nilai intensitas 0 yang berarti

warna  pixel   tersebut hitam,  pixel   kedua pada koordinat (0, 1) mempunyai

intensitas 134 yang berarti warnanya antara hitam dan putih, dan seterusnya.

Proses digitalisasi citra ada dua macam:

1.  Digitalisasi spasial ( x, y), sering disebut sebagai penerokan ( sampling ).

2.  Digitalisasi intensitas f ( x, y), sering disebut sebagai kuantisasi.

Penerokan

Citra kontinu diterok pada grid-grid yang berbentuk bujursangkar (kisi-kisi dalam

arah horizontal dan vertikal). Perhatikan Gambar 2.3.

Page 20: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 20/229

 

20 Pengolahan Citra Digital

Penerok

Citra kontinu Citra digital

 

Gambar 2.3. Penerokan secara spasial

Terdapat perbedaan antara koordinat gambar (yang diterok) dengan koordinat

matriks (hasil digitalisasi). Titik asal (0, 0) pada gambar dan elemen (0, 0) padamatriks tidak sama. Koordinat x dan y pada gambar dimulai dari sudut kiri bawah,

sedangkan penomoran  pixel   pada matriks dimulai dari sudut kiri atas (Gambar2.4).

(0,0)

 x

 y

 D x

 D y

 D x

 D y

i

 j

 N -1

 M -1

0

0

 M pixel 

 N pixel 

 

Gambar 2.4. Hubungan antara elemen gambar dan elemen matriks [GAL90]

Dalam hal ini,

i = x  , 0≤

 i ≤

  N  – 1 j = ( M  – y) , 0 ≤  j ≤  M  – 1

 x = D x/ N   increment  

 y = D y/ M   increment  

Page 21: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 21/229

 

Bab 2_Pembentukan Citra 21 

Contoh ukuran penerokan: 256 × 256 pixel , 128 × 256 pixel. 

 N  = jumlah maksimum pixel  dalam satu baris M  = jumlah maksimum pixel  dalam satu kolom D x = lebar gambar (dalam inchi) D y = tinggi gambar (dalam inchi)

Catatan: beberapa referensi menggunakan (1,1) –ketimbang (0,0) – sebagaikoordinat elemen pertama di dalam matriks.

Elemen (i,  j) di dalam matriks menyatakan rata-rata intensitas cahaya pada areacitra yang direpresentasikan oleh  pixel . Sebagai contoh, tinjau citra biner yanghanya mempunyai 2 derajat keabuan, 0 (hitam) dan 1 (putih). Sebuah gambar

yang berukuran 10 × 10 inchi dinyatakan dalam matriks yang berukuran 5 × 4,yaitu lima baris dan 4 kolom. Tiap elemen gambar lebarnya 2.5 inchi dantingginya 2 inci akan diisi dengan sebuah nilai bergantung pada rata-rataintensitas cahaya pada area tersebut (Gambar 2.5).

Area 2.5 × 2.0 inchi pada sudut kiri atas gambar dinyatakan dengan lokasi (0, 0)

 pada matriks 5 × 4 yang mengandung nilai 0 (yang berarti tidak ada intensitas

cahaya). Area 2.5 × 2.0 inchi pada sudut kanan bawah gambar dinyatakan denganlokasi (4, 3) pada matriks 5 × 4 yang mengandung nilai 1 (yang berarti iluminasimaksimum).

 x

 y

0

0

10 inchi

10 inchi

 putih

hitam

0

1

? ?

?

?

? ? ?

?

?

? ? ?

???

???

 

(a) (b)

Gambar 2.5   (a) Gambar yang diterok, (b) matriks yang merepresentasikan gambar [GAL90]

Untuk memudahkan implementasi, jumlah terokan biasanya diasumsikan perpangkatan dari dua,

 N  = 2n 

yang dalam hal ini,

 N  = jumlah penerokan pada suatu baris/kolomn = bilangan bulat positif

Page 22: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 22/229

 

22 Pengolahan Citra Digital

Gambar 2.6. Ukuran penerokan yang berbeda-beda menghasilkan kualitas citra yang berbeda pula Kuantisasi  

Pembagian gambar menjadi ukuran tertentu menentukan resolusi (yaitu derajatrincian yang dapat dilihat) spasial yang diperoleh. Semakin tinggi resolusinya,yang berarti semakin kecil ukuran  pixel  (atau semakin banyak jumlah  pixel -nya),semakin halus gambar yang diperoleh karena informasi yang hilang akibat pengelompokan derajat keabuan pada penerokan semakin kecil.

Gambar 2.6 mempelihatkan efek perbedaan penerokan pada citra Lena, masing-

masing 256 ×  256, 128 ×  128, 64 ×  64, dan 32 ×  32  pixel , seluruh citramempunyai jumlah derajat keabuan sama, yaitu 256 buah. Karena area tampilan

untuk keempat citra Lena pada Gambar 2.6 sama, (yaitu 256 × 256 pixel ), maka pixel-pixel  citra yang beresolusi rendah diduplikasi untuk mengisi seluruh bidangtampilan. Hal ini menghasilkan efek blok-blok yang sering diamati pada gambar beresolusi rendah pada umumnya.

(a) 256 × 256 pixel   (b) 128 × 128 pixel

(c) 64 × 64 pixel   (d) 32 × 32 pixel  

Page 23: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 23/229

 

Bab 2_Pembentukan Citra 23 

Langkah selanjutnya setelah proses penerokan adalah kuantisasi. Proses

kuantisasi membagi skala keabuan (0,  L) menjadi G buah level yang dinyatakan

dengan suatu harga bilangan bulat (integer ), biasanya G  diambil perpangkatan

dari 2,

G = 2

m

 

yang dalam hal ini,

G = derajat keabuan

m = bilangan bulat positif

Skala Keabuan Rentang Nilai Keabuan  Pixel Depth 

21  (2 nilai) 0, 1 1 bit

22  (4 nilai) 0 sampai 7 2 bit

23 (16 nilai) 0 sampai 15 3 bit

28  (256 nilai) 0 sampai 255 8 bit

Hitam dinyatakan dengan nilai derajat keabuan terendah, yaitu 0, sedangkan putih

dinyatakan dengan nilai derajat keabuan tertinggi, misalnya 15 untuk 16 level.

Jumlah bit yang dibutuhkan untuk mereprentasikan nilai keabuan  pixel   disebut

kedalaman pixel   ( pixel depth). Citra sering diasosiasikan dengan kedalaman

 pixel -nya. Jadi, citra dengan kedalaman 8 bit disebut juga citra 8-bit (atau citra

256 warna)

Pada kebanyakan aplikasi, citra hitam-putih dikuantisasi pada 256 level dan

membutuhkan 1 byte (8 bit) untuk representasi setiap pixel-nya (G = 256 = 28 ).

Citra biner (binary image) hanya dikuantisasi pada dua level: 0 dan 1. Tiap  pixel  

 pada citra biner cukup direpresentasikan dengan 1 bit, yang mana bit 0 berarti

htam dan bit 1 berarti putih.

Besarnya daerah derajat keabuan yang digunakan menentukan resolusi kecerahan

dari gambar yang diperoleh. Sebagai contoh, jika digunakan 3 bit untuk

menyimpan harga bilangan bulat, maka jumlah derajat keabuan yang diperoleh

hanya 8, jika digunakan 4 bit, maka derajat keabuan yang diperoleh adalah 16

 buah. Semakin banyak jumlah derajat keabuan (berarti jumlah bit kuantisasinya

makin banyak), semakin bagus gambar yang diperoleh karena kemenerusan

derajat keabuan akan semakin tinggi sehingga mendekati citra aslinya.

Gambar 2.7 mempelihatkan efek perbedaan kuantisasi citra Lena yang berukuran

256 × 256 pixel , masing-masing 256 level dan 128 level keabuan.

Page 24: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 24/229

 

24 Pengolahan Citra Digital

(a) 256 level (b) 128 level

Gambar 2.7. Citra Lena yang dikuantisasi pada 256 level dan 128 level

Penyimpanan citra digital yang diterok menjadi  N  ×  M  buah  pixel  dan dikuantisasi

menjadi G = 2m level derajat keabuan membutuhkan memori sebanyak

b = N  ×  M × m 

 bit. Sebagai contoh, menyimpan citra Lena yang berukuran dengan 512 ×  512

 pixel  dengan 256 derajat keabuan membutuhkan memori sebesar 512 × 512 × 8

 bit = 2048.000 bit.

Secara keseluruhan, resolusi gambar ditentukan oleh  N  dan m. Makin tinggi nilai

 N   (atau  M ) dan m, maka citra yang dihasilkan semakin bagus kualitasnya

(mendekati citra menerus). Untuk citra dengan jumlah objek yang sedikit,

kualitas citra ditentukan oleh nilai m. Sedangkan untuk citra dengan jumlah objek

yang banyak, kualitasnya ditentukan oleh N  (atau M ).

Seluruh tahapan proses digitalisasi (penerokan dan kuantisasi) di atas dikenal

sebagai konversi analog-ke-digital, yang biasanya menyimpan hasil proses di

dalam media penyimpanan.

Page 25: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 25/229

 

Bab 2_Pembentukan Citra 25 

2.3 Elemen-elemen Citra Digital

Citra digital mengandung sejumlah elemen-elemen dasar. Elemen-elemen dasartersebut dimanipulasi dalam pengolahan citra dan dieksploitasi lebih lanjut dalam

computer vision. Elemen-elemen dasar yang penting diantaranya adalah:

1.  Kecerahan (brightness).

Kecerahan adalah kata lain untuk intensitas cahaya. Sebagaimana telah dijelaskan

 pada bagian penerokan, kecerahan pada sebuah titik ( pixel ) di dalam citra

 bukanlah intensitas yang riil, tetapi sebenarnya adalah intensitas rata-rata dari

suatu area yang melingkupinya. Sistem visual manusia mampu menyesuaikan

dirinya dengan tingkat kecerahan (brightness level ) mulai dari yang paling rendah

sampai yang paling tinggi dengan jangkauan sebesar 1010 [MEN89].

2.  Kontras (contrast ).

Kontras menyatakan sebaran terang (lightness) dan gelap (darkness) di dalam

sebuah gambar. Citra dengan kontras rendah dicirikan oleh sebagian besarkomposisi citranya adalah terang atau sebagian besar gelap. Pada citra dengan

kontras yang baik, komposisi gelap dan terang tersebar secara merata.

3.  Kontur (contour )

Kontur adalah keadaan yang ditimbulkan oleh perubahan intensitas pada  pixel-

 pixel   yang bertetangga. Karena adanya perubahan intensitas inilah mata kita

mampu mendeteksi tepi-tepi (edge) objek di dalam citra.

4.  Warna (color )

Warna adalah persepsi yang dirasakan oleh sistem visual manusia terhadap panjang

gelombang cahaya yang dipantulkan oleh objek. Setiap warna mempunyai panjang

gelombang (λ) yang berbeda. Warna merah mempunyai panjang gelombang paling tinggi, sedangkan warna ungu (violet) mempunyai panjang gelombang

 paling rendah.

Warna-warna yang diterima oleh mata (sistem visual manusia) merupakan hasil

kombinasi cahaya dengan panjang gelombang berbeda. Penelitian memperlihatkan

 bahwa kombinasi warna yang memberikan rentang warna yang paling lebar

adalah red  ( R), green (G), dan blue ( B).

Persepsi sistem visual manusia terhadap warna sangat relatif sebab dipengaruhi

oleh banyak kriteria, salah satunya disebabkan oleh adaptasi yang menimbulkan

distorsi. Misalnya bercak abu-abu di sekitar warna hijau akan tampak keungu-

unguan (distorsi terhadap ruang), atau jika mata melihat warna hijau lalulangsung dengan cepat melihat warna abu-abu, maka mata menangkap kesan

warna abu-abu tersebut sebagai warna ungu (distorsi terhadap waktu) [MEN89].

Page 26: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 26/229

 

26 Pengolahan Citra Digital

5.  Bentuk (shape)

Shape adalah properti intrinsik dari objek tiga dimensi, dengan pengertian bahwa

 shape merupakan properti intrinsik utama untuk sistem visual manusia [BAL82].

Manusia lebih sering mengasosiasikan objek dengan bentuknya ketimbang

elemen lainnya (warna misalnya). Pada umumnya, citra yang dibentuk oleh mata

merupakan citra dwimatra (2 dimensi), sedangkan objek yang dilihat umumnya

 berbentuk trimatra (3 dimensi). Informasi bentuk objek dapat diekstraksi dari

citra pada permulaaan pra-pengolahan dan segmentasi citra. Salah satu tantangan

utama pada computer vision adalah merepresentasikan bentuk, atau aspek-aspek

 penting dari bentuk.

6.  Tekstur (texture)

Tekstur dicirikan sebagai distribusi spasial dari derajat keabuan di dalam

sekumpulan  pixel-pixel   yang bertetangga [JAI95]. Jadi, tekstur tidak dapat

didefinisikan untuk sebuah pixel. Sistem vissual manusia pada hakikatnya tidak

menerima informasi citra secara independen pada setiap  pixel , melainkan suatucitra dianggap sebagai suatu kesatuan. Resolusi citra yang diamati ditentukan

oleh skala pada mana tekstur tersebut dipersepsi. Sebagai contoh, jika kita

mengamati citra lantai berubin dari jarak jauh, maka kita mengamati bahwa

tekstur terbentuk oleh penempatan ubin-ubin secara keseluruhan, bukan dari

 persepsi pola di dalam ubin itu sendiri. Tetapi, jika kita mengamati citra yang

sama dari jarak yang dekat, maka hanya beberapa ubin yang tampak dalam

 bidanng pengamatan, sehingga kita mempersepsi bahwa tekstur terbentuk oleh

 penempatan pola-pola rinci yang menyusun tiap ubin.

2.4 Elemen Sistem Pemrosesan Citra DigitalSecara umum, elemen yang terlibat dalam pemrosesan citra dapat dibagi menjadi

empat komponen:

a.  digitizer

 b.  komputer digital 

c.   piranti tampilan

d.   piranti penyimpanan

Keempat komponen di atas ditunjukkan pada Gambar 2.8 [GON77].

Page 27: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 27/229

 

Bab 2_Pembentukan Citra 27 

Digitizer   Komputer 

DigitalCitra

Media

Penyimpanan

PirantiTampilan

 

Gambar 2.8. Elemen pemrosesan citra

Operasi dari sistem pemrosesan citra tersebut dapat dibagi menjadi empat

kategori prinsip: digitalisasi, pemrosesan, penayangan, dan penyimpanan.

 Digitizer   (atau digital image acquisition system) merupakan sistem penangkap

citra digital yang melakukan penjelajahan citra dan mengkonversinya kerepresentasi numerik sebagai masukan bagi komputer digital. Hasil dari digitizer

adalah matriks yang elemen-elemennya menyatakan nilai intensitas cahaya pada

suatu titik. Contoh digitizer  adalah kamera digital, scanner .

 Digitizer   terdiri dari tiga komponen dasar: sensor citra yang bekerja sebagai

 pengukur intensitas cahaya, perangkat penjelajah yang berfungsi merekam hasil

 pengukuran intensitas pada seluruh bagian citra, dan pengubah analog-ke-digital

yang berfungsi melakukan penerokan dan kuantisasi.

Komputer digital yang digunakan pada sistem pemroses citra dapat bervariasi

dari komputer mikro sampai komputer besar yang mampu melakukan bermacam-macam fungsi pada citra digital resolusi tinggi.

Page 28: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 28/229

 

28 Pengolahan Citra Digital

Piranti tampilan peraga berfungsi mengkonversi matriks intensitas yang

merepresentasikan citra ke tampilan yang dapat diinterpretasi oleh mata manusia.

Contoh piranti tampilan adalah monitor peraga dan pencetak ( printer ).

Media penyimpanan adalah piranti yang mempunyai kapasitas memori besarsehingga gambar dapat disimpan secara permanen agar dapat diproses lagi pada

waktu yang lain.

Page 29: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 29/229

 

Bab 3_Struktur Data untuk Citra Digital dan Format Citra Bitmap  29 

Bab 3

Struktur Data untuk Citra Digital

dan Format Citra Bitmap 

itra digital diolah dengan menggunakan komputer, oleh karena itu kita

 perlu mendefinisikan struktur data untuk merepresentasikan citra di dalam

memori komputer. Matriks adalah struktur data yang tepat untuk

merepresentasikan citra digital. Elemen-elemen matriks dapat diakses secara

langsung melalui indeksnya (baris dan kolom).

Di dalam bab ini kita akan mendefinisikan struktur data matriks untuk citradigital. Notasi algoritmik yang kita gunakan untuk menjelaskan struktur data ini

(beserta beberapa primitif operasi citra) adalah notasi Bahasa C (lebih tepatnya

notasi ANSI C). Pemrograman citra digital lebih cocok menggunakan Bahasa C

karena Bahasa C mempunyai penanganan tipe  pointer   yang lebih dinamis

daripada Bahasa Pascal. Pada pembahasan nanti kita akan melihat bahwa struktur

data matriks direpresentasikan dengan menggunakan tipe  pointer   mengingat

ukuran matriks tidak diketahui sebelum pemrosesan citra digital.

3.1 MatriksSebagaimana telah dijelaskan pada Bab 2, citra digital yang berukuran  N  ×  M  

(tinggi =  N , lebar =  M ) lazim dinyatakan dengan matriks  N  baris dan  M  kolom

sebagai berikut:

C

Page 30: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 30/229

 

30 Pengolahan Citra Digital

 

 f ( x, y) ≈ 

−−−− )1,1(...)1,1()0,1(

),1(...)1,1()0,1(

),0(...)1,0()0,0(

 M  N  f  N  f  N  f 

 M  f  f  f 

 M  f  f  f 

MMMM 

Untuk citra dengan 256 derajat keabuan, harga setiap elemen matriks adalah

 bilangan bulat di dalam selang [0, 255]. Karena itu, kita dapat menggunakan tipe

unsigned char  untuk menyatakan tipe elemen matriks. Unsigned char  adalah tipe

integer  positif di dalam Bahasa C yang rentang nilainya hanya dari 0 sampai 255.

Kita dapat menggunakan matriks statik untuk merepresentasikan citra digital

secara fisik di dalam memori komputer sebagai berikut:

unsigned char f[N][M];

dengan N dan M  sudah terdefinisi sebelumnya sebagai suatu konstant. Elemen

matriks diacu dengan f[i][j] , 0 ≤ i ≤  N  – 1 dan 0 ≤  j ≤  M  – 1.

Pada kebanyakan kasus, ukuran citra tidak diketahui sebelum pemrosesan

dilakukan. Ada kemungkinan ukuran citra yang akan diolah melebihi nilai  N  dan

 M   yang sudah ditetapkan di dalam deklarasi struktur data. Oleh karena itu,

representasi citra dengan struktur matriks statik menjadi tidak relevan. Tipe data

yang cocok untuk citra adalah pointer .

Tinjau tipe  pointer   untuk tabel atau larik (array). Di dalam Bahasa C, elemen

larik a[i]  ekivalen dengan *(a+i). Tanda ‘*’ menyatakan  pointer   yangmenunjuk pada alamat suatu elemen di memori.

Larik yang berukuran  N  elemen dapat dibuat secara dinamik pada saat run-time 

dengan prosedur alokasi malloc:

unsigned char *a;a=(unsigned char*) malloc (N * sizeof(unsigned char));

Pernyataan di atas berarti kita meminta komputer mengalokasikan memori untuk

elemen larik a  sebanyak  N   elemen, setiap elemen panjangnya 1 byte  (yaitu

 panjang byte tipe unsigned char ). Nilai  N  dapat ditetapkan pada saat run-time.

Matriks dapat dianggap sebagai larik satu matra (matra = dimensi) dari vektor

seperti yang ditunjukkan pada Gambar 3.1.  Pointer   **a  menunjuk ke larik

 pointer  *a[0], *a[1], …, *a[N-1], yang masing-masing larik menunjuk ke

 baris-baris dari citra.

Page 31: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 31/229

 

Bab 3_Struktur Data untuk Citra Digital dan Format Citra Bitmap  31 

*a[0] a[0][0] a[0][1] a[0][M-1]...

*a[1] a[1][0] a[1][1] a[1][M-1]...

*a[N-1] a[N-1][0] a[N-1][1] a[N-1][M-1]...

.

.

.

**a

 

Gambar 3.1.  Representasi matriks dengan larik pointer [PIT93]

Dengan demikian, deklarasi matriks dinamis untuk citra f adalah sebagai berikut

ini:

unsigned char **f;

atau dengan menggunakan user defined type:

typedef unsigned char **citra;citra f;

Alokasi memori untuk matriks citra f yang berukuran N  ×  M  dilakukan pada saat

run-time dengan memanggil fungsi alokasi  seperti yang ditunjukkan oleh

Algoritma 3.1.

citra alokasi(int N, int M)/* Mengalokasikan memori untuk citra f yang berukuran N x M pixel. */

{int i;

f=(unsigned char**)malloc(N * sizeof(unsigned char*));if (f==NULL) return(NULL); /* memori habis */for (i=0; i<N; i++){

f[i]=(unsigned char*)malloc(M*sizeof(unsigned char));if (f[i]==NULL){ /* memori habis, dealokasi semua elemen baris matriks */  

dealokasi(f, N);return(NULL);

}}return f;

}

Algor i tma 3.1.  Alokasi memori untuk matriks citra f  

Page 32: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 32/229

 

32 Pengolahan Citra Digital

 

Cara pemanggilan fungsi alokasi adalah dengan menampung keluaran fungsi

dalam peubah yang tipenya sama dengan tipe citra:

f = alokasi(N, M)

Untuk citra berwarna, yang mana setiap nilai intensitas merah, hijau, dan biru

disimpan di dalam matriks r, g, dan b, maka kita harus mengalokasikan memori

untuk ketiga buah matriks tersebut:

r = alokasi(N, M)g = alokasi(N, M)b = alokasi(N, M)

Bila citra selesai diproses, maka memori yang dipakai oleh citra tersebut

dikembalikan (dealokasi) kepada sistem. Dealokasi memori untuk matriks citra f 

dapat dilakukan dengan memanggil fungsi dealokasi pada Algoritma 3.2.

void dealokasi(citra f, int N)/* Dealokasi memori dari citra f yang mempunyai N baris pixel */

{int i;

for (i=0; i<N; i++){

free(f[i]); /* bebaskan memori semua elemen pada baris i */}free(f);

}

Algor i tma 3.2.  Dealokasi memori untuk dari citra f  

Selain matriks yang merepresentasikan citra, kita mungkin memerlukan matriks

lain yang menyimpan nilai-nilai bertipe riil dan matriks yang menyimpan nilai-

nilai integer   (yang rentang nilainya lebih besar daripada unsigned char ). Oleh

karena itu, kita perlu mendedinisikan dua tipe matriks lain sebagai berikut:

typedef float **rmatrik;typedef int **imatriks;

Selain menggunakan Algoritma 3.1, kita juga dapat menggunakan algoritma

 pengalokasian memori untuk matriks secara umum (jadi, tidak hanya untuk

matriks citra yang bertipe unsined char  saja) yang dibentuk pada saat run-time.

Algoritma pengalokasian memori matriks tersebut ditunjukkan pada Algoritma

3.3. Pada prinsipnya, cara pengalokasian memori untuk matriks pada algoritma

3.3 sama saja dengan Algoritma 3.1, hanya saja Algoritma 3.3 dapat digunakan

untuk mengalokasikan memori matriks yang bertipe apa saja. Dengan demikian,

Page 33: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 33/229

 

Bab 3_Struktur Data untuk Citra Digital dan Format Citra Bitmap  33 

kita tidak perlu menulis tiga prosedur yang berbeda untuk mengalokasikan

matriks yang bertipe berbeda pula.

void **alokasi(int N, int M, int UkuranElemen)/* Mengalokasikan memori untuk matriks yang berukuran N x M. Setiap elemenmatriks membutuhkan ruang memori sebesar UkuranElemen byte */{

int i;void **larik = (void**)xalloc(N * sizeof(void *)); /* buat array N

elemen */for (i=0; i<N; i++)

larik[i] = (void*)xalloc(M * UkuranElemen);return larik;

}

void *xalloc(unsigned ukuran)

/* Mengalokasikan memori dan memeriksa apakah alokasi memori berhasil */{void *p = malloc(ukuran);if (p==NULL){

printf("Memori tidak cukup untuk alokasi matriks");exit(0);

}return p;

}

Algor i tm a 3.3.  Alokasi memori untuk matriks bertipe sembarang

Untuk mengalokasikan memori untuk citra Image  yang berukuran  N  ×  M  elemen

dan setiap elemen bertipe unsigned char , perintahnya di dalam program adalah

sebagai berikut:

Image = (unsigned char**) alokasi (N, M, sizeof(unsined char));

Sedangkan untuk mengalokasikan memori matriks  Mat   yang berukuran  N  ×  M  

elemen dan setiap elemen bertipe  float , perintahnya di dalam program adalah

sebagai berikut:

Mat = (float**) alokasi (N, M, sizeof(float));

Sebagai catatan, semua algoritma alokasi dan dealokasi matriks yang berbasis

stuktur data pointer  harus menyertakan pustaka alloc.h di dalam programnya:

#include <alloc.h>

Page 34: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 34/229

 

34 Pengolahan Citra Digital

 

 j

i

 f  (i, j)

(0,0) x

 y

 f  ( x, y)

(0,0)

Koordinat citra Koordinat layar  

3.2 Menampilkan Citra ke Layar

Citra ditampilkan ke layar peraga jika card   grafik tersedia pada komputer yang

digunakan dan card  tersebut mampu menghasilkan warna untuk setiap komponen

 RGB  ( Red , Green,  Blue). Fungsi baku untuk menampilkan citra adalahsetpixel:

setpixel(unsigned char r,unsigned char g, unsigned char b,int i,int j);

/* menampilkan pixel dengan komponen rgb pada koordinat i, j */

Prosedur menampilkan citra berwarna yang setiap intensitas merah, hijau, dan

 biru disimpan di dalam matriks r, g, dan b  selengkapnya ditunjukkan pada

Algoritma 3.4.

void tampilkan_citra(citra r,citra g,citra b, int N,int M)/* Menampilkan citra yang berukuran N x M pixel ke layar. */{ int i, j;

for (i=0; i<N; i++)for (j=0; j<M; j++)

setpixel(r[i][j],g[i][j],b[i][j],j,i);}

Algor i tma 3.4.  Prosedur menampilkan citra ke layar  

Jika citra yang ditampilkan adalah citra hitam-putih (matriks intensitas  pixel -nya

adalah f ), maka perubahan yang dilakukan adalah pada:

setpixel(f[i][j],f[i][j],f[i][j], j, i);

 Pixel  (i, j) ditampilkan pada posisi ( j,i) di layar karena perbedaan sistem koordinat

yang digunakan pada representasi citra dan layar peraga (lihat Gambar 3.2).

Gambar 3.2.  Perbedaan antara koordinat citra dan koordinat layar

Page 35: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 35/229

 

Bab 3_Struktur Data untuk Citra Digital dan Format Citra Bitmap  35 

Prosedur menampilkan citra pada platform  Windows berbeda dengan prosedur di

atas. Algoritma 3.5 berikut ini adalah prosedur menampilkan citra hitam-putih

dengan 256 derajat keabuan di lingkungan Windows.

void WIN_tampilkan_citra(citra Image, int N, int M)/* Menampilkan citra Image yang berukuran N x M di lingkungan Windows */{

HDC MemDC; /* Handle ke memory device context */HBITMAP mbitmap; /* Handle ke citra */HWND hwnd; /* Handle ke window */COLORREF TabelWarna[256]; /* Tabel warna (palet) */int i, j, palet;

hwnd = GetActiveWindow();MemDC = CreateCompatibleDC(GetDC(hwnd));mbitmap = CreateCompatibleBitmap(GetDC(hwnd),M,N);

SelectObject(MemDC,mbitmap);

/* Definisikan palet */for (i=0; i<256; i++)

TabelWarna[i]=GetNearestColor(MemDC, RGB(i,i,i));

/* Isikan pixel ke memori device (layar) */for (i=0; i<N; i++)

for (j=0; j<M; j++){

palet = Image[i][j];SetPixelV(MemDC,j,i,TabelWarna[palet]);

}

/* Tembakkan citra ke layar */BitBlt(GetDC(hwnd),0,0,M,N,MemDC,0,0,SRCCOPY);

}

Algor i tma 3.5.   Prosedur menampilkan citra hitam-putih ke layar di lingkungan Windows.

Jika citra yang ditampilkan adalah citra berwarna (matriks intensitas  pixel -nya

masing-masing adalah r ,  g , dan b), maka perubahan yang dilakukan adalah

sebagai berikut:

for (i=0; i<N; i++)for (j=0; j<M; j++){

palet = GetNearestColor(MemDC, RGB(b[i][j], g[i][j], r[i][j]);SetPixelV(MemDC, j, i, palet);

}

/* Tembakkan citra ke layar */BitBlt(GetDC(hwnd), 0, 0, M, N, MemDC, 0, 0, SRCCOPY);

Page 36: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 36/229

 

36 Pengolahan Citra Digital

 

3.3 Membaca Citra dari Arsip

Citra disimpan di dalam arsip biner untuk sewaktu-waktu dibuka dan dibaca

kembali. Arsip tersebut ada yang mempunyai header  dan ada yang tanpa header .

 Header   adalah informasi yang terletak pada bagian awal arsip.  Header   berisi

informasi bagaimana citra disimpan. Kita perlu mengetahui header   agar kita

mengetahui cara membaca data citra. Saat ini terdapat bermacam-macam format

 penyimpanan citra di dalam arsip (misalnya BMP, GIF, TIFF, PCX, JPG, dan

lain-lain). Dua format yang populer saat ini dan seolah-olah menjadi standard

adalah GIF dan JPG. Pembahasan format-format citra di dalam arsip diluar

cakupan buku ini, namun khusus format bitmap  (BMP) akan diberikan di dalam

Bab 3 ini sebagai satu studi kasus.

Algoritma 3.6 berisi prosedur untuk membaca citra hitam-putih ( greyscale) dari

dalam arsip yang berisi data citra mentah (raw image). Disebut data citra mentahkarena arsip tersebut hanya berisi ukuran citra dan nilai keabuan setiap  pixel .

Tidak ada informasi lain di dalam arsip selain ukuran citra. Ukuran citra

 panjangnya 32 bit, masing-masing 16 bit (atau 2 byte) untuk tinggi ( N ) dan 16 bit

untuk lebar ( M ).  Byte-byte  berikutnya berisi nilai keabuan setiap  pixel  di dalam

citra. Setiap pixel  berukuran 1 byte. Gambar 3.3 memperlihatkan susunan byte di

dalam arsip yang berisi data citra mentah.

N M 

2 byte 2 byte

...

M  byte

... ...

M  byte

...

M  byte

N  kali 

...

...

 Gambar 3.3. Susunan data di dalam arsip data citra mentah

Mula-mula kita membaca data tinggi ( N ) dan lebar ( M ) citra. Kita bisa

menggunakan peubah  N  dan  M  yang bertipe unsigned short int   karena tipe ini panjangnya 2 byte. Selanjutnya, data  pixel-pixel di dalam citra dibaca “baris per

 baris”. Setiap baris panjangnya  M  byte. Setiap byte ke- j dari baris i menyatakan

nilai pixel  pada koordinat (i, j). Nilai ini disimpan pada elemen matriks  f [i][ j].

Page 37: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 37/229

 

Bab 3_Struktur Data untuk Citra Digital dan Format Citra Bitmap  37 

void baca_citra_dari_arsip(char nama_arsip[], citra f)/* Membaca citra dari arsip nama_arsip. Citra hasil pembacaan disimpan di

dalam matriks f.

*/{

FILE *fp;

int i, j;unsigned short int N, M;

if((fp=fopen(nama_arsip, “rb”))==NULL){printf(“Arsip tidak ada”);exit(0);

}fread(&N, sizeof(unsigned short int), 1, fp); /* baca tinggi citra */fread(&M, sizeof(unsigned short int), 1, fp); /* baca lebar citra */

f = alokasi(N, M) /* alokasi memori matriks untuk citra f */if(f==NULL){ printf(“Memori tidak cukup”);

exit(0);}

/* baca data citra baris demi baris */for(i=0; i<N; i++)

{/* baca data citra baris ke-i */fread(f[i], sizeof(citraunsigned char), M, fp);

}close(fp);

}

Algor i tma 3.6.  Prosedur membaca citra dari arsip. 

3.4 Menyimpan Citra ke dalam Arsip

Operasi menyimpan citra ke dalam arsip merupakan kebalikan dari operasi arsip.

Citra disimpan di dalam dengan susunan yang sama seperti pada Gambar 3.3.

Algoritma 3.7 berisi prosedur menyimpan citra ke dalam arsip. Ukuran citra ( N  

dan M ) disimpan pada awal arsip. Selanjutnya, data citra disimpan baris per baris

 pixel .

void tulis_citra_ke_arsip(char nama_arsip[], citra f)/* Menulis citra f ke dalam arsip nama_arsip. */{

FILE *fp;int i, j;unsigned short int N, M;

if((fp=fopen(nama_arsip, “wb”))==NULL){printf(“Arsip tidak dapat dibuat”);

Page 38: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 38/229

 

38 Pengolahan Citra Digital

 

exit(0);}fwrite(N, sizeof(unsigned short int), 1, fp); /* tulis tinggi citra */fwrite(M, sizeof(unsigned short int), 1, fp); /* tulis lebar citra */

/* baca data citra baris demi baris */  for(i=0; i<N; i++){

/* tulis data citra baris ke-i */  fwrite(f[i], sizeof(unsigned char), M, fp);

}close(fp);

}

Algor i tma 3.7.  Prosedur menulis citra ke dalam arsip.

3.5 Format BerkasBi tmap 

 Citra disimpan di dalam berkas ( file) dengan format tertentu. Format citra yang

 baku di lingkungan sistem operasi Microsoft Windows dan IBM OS/2 adalah

 berkas bitmap  (BMP). Saat ini format BMP memang “kalah” populer

dibandingkan format JPG atau GIF. Hal ini karena berkas BMP pada umumnya

tidak dimampatkan, sehingga ukuran berkasnya relatif lebih besar daripada

 berkas JPG maupun GIF. Hal ini juga yang menyebabkan format BMP sudah

 jarang digunakan.

Meskipun format BMP tidak mangkus dari segi ukuran berkas, namun format

BMP mempunyai kelebihan dari segi kualitas gambar. Citra dalam format BMP

lebih bagus daripada citra dalam format yang lainnya, karena citra dalam formatBMP umumnya tidak dimampatkan sehingga tidak ada informasi yang hilang

(pemampatan citra dibahas secara mendalam di dalam Bab 10). Terjemahan

 bebas bitmap  adalah pemetaan bit. Artinya, nilai intensitas  pixel  di dalam citra

dipetakan ke sejumlah bit tertentu. Peta bit yang umum adalah 8, artinya setiap

 pixel   panjangnya 8 bit. Delapan bit ini merepresentasikan nilai intensitas  pixel .

Dengan demikian ada sebanyak 28  = 256 derajat keabuan, mulai dari 0 sampai

255.

Citra dalam format BMP ada tiga macam: citra biner, citra berwarna, dan citra

hitam-putih ( greyscale). Citra biner hanya mempunyai dua nilai keabuan, 0 dan 1.

Oleh karena itu, 1 bit sudah cukup untuk merepresentasikan nilai  pixel . Citra berwarna adalah citra yang lebih umum. Warna yang terlihat pada citra bitmap 

merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau, dan biru. Setiap

 pixel   disusun oleh tiga komponen warna:  R  (red ), G  ( green), dan  B  (blue).

Kombinasi dari ketiga warna  RGB tersebut menghasilkan warna yang khas untuk

 pixel   yang bersangkutan. Pada citra 256 warna, setiap  pixel   panjangnya 8 bit,

tetapi komponen warna  RGB-nya disimpan di dalam tabel  RGB  yang disebut

Page 39: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 39/229

 

Bab 3_Struktur Data untuk Citra Digital dan Format Citra Bitmap  39 

palet. Setiap komponen panjangnya 8 bit, jadi ada 256 nilai keabuan untuk warna

merah, 256 nilai keabuan untuk warna hijau, dan 256 nilai keabuan untuk warna

 biru. Nilai setiap  pixel   tidak menyatakan derajat keabuannya secara langsung,

tetapi nilai  pixel  menyatakan indeks tabel  RGB yang memuat nilai keabuan merah

( R), nilai keabuan hijau (G), dan nilai keabuan biru ( B) untuk  pixel   yang bersangkutan. Pada citra hitam-putih, nlai  R = G =  B  untuk menyatakan bahwa

citra hitam-putih hanya mempunyai satu kanal warna. Citra hitam-putih

umumnya adalah cira 8-bit.

Citra yang lebih kaya warna adalah citra 24-bit. Setiap  pixel  panjangnya 24 bit,

karena setiap  pixel   langsung menyatakan komponen warna merah, komponen

warna hijau, dan komponen warna biru. Masing-masing komponen panjangnya 8

 bit. Citra 24-bit disebut juga citra 16 juta warna, karena ia mampu menghasilkan

224 = 16.777.216 kombinasi warna.

Saat ini beredar tiga versi berkas bitmap, (i) berkas bitmap  versi lama dari Microsoft Windows atau IBM OS/2, (ii) berkas bitmap versi baru dari Microsoft

Windows, dan (iii) berkas bitmap versi baru dari IBM OS/2. Yang membedakan

ketiga versi berkas tersebut adalah panjang header -nya.  Header  adalah data yang

terdapat pada bagian awal berkas citra. Data di dalam header   berguna untuk

mengetahui bagaimana citra dalam format bitmap dikodekan dan disimpan. Data

di dalam header   misalnya ukuran citra, kedalaman  pixel , ofset ke data bitmap,

dan sebagainya.

Setiap berkas bitmap terdiri atas header  berkas, header   bitmap, informasi palet,

dan data bitmap (Gambar 3.4).

 Header  berkas  Header  bitmap Informasi palet Data bitmap 

←  14 byte  →←  12 s/d 64 byte →←  0 s/d 1024 byte →←   N  byte  → 

Gambar 3.4.   Format berkas bitmap

Ukuran header   berkas sama untuk semua versi, yaitu 14 byte. Tabel 3.1

memperlihatkan  field - field   penyusun header   berkas. Ukuran header   bitmap 

 berbeda-beda untuk setiap versi. Untuk berkas bitmap versi lama, header bitmap 

 berukuran 12 byte  (Tabel 3.2), untuk berkas bitmap  versi baru dari  Microsoft

Windows, header bitmap berukuran 40 (Tabel 3.3), dan untuk berkas bitmap versi

 baru dari IBM OS/2, header   bitmap berukuran 64 byte (Tabel 3.4).

Page 40: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 40/229

 

40 Pengolahan Citra Digital

 

Tabel 3.1. Header berkas bitmap (panjang = 14 byte)

Byte  ke- Panjang (byte ) Nama Keterangan

1 – 2 2 BmpType Tipe berkas bitmap:

BA = bitmap array, CI = icon BM = bitmap, CP = color pointer  PT = pointer  

3 – 6 4  BmpSize Ukuran berkas bitmap 

7 – 8 2  XhotSpot X hotspot  untuk kursor

9 – 10 2 YhotSpot Y hotspot  untuk kursor

11 – 14 4 OffBits Ofset ke awal data bitmap (dalam byte)

Tabel 3.2. Header  bitmap versi lama dari Microsoft Windows (12 byte)

Byte  ke- Panjang (byte ) Nama Keterangan

1 – 4 4 HdrSize Ukuran header  dalam satuan byte 

5 – 6 2 Width Lebar bitmap dalam satuan pixel  

7 – 8 2  Height Tinggi bitmap dalam satuan pixel  

9 – 10 2  Planes Jumlah plane (umum- nya selalu satu)

11 – 12 2  BitCount Jumlah bit per pixel  

Tabel 3.3.  Header bitmap versi baru dari Microsoft Windows (40 byte)

Byte  ke- Panjang (byte ) Nama Keterangan

1 – 4 4 HdrSize Ukuran header  dalam satuan byte 

5 – 8 4 Width Lebar bitmap dalam satuan pixel  

9 – 12 4  Height Tinggi bitmap dalam satuan pixel  

13 – 14 2  Planes Jumlah plane (umum- nya selalu satu)

15 – 16 2  BitCount Jumlah bit per pixel  

17 – 20 4 Compression 0=tak dimampatkan, 1=dimampatkan

21 – 24 4  ImgSize Ukuran bitmap dalam byte 

25 – 28 4  HorzRes Resolusi horizontal

29 – 32 4 VertRes Resolusi vertikal

33 – 36 4 ClrUsed Jumlah warna yang digunakan

37 – 40 4 ClrImportant Jumlah warna yang penting

Page 41: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 41/229

 

Bab 3_Struktur Data untuk Citra Digital dan Format Citra Bitmap  41 

Tabel 3.4.  Header bitmap versi baru dari IBM OS/2 (64 byte) 

Byte  ke- Panjang (byte ) Nama Keterangan

1 – 4 4 HdrSize Ukuran header  dalam satuan byte 

5 – 8 4 Width Lebar bitmap dalam satuan pixel  9 – 12 4  Height Tinggi bitmap dalam satuan pixel  

13 – 14 2  Planes Jumlah plane (umumnya selalu satu)

15 – 16 2  BitCount Jumlah bit per pixel  

17 – 20 4 Compression 0 = tak dimampatkan,

1 = dimampatkan

21 – 24 4  ImgSize Ukuran bitmap dalam byte 

25 – 28 4  HorzRes Resolusi horizontal

29 – 32 4 VertRes Resolusi vertikal

33 – 36 4 ClrUsed Jumlah warna yang digunakan

37 – 40 4 ClrImportant Jumlah warna yang penting

41 – 42 2 Units Satuan pengukuran yang dipakai

43 – 44 2  Reserved Field  Cadangan

45 – 46 2  Recording Algoritma perekaman

47 – 48 2  Rendering Algoritma halftoning  

49 – 52 4 Size1  Nilai ukuran 1

53 – 56 4 Size2  Nilai ukuran 2

57 – 60 4 ClrEncoding Pengkodean warna

61 – 64 4 Identifier Kode yang digunakan aplikasi

Informasi palet warna terletak sesudah header   bitmap. Informasi palet warna

dinyatakan dalam suatu tabel  RGB. Setiap entry  pada tabel terdiri atas tiga buah

 field , yaitu R (red ), G ( green), dan B (blue).

Data bitmap  diletakkan sesudah informasi palet. Penyimpanan data bitmap di

dalam berkas disusun terbalik dari bawah ke atas dalam bentuk matriks yang

 berukuran Height  × Width. Baris ke-0 pada matriks data bitmap menyatakan data

 pixel  di citra baris terbawah, sedangkan baris terakhir pada matriks menyatakan

data pixel  di citra baris teratas.

Contoh format citra 8-bit kira-kira seperti Gambar 3.5. Format citra 4-bit (16

warna) serupa dengan format citra 8-bit. Pada citra 4-bit dan citra 8-bit, warna

suatu  pixel   diacu dari tabel informasi palet pada entry  ke-k   (k  merupakan nilai

dengan rentang 0 – 15 untuk citra 16 warna dan 0 – 255 untuk citra 256 warna).Sebagai contoh pada Gambar 3.5,  pixel  pertama bernilai 2; warna  pixel  pertama

ini ditentukan oleh komponen RGB pada tabel palet warna entry ke-2, yaitu  R =

14, G = 13, dan  B = 16.  Pixel  kedua serupa dengan  pixel  pertama.  Pixel  ketiga

 bernilai 1, warnanya ditentukan oleh komponen RBG pada tabel warna entry ke-

1, yaitu  R  = 20, G  = 45, dan  B  = 24. Demikian seterusnya untuk  pixel-pixel  

lainnya. Khusus untuk citra hitam-putih (8 bit), komponen R, G, dan B suatu pixel  

Page 42: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 42/229

 

42 Pengolahan Citra Digital

 

 bernilai sama dengan data bitmap  pixel   tersebut. Jadi,  pixel   dengan nilai data

bitmap 129, memiliki nilai R = 129, G = 129, dan B = 129.

<header berkas>

<header bitmap>

< palet warna RGB>

R G B

1 20 45 24

2 14 13 16

3 12 17 15

256 46 78 25

<data bitmap>

2 2 1 1 1 3 5 …

Gambar 3.5.  Format citra 8-bit (256 warna)

Berkas citra 24-bit (16,7 juta warna) tidak emmpunyai palet  RGB, karena nilai

 RGB  langsung diuraikan dalam data bitmap. Setiap elemen data bitmap 

 panjangnya 3 byte, masing-masing byte  menyatakan komponen  R, G, dan  B.

Contoh format citra 24-bit (16 juta warna) kira-kira seperti pada Gambar 3.6.

Pada contoh format citra 24-bit tersebut  pixel  pertama mempunyai  R = 20, G =

19, B = 21, pixel  kedua mempunyai  R = 24, G = 24, B = 23. Demikian seterusnya

<header berkas>

<header  bitmap>

<data bitmap>

20 19 21 24 24 23 24 …

Gambar 3.6.  Format citra 24-bit (16,7 juta warna)

Tabel 3.5 memperlihatkan panjang informasi palet untuk setiap versi bitmap,

masing-masing untuk citra 16 warna, 256 warna, dan 16,7 juta warna.

Page 43: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 43/229

 

Bab 3_Struktur Data untuk Citra Digital dan Format Citra Bitmap  43 

Tabel 3.5.  Panjang informasi palet untuk setiap versi berkas bitmap

Citra m  warna Versi lama(Windows )

Versi baru(Windows )

Versi baru

(OS/2)

Citra 16 warna 48 byte  64 byte  64 byte 

Citra 256 warna 768 byte  1024 byte  1024 byte 

Citra 16,7 juta warna 0 byte  0 byte  0 byte 

3.6 Primitif Citra Bi tmap  

Meskipun saat ini kakas pemrograman visual (visual programming ) seperti Visual

C++,  Delphi, Borland C++ Builder , dan lain-lain, sudah banyak memberikan

kemudahan untuk memprogram citra bitmap  (dengan menyediakan komponen,struktur data, dan metode-metode untuk mengkases citra bitmap), namun ada

 baiknya kita membuat sendiri primitif-primitif citra bitmap. Primitif tersebut

adalah berupa fungsi dan prosedur untuk membaca citra dari arsip, menyimpan

citra ke dalam arsip, dan menampilkan citra ke layar.

Berikut ini diberikan beberapa primitif citra bitmap. Citra bitmap yang ditangani

hanyalah citra dengan kedalaman 8-bit (256 warna) dan citra 24-bit (16,7 juta

warna), baik berupa citra skala-abu maupun citra berwarna. Citra biner (1-bit)

tidak ditangani di sini karena citra biner dimampatkan dengan metode  RLE  ( Run

 Length Encoding ). Hingga bab 3 ini kita belum membicarkan metode

 pemampatan citra. Pembahasan mengenai metode RLE dapat anda baca di dalamBab 10.

1.  Berkas header  

 Nama arsip: bitmap.h 

Penjelasan: Berkas header  berisi struktur data untuk citra bitmap 

#ifndef bitmap_H#define bitmap_H

#include <stdio.h>#include <io.h>

#include <stdlib.h>#include <alloc.h>

/* maksimum derajat keabuan */#define DERAJAT_KEABUAN 255

/* tipe data citra bitmap 8-bit */#define TIPE_CITRA unsigned char

Page 44: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 44/229

 

44 Pengolahan Citra Digital

 

/* tipe data citra bitmap 24-bit */typedef struct{

unsigned char R;unsigned char G;unsigned char B;

} TIPE_CITRA24BIT;

TIPE_CITRA **Image; /* Matriks bitmap citra 8-bit */TIPE_CITRA24BIT **Image24bit; /* Matriks bitmap citra 24-bit */

/* HEADER BERKAS CITRA BMP, ada dua macam, yaitu header arsipdan header data bitmap (BMP) */

/* 1. Header arsip */unsigned char TipeBMP1;unsigned char TipeBMP2;

unsigned long UkuranBMP;unsigned short int XhotSpot;unsigned short int YhotSpot;unsigned int OffBits;

/* 2.Header data bitmapa. Ukuran header data BMP: 12 byte (versi lama), 40 byte (versi baru

Windows), dan 64 byte (versi OS 2)*/unsigned long UkuranHeader;

/* b.1. Header data BMP versi lama */unsigned short int LebarBMPvLama;unsigned short int TinggiBMPvLama;unsigned short int BidangBMPvLama;unsigned short int JumlahBitBMPvLama;

/* b.2. Header data BMP versi Windows */

unsigned int LebarBMPvBaru;unsigned int TinggiBMPvBaru;unsigned short int BidangBMPvBaru;unsigned short int JumlahBitBMPvBaru;unsigned int MampatBMPvBaru;unsigned int UkuranCitraBMPvBaru;unsigned int ResolusiHorizontalBMPvBaru;unsigned int ResolusiVertikalBMPvBaru;unsigned int WarnaTerpakaiBMPvBaru;unsigned int WarnaPentingBMPvBaru;

/* b.3. Header data BMP versi OS 2 */unsigned int LebarBMPvOS2;unsigned int TinggiBMPvOS2;unsigned short int BidangBMPvOS2;unsigned short int JumlahBitBMPvOS2;

unsigned int MampatBMPvOS2;unsigned int UkuranCitraBMPvOS2;unsigned int ResolusiHorizontalBMPvOS2;unsigned int ResolusiVertikalBMPvOS2;

unsigned int WarnaTerpakaiBMPvOS2;unsigned int WarnaPentingBMPvOS2;unsigned short int UnitBMPvOS2;unsigned short int CadanganBMPvOS2;unsigned short int PerekamanBMPvOS2;unsigned short int RenderingBMPvOS2;

Page 45: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 45/229

 

Bab 3_Struktur Data untuk Citra Digital dan Format Citra Bitmap  45 

unsigned int Ukuran1BMPvOS2;unsigned int Ukuran2BMPvOS2;unsigned int PengkodeanWarnaBMPvOS2;unsigned int PenciriBMPvOS2;

/* 3. Informasi palet */typedef struct{

unsigned char R;unsigned char G;unsigned char B;

} RGBvLama;

typedef struct{

unsigned char R;unsigned char G;

unsigned char B;unsigned char cadangan;

} RGBvBaru;

/* peubah-peubah bantu */RGBvLama *paletVlama;RGBvBaru *paletVbaru;int lebar, tinggi, jumlahpalet, jumlahbit;char* NamaArsip;

/* Purwarupa fungsi yang digunakan */void **alokasi(int N, int M, int UkuranElemen);void *xalloc(unsigned ukuran);void BacaBerkasCitra(char *NamaArsip);void AlokasiMemoriCitra(int N, int M);void AlokasiMemoriCitra24Bit(int N, int M);void BacaHeader(FILE *fp);void BacaDataBitmap(FILE *masukan, N, int M);void TampilkanCitra(int N, int M);

void DealokasiMemoriCitra(int N, int jumlahbit);

#endif

Algor i tma 3.8.  Berkas bitmap.h.

2.  Membaca citra dari arsip.

 Nama fungsi: BacaBerkasCitra(char *NamaArsip)

 Include: bitmap.h

Penjelasan: Fungsi untuk membaca citra dari arsip.

void BacaBerkasCitra(char *NamaArsip)

/* Membaca citra bitmap dari arsip */{

FILE *fp; /* berkas masukan */int i, j;

fp=fopen(NamaArsip,"rb");

/* Baca header berkas citra masukan */

Page 46: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 46/229

 

46 Pengolahan Citra Digital

 

BacaHeader(fp);

/* Alokasi memori untuk citra */if (jumlahbit == 8) /* citra 8 bit */

AlokasiMemoriCitra(lebar, tinggi);else

if (jumlahbit == 24) /* citra 24 bit */AlokasiMemoriCitra24Bit(lebar, tinggi);

else{printf(“Tidak menangani citra selain 8-bit dan 24-bit”);exit(0);

}

/* baca seluruh pixel citra */BacaDataBitmap(fp, lebar, tinggi);fclose(fp);

/* Tampilkan citra yang sudah dibaca dari arsip */TampilkanCitra(lebar, tinggi);

}

Algor i tm a 3.9. Membaca citra dari arsip.

3.  Membaca header  berkas bitmap.

 Nama fungsi: BacaHeader(FILE *fp)

 Include: bitmap.h 

Penjelasan: Fungsi untuk membaca header  berkas bitmap. 

void BacaHeader(FILE *fp)/* Membaca header berkas citra BMP. fp adalah berkas citra yangdimampatkan. */{

/* Baca header arsip */fread(&TipeBMP1,sizeof(unsigned char),1,fp);fread(&TipeBMP2,sizeof(unsigned char),1,fp);fread(&UkuranBMP,sizeof(unsigned long),1,fp);fread(&XhotSpot,sizeof(unsigned short int),1,fp);fread(&YhotSpot,sizeof(unsigned short int),1,fp);

fread(&OffBits,sizeof(unsigned int),1,fp);

if (TipeBMP1 == 'B' && TipeBMP2 == 'M'){

fread(&UkuranHeader,sizeof(unsigned long),1,fp); /*baca ukuran headerBMP */

if (UkuranHeader==12) /* berkas BMP versi lama */{

/* baca header BMP versi lama */

fread(&LebarBMPvLama,sizeof(unsigned short int),1,fp);fread(&TinggiBMPvLama,sizeof(unsigned short int),1,fp);fread(&BidangBMPvLama,sizeof(unsigned short int),1,fp);fread(&JumlahBitBMPvLama,sizeof(unsigned short int),1,fp);

tinggi = (int) TinggiBMPvLama; /* tinggi citra */lebar = (int) LebarBMPvLama; /* lebar citra */  

Page 47: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 47/229

 

Bab 3_Struktur Data untuk Citra Digital dan Format Citra Bitmap  47 

jumlahbit = (int) JumlahBitBMPvLama; /* kedalaman warna */}else{if (UkuranHeader==40) /* berkas BMP versi Windows */  {

/* baca hader BMP versi Windows */fread(&LebarBMPvBaru,sizeof(unsigned int),1,fp);

fread(&TinggiBMPvBaru,sizeof(unsigned int),1,fp);fread(&BidangBMPvBaru,sizeof(unsigned short int),1,fp);fread(&JumlahBitBMPvBaru,sizeof(unsigned short int),1,fp);fread(&MampatBMPvBaru,sizeof(unsigned int),1,fp);fread(&UkuranCitraBMPvBaru,sizeof(unsigned int),1,fp);fread(&ResolusiHorizontalBMPvBaru,sizeof(unsigned int),1,fp);fread(&ResolusiVertikalBMPvBaru,sizeof(unsigned int),1,fp);fread(&WarnaTerpakaiBMPvBaru,sizeof(unsigned int),1,fp);fread(&WarnaPentingBMPvBaru,sizeof(unsigned int),1,fp);

tinggi = (int) TinggiBMPvBaru; /* tinggi citra */lebar = (int) LebarBMPvBaru; /* lebar citra */  jumlahbit = (int) JumlahBitBMPvBaru; /* kedalaman pixel */  

}else /* UkuranHeader = 64, berkas BMP versi OS2 */

{/* baca header BMP versi OS2 */fread(&JumlahBitBMPvOS2,sizeof(unsigned short int),1,fp);fread(&MampatBMPvOS2,sizeof(unsigned int),1,fp);

fread(&UkuranCitraBMPvOS2,sizeof(unsigned int),1,fp);fread(&ResolusiHorizontalBMPvOS2,sizeof(unsigned int),1,fp);fread(&ResolusiVertikalBMPvOS2,sizeof(unsigned int),1,fp);fread(&WarnaTerpakaiBMPvOS2,sizeof(unsigned int),1,fp);fread(&WarnaPentingBMPvOS2,sizeof(unsigned int),1,fp);fread(&UnitBMPvOS2,sizeof(unsigned short int),1,fp);fread(&CadanganBMPvOS2,sizeof(unsigned short int),1,fp);fread(&PerekamanBMPvOS2,sizeof(unsigned short int),1,fp);fread(&RenderingBMPvOS2,sizeof(unsigned short int),1,fp);

fread(&Ukuran1BMPvOS2,sizeof(unsigned int),1,fp);fread(&Ukuran2BMPvOS2,sizeof(unsigned int),1,fp);fread(&PengkodeanWarnaBMPvOS2,sizeof(unsigned int),1,fp);fread(&PenciriBMPvOS2,sizeof(unsigned int),1,fp);

tinggi = (int) TinggiBMPvOS2; /* tinggi citra */lebar = (int) LebarBMPvOS2; /* lebar citra */jumlahbit = (int) JumlahBitBMPvOS2; /* kedalaman warna */  

}}

/* baca palet */if (UkuranHeader==12) /* citra BMP versi lama */{

jumlahpalet = 1 << JumlahBitBMPvLama; /* 2^JumlahBitBMPvLama */paletVlama = (RGBvLama*) malloc (jumlahpalet*sizeof(RGBvLama));

fread(paletVlama,sizeof(RGBvLama),jumlahpalet,fp);}else /* citra BMP versi baru */

if (UkuranHeader==40)

{if (JumlahBitBMPvBaru != 24){if (WarnaTerpakaiBMPvBaru == 0)

jumlahpalet = 1 << JumlahBitBMPvBaru;else

Page 48: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 48/229

 

48 Pengolahan Citra Digital

 

jumlahpalet = WarnaTerpakaiBMPvBaru;

paletVbaru = (RGBvBaru*) malloc (jumlahpalet*sizeof(RGBvBaru));fread(paletVbaru,sizeof(RGBvBaru),jumlahpalet,fp);

}}else

if (UkuranHeader==64)

{if (JumlahBitBMPvOS2 != 24){

if (WarnaTerpakaiBMPvOS2 == 0)jumlahpalet = 1 << JumlahBitBMPvOS2;

elsejumlahpalet = WarnaTerpakaiBMPvOS2;

paletVbaru = (RGBvBaru*)malloc(jumlahpalet*sizeof(RGBvBaru));

fread(paletVbaru,sizeof(RGBvBaru),jumlahpalet,fp);}

}}

else{printf("Bukan berkas citra bitmap");exit(0);

}}

Algor i tm a 3.10. Pembacaan header berkas bitmap.

4.  Membaca data bitmap.

 Nama fungsi: BacaDataBitmap(FILE *fp, int N, int M)

 Include: bitmap.h Penjelasan: Fungsi untuk membaca data bitmap. 

void BacaDataBitmap(FILE *fp, int N, int M)/* Membaca data pixel dari berkas masukan fp untuk citra yang berukuran Nx M */{

int i, j, k;

switch (jumlahbit){

case 8:{

for (i=N-1; i>=0; i--)/* Baca pixel per baris */

if (fread(Image[i],sizeof(TIPE_CITRA),M,fp)!= (unsigned int)M){

printf("Data bitmap tidak lengkap");

exit(0);}

break;}case 24:{

Page 49: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 49/229

 

Bab 3_Struktur Data untuk Citra Digital dan Format Citra Bitmap  49 

for (i=N-1; i>=0; i--)/* Baca pixel per baris */if (fread(Image24bit[i],sizeof(TIPE_CITRA24BIT),M,fp)!= (unsigned

int)M){

printf("Data bitmap tidak lengkap");exit(0);

}

break;}default:{

printf("Bukan format citra 8 atau 24 bit");exit(0);

}}

}

Algor i tm a 3.11. Pembacaan header berkas bitmap. 

5.  Menampilkan citra ke layar.

 Nama fungsi: TampilkanCitra(int N, int M)

 Include: bitmap.h 

Penjelasan: Fungsi untuk menampilkan citra ke layar . 

void TampilkanCitra(int N, int M)/* Menampilkan citra yang berukura N x M ke layar */{

COLORREF TabelWarna[256]; /* Tabel warna (palet) citra BMP */HDC MemDC; /* Handle ke memory device context */  

HBITMAP mbitmap; /* Handle ke citra */  HWND hwnd; /* Handle ke window */

int palet, /* indeks palet pixel */  i, j;

hwnd = GetActiveWindow();MemDC = CreateCompatibleDC(GetDC(hwnd));

mbitmap = CreateCompatibleBitmap(GetDC(hwnd), M, N);SelectObject(MemDC, mbitmap);

switch (jumlahbit){

case 8:{

/* Definisikan palet */for (i=0; i<jumlahpalet; i++){

if (UkuranHeader==40 ||UkuranHeader==64) /* bitmap versi baru */TabelWarna[i]=GetNearestColor(MemDC, RGB(paletVbaru[i].B,

paletVbaru[i].G,paletVbaru[i].R));

else /*UkuranHeader=12, bitmap versi lama */TabelWarna[i]=GetNearestColor(MemDC, RGB(paletVlama[i].B,

paletVlama[i].G,paletVlama[i].R));

Page 50: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 50/229

 

50 Pengolahan Citra Digital

 

}/* Isikan pixel ke memori device (layar) */for (i=0; i<N; i++)

for (j=0; j<M; j++){ palet = Image[i][j];

SetPixelV(MemDC, j, i, TabelWarna[palet]);}

/* Tembakkan citra ke layar */BitBlt(GetDC(hwnd), 0, 0, M, N, MemDC, 0, 0, SRCCOPY);break;

}case 24:{

for (i=0; i<N; i++)for (j=0; j<M; j++){ palet = GetNearestColor(MemDC, RGB(Image24bit[i][j].B,

Image24bit[i][j].G,Image24bit[i][j].R));

SetPixelV(MemDC, j, i, palet);}

/* Tembakkan citra ke layar */BitBlt(GetDC(hwnd), 0, 0, M, N, MemDC, 0, 0, SRCCOPY);

}}

}

Algor i tm a 3.12. Menampilkan citra ke layar.

6.  Alokasi/dealoaksi memori matriks (citra).

 Nama fungsi: a. AlokasiMemoriCitra(int N, int M)

 b. AlokasiMemoriCitra24Bit(int N, int M) c. **alokasi(int N, int M, int UkuranElemen)

d. *xalloc(unsigned ukuran)

e. DealokasiMemoriCitra(int N, int jumlahbit) 

 Include: bitmap.h 

Penjelasan: Fungsi-fungsi untuk alokasi/dealokasi memori matriks.

void AlokasiMemoriCitra(int N, int M, int jumlahbit)/* Mengalokasikan memori untuk citra 8-bit yang berukuran N x M */{

Image = (TIPE_CITRA**) alokasi (N, M, sizeof(TIPE_CITRA));}

void AlokasiMemoriCitra24Bit(int N, int M, int jumlahbit)/* Mengalokasikan memori untuk citra 24-bit yang berukuran N x M */{

Image24bit = (TIPE_CITRA24BIT**) alokasi (N, M, sizeof(TIPE_CITRA24BIT));

}

void *xalloc(unsigned ukuran)

Page 51: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 51/229

 

Bab 3_Struktur Data untuk Citra Digital dan Format Citra Bitmap  51 

/* Mengalokasikan memori dan memeriksa apakah alokasi memori berhasil */{

void *p = malloc(ukuran);if (p==NULL){

printf("Memori tidak cukup untuk alokasi matriks");exit(0);

}

return p;}

void **alokasi(int N, int M, int UkuranElemen)/* Mengalokasi memori untuk matriks yang berukuran N x M. Setiap elemenmartiks

berukuran UkuranElemen byte.

*/{

int i;void **larik = (void**)xalloc(N * sizeof(void *));

for (i=0; i<N; i++)larik[i] = (void*)xalloc(M * UkuranElemen);

return larik;}

void DealokasiMemoriCitra(int N, int jumlahbit)/* Mengembalikan memori yang digunakan oleh matriks */{

int i;

if (jumlahbit!=24){

for (i=0; i<N; i++)

{free(citra[i]);}free(citra);

}else{

for (i=0; i<N; i++)

{

free(citra24bit[i]);}free(citra24bit);

}}

Alg ori tm a 3.13.  Alokasi/dealokasi memori matr iks.

Gambar 3.7 adalah contoh antarmuka program yang membaca dan menampilkan

citra bitmap  ke layar, dengan menggunakan primitif-primitif bitmap  yang sudah

Page 52: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 52/229

 

52 Pengolahan Citra Digital

 

disebutkan di atas. Program dibuat dengan  Borland C++ Bulder 6 dan diberi

nama SimpleView. Pengguna membuka citra bitmap dengan memilih nama berkas

citra dari daftar arsip. Citra bitmap  yang dibuka kemudian ditampilkan ke layar.

Contoh citra yang ditampilkan adalah citra girl .

Gamb ar 3.7   Program SimpleView untuk membuka dan menampilkan citra bitmap(dibuat dengan Borland C++ Builder)

Page 53: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 53/229

 

Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 41 

Bab 4

Operasi-operasi Dasar Pengolahan

Citra Dijital

itra dijital direpresentasikan dengan matriks. Operasi pada citra dijital pada

dasarnya adalah memanipulasi elemen-elemen matriks. Elemen matriks

yang dimanipulasi dapat berupa elemen tunggal (sebuah  pixel ),

sekumpulan elemen yang berdekatan, atau keseluruhan elemen matriks. Di dalam

 bab ini akan diuraikan operasi-operasi dasar pada pengolahan citra dijital.

4.1 Aras Komputasi

Operasi-operasi yang dilakukan pada pengolahan citra dapat dikelompokkan ke

dalam empat aras (level ) komputasi, yaitu aras titik, aras lokal, aras global, dan

aras objek [JAI95]. Kita mulai pembahasan komputasi pada aras titik.

1.  Aras TitikOperasi pada aras titik hanya dilakukan pada pixel  tunggal di dalam citra. Operasi

titik dikenal juga dengan nama operasi  pointwise. Operasi ini terdiri dari

 pengaksesan  pixel  pada lokasi yang diberikan, memodifikasinya dengan operasi

operasi lanjar (linear ) atau nirlanjar (nonlinear ), dan menempatkan nilai  pixel  

 baru pada lokasi yang bersesuaian di dalam citra yang baru. Operasi ini diulangiuntuk keseluruhan pixel  di dalam citra.

Secara matematis, operasi pada aras titik dinyatakan sebagai (Gambar 4.1):

 f  B( x, y) = Otitik { f  A( x, y)} (4.1)

C

Page 54: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 54/229

 

42 Pengolahan Citra Digital

yang dalam hal ini  f  A  dan  f  B  masing-masing adalah citra masukan dan citra

keluaran, Otitik   dapat berupa operasi lanjar (linear ) atau nirlanjar (nonlinear ).

Yang dimaksud dengan operasi lanjar adalah operasi yang dapat dinyatakan

secara matematis sebagai persamaan lanjar, kebalikannya adalah persamaan

nirlanjar.

Otitik 

{ f  ( x, y)}

 

Gambar 4.1 Operasi aras titik pada citra dijital.

Operasi pada aras titik dapat dibagi menjadi tiga macam: berdasarkan intensitas, berdasarkan geometri, atau gabungan keduanya.

a.   Berdasarkan intensitas.

 Nilai intensitas u  suatu  pixel   diubah dengan transformasi h  menjadi nilai

intensitas baru v:

v = h(u), u, v ∈ [0, L] (4.2)

Contoh operasi titik berdasarkan intensitas adalah operasi pengambangan

(thresholding ). Pada operasi pengambangan, nilai intensitas  pixel   dipetakan ke

salah satu dari dua nilai, a1 atau a2, berdasarkan nilai ambang (threshold ) T :

 f ( x, y)’ =

<

T  y x f a

T  y x f a

),(,

),(,

2

1  (4.3)

Jika a1  = 0 dan a2 = 1, maka operasi pengambangan mentransformasikan citra

hitam-putih ke citra biner. Dengan kata lain, nilai intensitas  pixel   semula

dipetakan ke dua nilai saja: hitam dan putih. Nilai ambang yang dipakai dapat

 berlaku untuk keseluruhan  pixel   atau untuk wilayah tertentu saja (berdasarkan

 penyebaran nilai intensitas pada wilayah tersebut).

Operasi pengambangan pada citra Lena dengan fungsi transformasi:

 f ( x, y)’ =

≥<

128),(,1

128),(,0

 y x f 

 y x f   (4.4)

Page 55: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 55/229

 

Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 43 

menghasilkan citra biner seperti yang diperlihatkan pada Gambar 4.2(a).

Persamaan 4.4 menyatakan bahwa  pixel-pixel  yang nilai intensitasnya di bawah

128 diubah menjadi hitam (nilai intensitas = 0), sedangkan  pixel-pixel  yang nilai

intensitasnya di atas 128 diubah menjadi putih (nilai intensitas = 1) . Algoritma

transformasi citra hitam-putih menjadi citra biner ditunjukkan oleh Algoritma 4.1.

(a) (b)

Gambar 4.2. (a) Citra biner Lena, (b) citra negatif Lena

void biner(citra A, citra_biner B, int T, int N, int M)/* Membuat citra biner dari citra A berdasarkan nilai ambang (threshold)

T yang dispesifikasikan. Ukuran citra adalah N ×   M. citra_biner adalahtipe data untuk citra biner).*/{ int i, j;citra_biner B;

for (i=0; i<=N-1; i++)for (j=0; j<=M-1; j++){if (A[i][j] < T)

B[i][j] = 0;else

B[i][j] = 1; /* atau diisi dengan 255 pada citra 8-bit */}

}

 Algoritma 4.1. Mengubah citra A menjadi citra biner.

Contoh operasi titik yang lain adalah:

Page 56: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 56/229

Page 57: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 57/229

 

Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 45 

(iii) Pencerahan citra (image brightening )

Kecerahan citra dapat diperbaiki dengan menambahkan (atau mengurangkan)

sebuah konstanta kepada (atau dari) setiap pixel  di dalam citra.

Secara matematis operasi ini ditulis sebagai

 f ( x, y)’ = f ( x, y) + b  (4.8)

Jika b positif, kecerahan citra bertambah, sebaliknya jika b negatif kecerahan

citra berkurang. Lihat contoh pencerahan citra pada Gambar 4.3 yang

diterapkan pada citra Zelda. Semula citra Zelda tampak gelap, tetapi dengan

menambahkan setiap nilai  pixel   dengan b  = 10, citra Zelda menjadi lebih

terang.

Persamaan 4.8 mengisyaratkan bahwa operasi pencerahan citra dapat

menghasilkan nilai di bawah nilai intensitas minimum atau d atas nilai

intensitas maksimum. Oleh karena itu, operasi clipping   perlu diterapkan.

Algoritma pencerahan citra ntuk citra dengan 256 derajat keabuanditunjukkan oleh Algoritma 4.3.

void brightening(citra A, int b, citra B, int N, int M)

/* Pencerahan citra dengan cara menjumlahkan setiap pixel di dalam citra

A dengan sebuah skalar b. Hasil disimpan di dalam citra B. Citra A

berukuran N ×  M.

*/

{ int i, j, temp;

for (i=0; i<=N-1; i++)

for (j=0; j<=M-1; j++)

{

temp = A[i][j] + b;

/* clipping */

if (temp < 0)

B[i][j] = 0;

else

if (temp > 255)

B[i][j]=255;

else

B[i][j]=temp;

}

}

 Algoritma 4.3. Pencerahan citra

Page 58: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 58/229

 

46 Pengolahan Citra Digital

Gambar 4.3. Kiri: citra Zelda (agak gelap); kanan: citra Zelda setelah operasi pencerahan

b.   Berdasarkan geometri.

Posisi  pixel  diubah ke posisi yang baru, sedangkan intensitasnya tidak berubah.

Contoh operasi titik berdasarkan geometri misalnya pemutaran (rotasi), pergeseran

(translasi), penskalaan (dilatasi), pembetulan erotan (distorsi) geometri (akan

dijelaskan kemudian).

c.  Gabungan intensitas dan geometri. 

Operasi ini tidak hanya mengubah nilai intensitas  pixel , tapi juga mengubah

 posisinya. Misalnya image morphing , yaitu perubahan bentuk objek beserta nilai

intensitasnya.

2.  Aras LokalOperasi pada aras lokal menghasilkan citra keluaran yang intensitas suatu  pixel  

 bergantung pada intensitas pixel - pixel  tetangganya (Gambar 4.4).

 f  B( x, y)’ = Olokal{ f  A( xi, y j); ( xi, y j) ∈  N ( x, y) } (4.9)

(keterangan: N  = neighborhood , yaitu pixel-pixel  yang berada di sekitar ( x, y) )

Page 59: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 59/229

 

Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 47 

Olokal

{ f  ( xi, y

i), ( x

i,  yi)  pixel 

di sekitar ( x, y)}

 

Gambar 4.4. Operasi aras lokal

Contoh operasi beraras lokal adalah operasi konvolusi untuk mendeteksi tepi

(edge detection) dan pelembutan citra (image smoothing ). Gambar 4.5 adalah

citra Lena hasil pendeteksian tepi. Konsep pendeteksian tepi dan penghalusan

citra masing-masing akan dibahas di dalam Bab 8 dan Bab 7.

Gambar 4.5. Hasil pendeteksian semua tepi dari citra Lena

3.  Aras GlobalOperasi pada aras global menghasilkan citra keluaran yang intensitas suatu  pixel  

 bergantung pada intensitas keseluruhan pixel  (Gambar 4.6).

 f  B( x, y)’ = Oglobal{ f  A( x, y)} (4.10)

Page 60: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 60/229

 

48 Pengolahan Citra Digital

Oglobal

{ f  ( x,  y)}

 

Gambar 4.6. Operasi aras global

Contoh operasi beraras global adalah operasi penyetaraan histogram untuk

meningkatkan kualitas citra (akan dibahas pada kuliah selanjutnya).

4.  Aras ObjekOperasi jenis ini hanya dilakukan pada objek tertentu di dalam citra. Tujuan dari

operasi pada aras objek adalah untuk mengenali objek tersebut, misalnya dengan

menghitung rata-rata intensitas, ukuran, bentuk, dan karakteristik lain dari objek.

Operasi aras objek adalah operasi yang sangat sulit, karena sebelumnya kita harus

dapat menjawab: apakah objek itu, bagaimana menemukannya?

4.2 Operasi Aritmetika

Karena citra dijital adalah matriks, maka operasi-operasi aritmetika matriks juga

 berlaku pada citra. Operasi matriks yang dapat dilakukan adalah:1.  Penjumlahan atau pengurangan antara dua buah citra A dan B:

C ( x, y) = A( x, y) ±  B( x, y),

2.  Perkalian dua buah citra:

C ( x, y) = A( x, y) B( x, y),

3.  Penjumlahan/pengurangan citra A dengan skalar c:

 B( x, y) = A( x, y) ± c,

4.  Perkalian/pembagian citra A dengan sebuah skalar c:

 B( x, y) = c ⋅  A( x, y)

Page 61: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 61/229

 

Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 49 

Ditinjau dari aras komputasi, operasi aritmetika termasuk ke dalam operasi aras

titik. Penjelasan masing-masing operasi aritmetika matriks adalah sebagai berikut.

1.  Penjumlahan Dua Buah citra

Persamaannya:

C ( x, y) = A( x, y) + B( x, y) (4.11)

C  adalah citra baru yang intensitas setiap  pixel -nya adalah jumlah dari intensitas

tiap  pixel  pada  A dan  B. Jika hasil penjumlahan intensitas lebih besar dari 255,

maka intensitasnya dibulatkan ke 255. Algoritma penjumlahan dua buah citra

ditunjukkan pada Algoritma 4.4.

void addition(citra A, citra B, citra C, int N, int M)/* Menjumlahkan dua buah citra A dan B menjadi citra baru, C.

Citra A, B, dan C masing-masing berukuran N ×  M.*/

{ int i, j, temp;

for (i=0; i<=N-1; i++)for (j=0; j<=M-1; j++){

temp=A[i][j] + B[i][j];if (temp > 255) C[i][j]=255; else C[i][j]=temp;

}}

 Algoritma 4.4.Penjumlahan dua buah citra

Operasi penjumlahan citra dapat digunakan untuk mengurangi pengaruh derau

(noise) di dalam data, dengan cara merata-ratakan derajat keabuan setiap  pixel  dari citra yang sama yang diambil berkali-kali. Misalnya untuk citra yang sama

direkam dua kali, f 1 dan f 2, lalu dihitung intensitas rata-rata untuk setiap pixel :

 f  ‘( x, y) =2

1{ f 1( x, y) + f 2( x, y) }

Hasil operasi mungkin bernilai riil, karena itu semua nilai riil tersebut perlu

dibulatkan ke nilai bulat terdekat, nilai maksimum adalah 255.

2.  Pengurangan Dua Buah Citra

Persamaannya:

C ( x, y) = A( x, y) – B( x, y) (4.12)

Page 62: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 62/229

 

50 Pengolahan Citra Digital

C  adalah citra baru yang intensitas setiap pixel -nya adalah selisih antara intensitas

 pixel  pada A dan B.

Ada kemungkinan hasil operasi ini menghasilkan nilai negatif, oleh karena itu,

operasi pengurangan citra perlu melibatkan operasi clipping .

Contoh aplikasi operasi pengurangan citra adalah untuk memperoleh suatu objek

dari dua buah citra [HEN95]. Citra pertama misalnya foto sebuah ruangan yang

kosong, citra kedua adalah foto ruangan yang sama tetapi ada orang di dalamnya.

Hasil pengurangan citra kedua dengan gambar pertama menghasilkan citra yang

latar belakangnya hitam, sedangkan latar depannya (objek orang) berwarna putih.

Algoritmanya ditunjukkan pada Algoritma 4.5.

void substraction (citra A, citra B, citra C, int N, int M)/* Mengurangkan dua buah citra A dan B menajdi citra baru, C.

Citra A, B, dan C berukuran N ×  M.

*/{ int i, j;

for (i=0; i<=N-1; i++)for (j=0; j<=M-1; j++){C[i][j]=A[i][j] - B[i][j];if (C[i][j] != 0) C[i][j]=255; /* nyatakan objek berwarna putih */

}}

 Algoritma 4.5. Pengurangan dua buah citra untuk mendapatkan objek di dalamnya.

Pengurangan citra juga dapat digunakan untuk mendeteksi perubahan yang terjadiselama selang waktu tertentu bila dua buah citra yang diambil adalah citra dari

adegan yang sama. Teknik semacam ini dipakai pada moving images.

3.  Perkalian Citra

Persamaannya:

C ( x, y) = A( x, y) B( x, y) (4.13)

Perkalian citra sering digunakan untuk mengoreksi kenirlanjaran sensor dengan

cara mengalikan matriks citra dengan matrik koreksi. Jadi, dalam hal ini  A adalah

citra sedangkan  B  adalah matriks koreksi. Hasil operasi mungkin bernilai riil,

karena itu semua nilai dibulatkan ke nilai bulat terdekat, nilai maksimum adalah255. Algoritma perkalian citra dengan matriks koreksi ditunjukkan pada Algoritma

4.3. Kita mengasumsikan di sini ukuran citra dan matriks koreksi adalah N  ×  N .

Page 63: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 63/229

 

Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 51 

Contoh 4.1. [GAL90] Mengalikan citra A dengan matriks koreksi:

24010230

255200242544061

255142120

 

1.00.01.04.0

0.00.00.03.01.00.00.03.0

1.01.04.03.0

 =

25510342

255200322554062

255157170

 

Matriks citra A Matriks koreksi B Matriks keluaran C   

void multiplication(citra A, matriks_riil B, citra C, int N)/* Mengalikan buah citra A dengan matriks koreksi B menjadi citra C.

Citra A, matriks B, dan hasil perkalian C berukuran N ×  N.*/{ int i, j, temp;

for (i=0; i<=N-1; i++)for (j=0; j<=N-1; j++){temp=0;for (k=0; k<=N-1; k++){temp = temp + A[i][k]*B[k][j];

/* clipping */if (temp < 0)C[i][j] = 0;

elseif (temp > 255)

C[i][j]=255;else

C[i][j]=temp;}

}}

 Algoritma 4.6. Perkalian citra A dengan matriks koreksi B.

4.  Penjumlahan/pengurangan citra dengan skalar

Persamaannya:

 B( x, y) = A( x, y) ± c  (4.14)

Penjumlahan citra A dengan skalar c adalah menambah setiap pixel  di dalam citra

dengah sebuah skalar c, dan menghasilkan citra baru  B yang intensitasnya lebihterang daripada A. Kenaikan intensitas sama untuk seluruh pixel , yaitu c.

Page 64: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 64/229

 

52 Pengolahan Citra Digital

Pengurangan citra A dengan skalar c adalah mengurangkan setiap  pixel  di dalamcitra dengah sebuah skalar c, dan menghasilkan citra baru  B yang intensitasnyalebih gelap daripada  A. Penurunan intensitas sama untuk seluruh  pixel , yaitu c.Contoh operasi penjumlahan/pengurangan citra dengan sebuah skalar adalah

operasi pencerahan citra (lihat pembahasan operasi aras titik).

Baik operasi penjumlahan maupun pengurangan citra dengan sebuah skalarmelibatkan operasi clipping . Algoritma penjumlahan/pengurangan citra dengansebuah skalar sama seperti Algoritma 4.3.

5.  Perkalian/pembagian Citra dengan SkalarPersamaannya:

 B( x, y) = c ⋅  A( x, y), dan  B( x, y) = A( x, y) / c  (4.15)

Perkalian citra  A dengan skalar c menghasilkan citra baru  B yang intensitasnyalebih terang daripada  A. Kenaikan intensitas setiap  pixel   sebanding dengan c.Operasi perkalian citra dengan skalar dipakai untuk kalibrasi kecerahan(callibration of brightness).

Pembagian citra A dengan skalar c menghasilkan citra baru  B yang intensitasnyalebih gelap daripada  A. Penurunan intensitas setiap  pixel   berbanding terbalikdengan c. Operasi pembagian citra dengan skalar dipakai untuk normalisasikecerahan (normalization of brightness).

Algoritma perkalian/pembagian citra dengan sebuah skalar serupa denganAlgoritma 4.3, hanya saja operasi + atau – diganti dengan * atau /.

4.3 Operasi Boolean pada Citra

Selain operasi aritmetika, pemrosesan citra dijital juga melibatkan operasiBoolean (and, or, dan not):

C ( x, y) = A( x, y) and  B( x, y),

C ( x, y) = A( x, y) or  B( x, y),

C ( x, y) = not  A( x, y). (4.16)

(dalam notasi Bahasa C, ketiga operasi di atas ditulis sebagai:

C[x][y]=A[x][y]&B[x][y]C[x][y]=A[x][y]|B[x][y]C[x][y]=!A[x][y]

Page 65: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 65/229

 

Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 53 

)

Operasi Boolean mempunyai terapan yang penting pada pemrosesan morfologi

 pada citra biner. Pada citra biner, operasi not dapat digunakan untuk menentukan

komplemen dari citra (Gambar 4.7). Algoritma membentuk komplemen dari citra

 biner ditunjukan oleh Algoritma 4.7.

(a) Ganesha (b) not Ganesha

Gambar 4.7. Hasil operasi not  pada citra biner Ganesha

void not(citra_biner A, citra_biner B, int N, int M)/* Membuat citra komplemen dari citra biner A. Komplemennya disimpan di

dalam B. Ukuran citra A adalah N ×  M.*/{ int i, j;

for (i=0; i<=N-1; i++)

for (j=0; j<=M-1; j++){B[i][j] = !A[i][j];

}}

 Algoritma 4.7. Membuat citra komplemen dari citra biner

4.5 Operasi Geometri pada Citra

Pada operasi geometrik, koordinat  pixel  berubah akibat transformasi, sedangkan

intensitasnya tetap. Ini berbeda dengan dengan operasi aritmetika yang mana

koordinat pixel  tetap sedangkan intensitasnya berubah.

Page 66: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 66/229

 

54 Pengolahan Citra Digital

Operasi geometri yang dilakukan misalnya translasi, rotasi, penskalaan citra, dan

 pencerminan citra ( flipping ). Pengubahan geometri dari citra f ( x, y) menjadi citra

 baru f  ’( x, y) dapat ditulis sebagai:

 f  ‘( x’, y’) = f ( g 1( x, y), g 2( x, y)) (4.17)

yang dalam hal ini, g 1( x) dan g 2( y) adalah fungsi transformasi geometrik. Dengan

kata lain,

 x’ = g 1( x, y);

 y’ = g 2( x, y) (4.18)

a.  Translasi

Rumus translasi citra:

 x’ = x + m

 y’ = y + n (4.19)

yang dalam hal ini, m adalah besar pergeseran dalam arah  x, sedangkan n adalah

 besar pergeseran dalam arah y. Jika citra semula adalah  A dan citra hasil translasi

adalah  B, maka translasi dapat diimplementasikan dengan menyalin citra dari  A 

ke B:

 B[ x][ y] = A[ x + m][ y + n] (4.20)

Algoritma translasi citra ditunjukkan oleh Algoritma 4.8, sedangkan contoh

translasi pada citra camera diperagakan pada Gambar 4.8.

void translation(citra A, citra B, int N, int M, int m, int n)

/* Mentranslasi citra A sejauh m, n. Hasil translasi disimpan di dala B.

Ukuran citra adalah N ×  M.

*/

{ int i, j;

for (i=0; i<=N-1; i++)`

for (j=0; j<=M-1; j++)

{

B[i][j]=A[i+m][j+n];

}

}

 Algoritma 4.8. Operasi translasi citra

Page 67: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 67/229

 

Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 55 

( x, y)

( x', y' )

 x

 y

θ 

Gambar 4.9. Model rotasi citra 

(a) (b)

Gambar 4.8. Translasi pada citra camera: (a) citra semula, (b) citra hasil translasi dengan m = 30 dann = 25. (Terima kasih kepada Nanda Firdausi M atas izin menggunakan output programnya). 

b.  RotasiRumus rotasi citra:

 x’ = x cos(θ ) –  y sin(θ )

 y’ = x sin(θ ) + y cos(θ ) (4.21)

yang dalam hal ini, θ  = sudut rotasi berlawanan arah jarum jam (lihat Gambar4.9). Jika citra semula adalah A dan citra hasil rotasi adalah  B, maka rotasi citradari A ke B:

 B[ x’][ y’] = B[ x cos(θ ) – y sin(θ)][ x cos(θ ) + y cos(θ )] = A[ x][ y] (4.22)

Page 68: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 68/229

 

56 Pengolahan Citra Digital

Jika sudut rotasinya 90°, maka implementasinya lebih mudah dilakukan dengan

cara menyalin  pixel - pixel   baris ke  pixel - pixel   kolom pada arah rotasi (Gambar

4.10). Rotasi 180°  diimplementasikan dengan melakukan rotasi 90°  dua kali.

Algoritma rotasi citra sejauh 90 derajat berlawanan arah jarum jam ditunjukkan

 pada Algoritma 4.9, sedangkan rotasi citra sejauh 90 derajat searah jarum jamditunjukkan pada Algoritma 4.10 [HEN95].

====>

Gambar 4.10. Rotasi citra Lena sejauh 90 °   berlawanan arah jarum jam

void rotation90CCW(citra A, citra B, int N, int M)

/* Rotasi citra A sejauh 90°    berlawanan arah jarum jam (CCW = ClockCounter-wise).

Ukuran citra adalah N ×  M. Hasil rotasi disimpan di dalam citra B.*/

{ int i, j, k;

for (i=0; i<=N-1; i++){k=M-1;for (j=0; j<=M-1; j++){B[k][i]=A[i][j];k--;

}}

}

 Algoritma 4.8. Rotasi citra sejauh 90 °   berlawanan arah jarum jam.

Page 69: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 69/229

 

Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 57 

void rotation90CW(citra A, citra B, int N, int M)

/* Rotasi citra A sejauh 90°   searah jarum jam (CW = Clock-wise).

Ukuran citra adalah N ×  M. Hasil rotasi disimpan di dalam cira B.*/

{ int i, j, k;

k=M-1;for (i=0; i<=N-1; i++){for (j=0; j<=M-1; j++){

B[j][k]=A[i][j];}k--;

}

}

 Algoritma 4.9. Rotasi citra sejauh 90 °   searah jarum jam.

c.  Penskalaan Citra

Penskalaan citra, disebut juga image zooming , yaitu pengubahan ukuran citra

(membesar/ zoom out  atau mengecil/ zoom in).

Rumus penskalaan citra:

 x’ = s x ⋅  x 

 y’ = s y ⋅  y  (4.23)

yang dalam hal ini, s x dan s y adalah faktor skala masing-masing dalam arah x dan

arah y.

Jika citra semula adalah  A dan citra hasil penskalaan adalah B, maka penskalaan

citra dinyatakan sebagai:

 B[ x’][ y’] = B[ s x ⋅  x][ s y ⋅  y] = A[ x][ y] (4.24)

Operasi zoom out  dengan faktor 2 (yaitu, s x =  s y = 2) diimplementasikan dengan

menyalin setiap pixel  sebanyak 4 kali (Gambar 4.11a). Jadi, citra 2 × 2 pixel  akan

menjadi 4 × 4 pixel . Algoritma zoom out  dengan faktor skala = 2 ditunjukkan oleh

Algoritma 4.10. Contoh citra yang diperbesar dua kali diperlihatkan pada Gambar

4.12 (citra kota San Fransisco).

Operasi  zoom in  (pengecilan) dengan faktor skala = ½ dilakukan dengan

mengambil rata-rata dari 4  pixel   yang bertetangga menjadi 1  pixel (Gambar4.11b).

Page 70: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 70/229

 

58 Pengolahan Citra Digital

(a) (b)

Gambar 4.11. (a) Zoom out dengan faktor skala = 2, (b) Zoom in dengan faktor skala = 1/2

void zoom_out(citra A, citra B, int N, int M)/* perbesaran citra A dengan faktor skala 2

Ukuran citra adalah N ×  M. Hasil perbesaran disimpa d dalam citra B.*/{ int i, j, k, m, n;

m=0; n=0;for (i=0; i<=N-1; i++){for (j=0; j<=M-1; j++){B[m][n]= A[i][j];B[m][n+1]= A[i][j];

B[m+1][n]= A[i][j];B[m+1][n+1]= A[i][j];n=n+2;}m=m+2;n=0;

}

}

 Algoritma 4.10.  Zoom out dengan faktor skala = 2

Page 71: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 71/229

 

Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 59 

(a) (b)

Gambar 4.12. (a) Citra kota San Fransisco (ukuran normal), (b) citra kota San Fransisco setelahdiperbesar  2 kali (s x  = sy  = 2):

d.  Flipping

 Flipping   adalah operasi geometri yang sama dengan pencerminan (image 

reflection). Ada dua macam flipping : horizontal dan vertikal (Gambar 4.13).

(a) citra (b) flip horizontal (c) flip vertikal

Gambar 4.13. Flipping

 Flipping   horizontal adalah pencerminan pada sumbu-Y   (cartesian) dari citra  A menjadi citra B, yang diberikan oleh:

 B[ x][ y] = A[ N  – x][ y] (4.25)

Page 72: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 72/229

 

60 Pengolahan Citra Digital

 Flipping   vertikal adalah pencerminan pada sumbu- X   (cartesian) dari citra  A 

menjadi citra B, yang diberikan oleh:

 B[ x][ y] = A[ x][ M – y] (4.26)

Algoritma flipping  vertikal ditunjukkan oleh Algoritma 4.11 [HEN95].

Pencerminan pada titik asal (cartesian) dari citra  A  menjadi citra  B  diberikan

oleh:

 B[ x][ y] = A[ N – x][ M – y] (4.27)

Pencerminan pada garis x = y dari citra A menjadi citra B diberikan oleh:

 B[ x][ y] = A[ y][ x]

void vertical_flip(citra A, citra B, int N, int M)/* Flipping vertikal (pencerminan terhadap sumbu-X) terhadap citar A. */

Ukuran citra adalah N ×  M. Hasil flipping disimpan di dalam citra B.*/{ int i, j, k;

k=M-1;for (i=0; i<=N-1; i++){for (j=0; j<=M-1; j++){B[k][j]=A[i][j];

}k--;}

}

 Algoritma 4.11.  Flipping vertikal.

Page 73: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 73/229

  0

5. Konvolusi dan Transformasi Fourier

Bab ini berisi konsep matematis yang melandasi teori pengolahan citra. Dua operasi matematis

 penting yang perlu dipahami dalam mempelajari pengolahan citra dijital adalah operasi konvolusidan Transformasi Fourier. Konvolusi terdapat pada operasi pengolahan citra yang mengalikan

sebuah citra dengan sebuah mask  atau kernel  (akan dijelaskan kemudian), sedangkan Transformasi

Fourier dilakukan bila citra dimanipulasi dalam ranah (domain) frekuensi ketimbang dalam ranah

spasial. Bagian pertama di dalam Bab 5 ini akan membahas konvolusi, dan bagian kedua akan

membahas Transformasi Fourier.

5.1 Teori Konvolusi

Operasi yang mendasar dalam pengolahan citra adalah operasi konvolusi. Konvolusi 2 buah fungsi

 f ( x) dan g ( x) didefinisikan sebagai berikut:

∫∞

∞−

−==   daa x g a f  x g  x f  xh )()()(*)()( (5.1)

yang dalam hal ini, tanda * menyatakan operator konvolusi, dan peubah (variable) a adalah peubah

 bantu (dummy variable).

Untuk fungsi diskrit, konvolusi didefinisikan sebagai

∑∞

−∞=

−==a

a x g a f  x g  x f  xh )()()(*)()(   (5.2)

Pada operasi konvolusi di atas,  g ( x) disebut kernel konvolusi atau kernel penapis ( filter ). Kernel

 g ( x) merupakan suatu jendela yang dioperasikan secara bergeser pada sinyal masukan  f ( x), yang

dalam hal ini, jumlah perkalian kedua fungsi pada setiap titik merupakan hasil konvolusi yang

dinyatakan dengan keluaran h( x).

Ilustrasi konvolusi adalah sebagai berikut. Misalkan fungsi f ( x) dan g ( x) diperlihatkan pada Gambar

5.1(a) dan 5.1(b). Langkah-langkah perhitungan hasil konvolusi ditunjukkan mulai dari Gambar

5.1(c) sampai 5.11(f). Hasil konvolusi ditunjukkan pada Gambar 5.1(g), yaitu:

≤≤−

<≤

=

lainnya

 x x

 x x

 x g  x f 

,0

21,2/1

10,2/

)(*)( (5.3)

Page 74: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 74/229

  1

 

Gambar 5.1. Ilustrasi proses konvolusi [GON77]

1a

 f  (a)

1

a

 g (a)

1

1/2

(a) (b)

a

 g (-a)

(c)

1/2

-1

a

 g ( x - a)

(d)

1/2

-1   x

a

 f  (a) g ( x-a)

(e)

1/2

-1   x   1

10<= x<=1

a

 f  (a) g ( x-a)

(e)

1/2

-1   x-1 1

11<= x<=2

 x

1 2

1/2

 f  ( x)* g ( x)

 x

(f)

Page 75: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 75/229

  2

Contoh ilustrasi konvolusi yang lain adalah dengaan fungsi delta. Ada dua macam fungsi delta:

delta Dirac dan delta Kronecker.

Fungsi delta Dirac disebut juga fungsi denyut (impuls). Fungsi ini bernilai 0 untuk  x  ≠  0, dan

“lebar” denyutnya sama dengan 1. Secara matematis fungsi delta Dirac definisikan sebagai

0,0)(   ≠=   x xδ   

0

lim

→ε    ∫−

=ε 

ε 

δ  1)(   dx x   (5.4)

Gambar 5.2 memperlihatkan bentuk fungsi delta Dirac.

Sifat-sifat fungsi delta Dirac:

1. ∫∞

∞−

=− )(')'()'(   x f dx x x x f    δ    (5.5)

2. a

 x

ax

)(

)(

  δ 

δ    =   (5.6)

Fungsi delta Dirac adalah fungsi dengan daerah asal bilangan riil. Bila kita bekerja dengan fungsi

diskrit, maka fungsi delta yang digunakan adalah fungsi delta Kronecker, yang didefinisikan

sebagai

=

≠=

0,1

0,0)(

n

nnδ    (5.7)

dengan sifat

∑∞

−∞=

=−m

n f mnm f  )()()(   δ    (5.8)

Bentuk dwimatra dari fungsi delta diperoleh dengan mengalikan bentuk satumatranya:

Dirac: δ ( x, y) = δ ( x) δ ( y)

Kronecker: δ (m,n) = δ (m) δ (n)

 x

)( xδ 

 

Gambar 5.2. Fungsi delta Dirac

Page 76: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 76/229

  3

Hasil konvolusi fungsi f ( x) pada Gambar 5.3(a) dengan fungsi g ( x) =δ ( x + T ) + δ ( x) + δ ( x – T ) pada

Gambar 5.3(b) ditunjukkan pada Gambar 5.3(c).

Gambar 5.3. Konvolusi dengan fungsi impuls

Salah satu penggunaan fungsi delta adalah melakukan penerokan ( sampling ) pada sinyal malar f ( x).

Proses penerokan umumnya dilakukan pada periode yang tetap. Jika sinyal malar  f (t ) diterokdengan periode tetap T , maka diperoleh serangkaian nilai diskrit f d (n):

 f d (n) = f (nT ), – ∞  < n < +∞ 

Proses penerokan ini ditunjukkan dengan Gambar 5.4.

Gambar 5.4. Proses penerokan

Secara matematis, proses penerokan dinyatakan sebagai perkalian sinyal malar  f (t ) dengan fungsi

 penerok berupa rentetan sinyal delta sejarak T   satu sama lain (Gambar 5.5). Fungsi penerok itu

dapat dinyatakan sebagai

 s(t ) = ∑∞

∞−

− )(   nT t δ    (5.9)

Dengan demikian,

 f d (t ) = f (t ) s(t ) = f (t ) ∑∞

∞−

− )(   nT t δ   = ∑∞

∞−

− )()(   nT t t  f    δ    (5.10)

Ilustrasi grafis proses penerokan ditunjukkan pada Gambar 5.6

ba

 A

a

 g (a)

(a)   (b) (c)

-T b T  -T 

 A

 f  (a)

Penerokan

 f  (t )   f  d (nT )

Page 77: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 77/229

  4

Gambar 5.5. Fungsi penerok s

Gambar 5.6. Ilustrasi grafis proses penerokan

 f  (t )

 s(t )

 f  (t ) s(t )

Page 78: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 78/229

  5

5.1 Konvolusi Pada Fungsi Dwimatra

Untuk fungsi dengan dua peubah (fungsi dua dimensi atau dwimatra), operasi konvolusi

didefinisikan sebagai berikut:

a) untuk fungsi malar

∫ ∫∞

∞−

∞−

−−==   dadbb ya x g ba f  y x g  y x f  y xh ),(),(),(*),(),( (5.11)

 b) untuk fungsi diskrit

∑ ∑∞

−∞=

−∞=

−−==a b

b ya x g ba f  y x g  y x f  y xh ),(),(),(*),(),(   (5.12)

Fungsi penapis g ( x, y) disebut juga convolution  filter  atau convolution mask  atau convolution kernel  

atau template. Dalam ranah diskrit kernel konvolusi dinyatakan dalam bentuk matriks (umumnya 3

× 3, namun ada juga yang berukuran 2 × 2 atau 2 × 1 atau 1 × 2). Ukuran matriks ini biasanya lebih

kecil dari ukuran citra. Setiap elemen matriks disebut koefisien konvolusi.

Ilustrasi konvolusi ditunjukkan pada Gambar 5.7.

 p1

  p2

  p3

 p4

 p9

 p8

 p7

 p6

 p5

 A B C 

 D E F 

G H I 

 f (i , j )

kernel

citra  

 f (i, j) = A p1 + B p2 + C p3 + D p4 + E p5 + F p6 + G p7 + H p8 + I p9

Gambar 5.7  Ilustrasi konvolusi [JAI95]

Operasi konvolusi dilakukan dengan menggeser kernel konvolusi  pixel  per  pixel . Hasil konvolusi

disimpan di dalam matriks yang baru.

Page 79: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 79/229

  6

 

Contoh 5.1. Misalkan citra f ( x, y) yang berukuran 5 × 5 dan sebuah kernel atau yang berukuran 3 × 

3 masing-masing adalah sebagai berikut:

 f ( x, y) =

44253

35576

26665

25566

45344

   g ( x, y) =

−•−−

010

141

010

 

Keterangan: Tanda • menyatakan posisi (0, 0) dari kernel.

Operasi konvolusi antara citra f ( x, y) dengan penapis g ( x, y):

 f ( x, y) * g ( x, y)

dapat digambarkan sebagai berikut:

(1) Tempatkan kernel pada sudut kiri atas:

4 4 3 5 4

6 6 5 5 2 3

5 6 6 6 2

6 7 5 5 3

3 5 2 4 4

 Nilai intensitas baru dari pixel  pada posisi (0, 0) dari kernel dihitung dengan cara berikut:

(0 × 4) + (-1 × 4) + (0 × 3) + (-1 × 6) + (4 × 6) + (-1 × 5) + (0 × 5) + (-1 × 6) + (0 × 6) = 3

(2) Geser kernel satu pixel  ke kanan, kemudian hitung nilai pixel  pada posisi (0, 0) dari kernel:

4 4 3 5 4

6 6 5 5 2 3 0

5 6 6 6 2

6 7 5 5 3

3 5 2 4 4

 Nilai intensitas baru dari pixel  pada posisi (0, 0) dari kernel dihitung dengan cara berikut:

(0 × 4) + (-1 × 3) + (0 × 5) + (-1 × 6) + (4 × 5) + (-1 × 5) + (0 × 6) + (-1 × 6) + (0 × 6) = 0

Page 80: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 80/229

  7

(3) Geser kernel satu pixel  ke kanan, kemudian hitung nilai pixel  pada posisi (0, 0) dari kernel:

4 4 3 5 4

6 6 5 5 2 3 0 2

5 6 6 6 2

6 7 5 5 3

3 5 2 4 4

 Nilai intensitas baru dari pixel  pada posisi (0, 0) dari kernel dihitung dengan cara berikut:

(0 × 3) + (-1 × 5) + (0 × 4) + (-1 × 5) + (4 × 5) + (-1 × 2) + (0 × 6) + (-1 × 6) + (0 × 2) = 2

(4) Selanjutnya, geser kernel satu  pixel  ke bawah, lalu mulai lagi melakukan konvolusi dari sisi kiri

citra. Setiap kali konvolusi, geser kernel satu pixel ke kanan:

(i) 4 4 3 5 4

6 6 5 5 2 3 0 2

5 6 6 6 2 0

6 7 5 5 3

3 5 2 4 4

 Nilai intensitas baru dari pixel  pada posisi (0, 0) dari kernel dihitung dengan cara berikut:

(0 × 6) + (-1 × 6) + (0 × 5) + (-1 × 5) + (4 × 6) + (-1 × 6) + (0 × 6) + (-1 × 7) + (0 × 5) = 0

(ii) 4 4 3 5 4

6 6 5 5 2 4 0 8

5 6 6 6 2 0 2

6 7 5 5 3

3 5 2 4 4

 Nilai intensitas baru dari pixel  pada posisi (0, 0) dari kernel dihitung dengan cara berikut:

(0 × 6) + (-1 × 5) + (0 × 5) + (-1 × 6) + (4 × 6) + (-1 × 6) + (0 × 7) + (-1 × 5) + (0 × 5) = 2

Page 81: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 81/229

  8

(iii) 4 4 3 5 4

6 6 5 5 2 4 0 8

5 6 6 6 2 0 2 6

6 7 5 5 3

3 5 2 4 4

 Nilai intensitas baru dari pixel  pada posisi (0, 0) dari kernel dihitung dengan cara berikut:

(0 × 5) + (-1 × 5) + (0 × 2) + (-1 × 6) + (4 × 6) + (-1 × 2) + (0 × 5) + (-1 × 5) + (0 × 3) = 6

Dengan cara yang sama seperti di atas, maka  pixel-pixel   pada baris ketiga dikonvolusi sehingga

menghasilkan:

3 0 20 2 6

6 0 2

 

Sebagai catatan, jika hasil konvolusi menghasilkan nilai  pixel  negatif, maka nilai tersebut dijadikan

0, sebaliknya jika hasil konvolusi menghasilkan nilai  pixel   lebih besar dari nilai keabuan

maksimum, maka nilai tersebut dijadikan ke nilai keabuan maksimum (ingat operasi clipping ).

Masalah timbul bila pixel  yang dikonvolusi adalah pixel  pinggir (border ), karena beberapa koefisien

konvolusi tidak dapat dapat diposisikan pada pixel - pixel  citra (efek “menggantung”), seperti contoh

di bawah ini:

4 4 3 5 4 ?

6 6 5 5 2 ?

5 6 6 6 2 ?

6 7 5 5 3

3 5 2 4 4

Masalah “menggantung” seperti ini selalu terjadi pada  pixel - pixel   pinggir kiri, kanan, atas, dan

 bawah. Solusi untuk masalah ini adalah [SID95]:

1.   Pixel - pixel  pinggir diabaikan, tidak di-konvolusi. Solusi ini banyak dipakai di dalam pustaka

fungsi-fungsi pengolahan citra. Dengan cara seperti ini, maka pixel-pixel  pinggir nilainya tetap

Page 82: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 82/229

  9

sama seperti citra asal. Gambar 5.8 memperlihatkan hasil konvolusi pada Contoh 5.1, yang

dalam hal ini nilai pixel-pixel pinggir sama dengan nilai pixel semula.

2.  Duplikasi elemen citra, misalnya elemen kolom pertama disalin ke kolom  M +1, begitu juga

sebaliknya, lalu konvolusi dapat dilakukan terhadap pixel-pixel  pinggir tersebut.

3.  Elemen yang ditandai dengan “?” diasumsikan bernilai 0 atau konstanta yang lain, sehingga

konvolusi pixel-pixel  pinggir dapat dilakukan.

Solusi dengan ketiga pendekatan di atas mengasumsikan bagian pinggir citra lebarnya sangat kecil

(hanya satu  pixel ) relatif dibandingkan denagn ukuran citra, sehingga  pixel-pixel   pinggir tidak

memperlihatkan efek yang kasat mata.

4 4 3 5 4

6 4 0 8 2

5 0 2 6 2

6 6 0 2 3

3 5 2 4 4

Gambar 5.8  Pixel - pixel  pinggir (yang tidak diarsir) tidak dikonvolusi (dari Contoh 5.1)

Algoritma konvolusi citra  N   ×   M   dengan dengan mask   atau kernel yang berukuran 3 ×  3

ditunjukkan pada Algoritma 5.1.  Pixel  yang dikonvolusi adalah elemen (i,  j). Delapan buah  pixel  

yang bertetangga dengan pixel  (i, j) diperlihatkan pada Gambar 5.9.

i-1, j-1 i-1, j  i-1, j+1

i, j-1 i, j  i, j+1

i+1, j-1 i+1, j  i+1, j+1

Gambar 5.9  Pixel - pixel  pinggir (yang tidak diarsir) tidak dikonvolusi (dari Contoh 5.1)

Page 83: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 83/229

  10

 void konvolusi(citra Image, citra ImageResult, imatriks Mask, int N, int M)

/* Mengkonvolusi citra Image yang berukuran N ×  M dengan mask 3 ×  3. Hasilkonvolusi disimpan di dalam matriks ImageResult.

*/

{ int i, j;

for (i=1; i<=N-3; i++)for(j=1; j<=M-3; j++)ImageResult[i][j]=

Image[i-1][j-1]*Mask[0][0] +Image[i-1][j+1]*Mask[0][1] +Image[i-1][j]*Mask[0][2] +Image[i][j-1]*Mask[1][0] +Image[i][j]*Mask[1][1] +Image[i][j+1]*Mask[1][2] +Image[i+1][j-1]*Mask[2][0] +Image[i+1][j]*Mask[2][1] +Image[i+1][j+1]*Mask[2][2];

}

Algoritma 5.1. Konvolusi citra dengan sebuah mask  yang berukuran 3 × 3.

Anda dapat melihat bahwa operasi konvolusi merupakan komputasi pada aras lokal, karena

komputasi untuk suatu  pixel   pada citra keluaran melibatkan  pixel-pixel   tetangga pada citra

masukannya.

Konvolusi berguna pada proses pengolahan citra seperti:

-   perbaikan kualitas citra (image enhancement )

-   penghilangan derau

mengurangi erotan

 penghalusan/pelembutan citra

deteksi tepi, penajaman tepi

-  dll

Sebagai contoh, Gambar 5.9 memperlihatkan konvolusi citra Lena dengan penapis Gaussian untuk

mempertajam tepi-tepi di dalam citra. Penapis Gaussian adalah sebuah mask  yang berukuran 3 × 3:

=),(   y x g 

121

242

121

 

Page 84: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 84/229

  11

 

*

121

242121

  =

(a) Citra Lena semula (b) Citra Lena sesudah konvolusi

Gambar 5.10  Konvolusi citra Lena dengan penapis Gaussian untuk mempertajam gambar.

Karena konvolusi dilakukan per  pixel , dan untuk setiap  pixel   dilakukan operasi perkalian dan

 penjumlahan, maka jelas konvolusi mengkonsumsi banyak waktu. Jika citra berukuran N  ×  N  dan

kernel berukuran m × m, maka jumlah perkalian adalah dalam orde  N 2m2. Sebagai contoh jika citra

 berukuran 512 ×  512 dan kernel berukuran 16 ×  16, maka ada sekitar 32 juta perkalian yang

dibutuhkan. Ini jelas tidak cocok untuk proses yang real time tanpa perangkat keras yang dedicated .

Satu cara mengurangi waktu komputasi adalah mentransformasi citra dan kernel ke dalam ranah

frekuensi (dengan menggunakan Transformasi Fourier – akan diuraikan di upabab 5.2), selanjutnya

konvolusi dilakukan dalam ranah waktu. Keuntungan utama dari penggunaan ranah frekuensi

adalah proses konvolusi dapat diterapkan dalam bentuk perkalian langsung.

Proses perubahan fungsi dari ranah ranah spasial ke ranah frekuensi dilakukan melaluiTransformasi Fourier. Sedangkan perubahan fungsi dari ranah frekuensi ke ranah spasial

dilakukan melalui Transformasi Fourier Balikan (invers).

 f ( x, y) Transformasi Fourier  F (u, v)

 F (u, v) Transformasi Fourier Balikan  f ( x, y)

Dengan demikian, operasi konvolusi dua buah fungsi dalam ranah frekuensi menjadi:

h( x, y) =  f ( x, y) * g ( x, y) ↔   H (u, v) = F (u, v) G(u, v)

 H (u, v) Transformasi Fourier Balikan h( x, y)

Page 85: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 85/229

  12

5.3 Transformasi Fourier

Transformasi Fourier merupakan transformasi paling penting di dalam bidang pengolahan sinyal

( signal processing ), khususnya pada bidang pengolahan citra.

Umumnya sinyal dinyatakan sebagai bentuk plot amplitudo versus waktu (pada fungsi satu matra)

atau plot amplitudo versus posisi spasial (pada fungsi dwimatra). Pada beberapa aplikasi

 pengolahan sinyal, terdapat kesukaran melakukan operasi karena fungsi dalam ranah waktu/spasial,

misalnya pada operasi konvolusi di atas. Operasi konvolusi dapat diterapkan sebagai bentuk

 perkalian langsung bila fungsi berada dalam ranah frekunsi.

Transformasi Fourier adalah kakas (tool ) untuk mengubah fungsi dari ranah waktu/spasial ke ranah

frekuensi. Untuk perubahan sebaliknya digunakan Transformasi Fourier Balikan. Intisari dari

Transformasi Fourier adalah menguraikan sinyal atau gelombang menjadi sejumlah sinusoida dari

 berbagai frekuensi, yang jumlahnya ekivalen dengan gelombang asal.

Di dalam pengolahan citra, transformasi Fourier digunakan untuk menganalisis frekuensi pada

operasi seperti perekaman citra, perbaikan kualitas citra, restorasi citra, pengkodean, dan lain-lain.

Dari analisis frekuensi, kita dapat melakukan perubahan frekuensi pada gambar. Perubahan

frekuensi berhubungan dengan spektrum antara gambar yang kabus kontrasnya samapi gambar yang

kaya akan rincian visualnya. Sebagai contoh, pada proses perekaman citra mungkin terjadi

 pengaburan kontras gambar. Pada gambar yang mengalami kekaburan kontras terjadi perubahan

intensitas secara perlahan, yang berarti kehilangan informasi frekuensi tinggi. Untuk meningkatkan

kualitas gambar, kita menggunakan penapis frekuensi tinggi sehingga  pixel  yang berkontras kabur

dapat dinaikkan intensitasnya [.

5.4 Transformasi Fourier Malar

Transformasi Fourier untuk satu peubah:

=ℑ )}({   x f due x f u F    uxi

∫∞

∞−

−=   π 2)()( (5.13)

Transformasi Fourier Balikan untuk satu peubah:

=ℑ− )}({1u F dueu F  x f    uxi

∫∞

∞−

=   π 2)()(   (5.14)

yang dalam hal ini,

i = imaginer = 1−  u adalah peubah frekuensi

Baik transformasi Fourier maupuna Transformasi Fourier Balikan keduanya dinamakan pasangan

transformasi Fourier.

Page 86: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 86/229

  13

Untuk f ( x) real, F (u) adalah fungsi kompleks dan dapat dituliskan sebagai:

 F (u) = R(u) + iI (u) = )()(   uieu F    φ    (5.15)

Amplitudo atau  F (u) disebut spektrum Fourier dari f ( x) dan didefinisikan sebagai:

)()()( 22 u I u Ru F    +=   (5.16)

Sudut fase spektrum,

])(

)([tan)( 1

u R

u I u   −=Θ   (5.17)

menyatakan pergeseran fase atau sudut fase dari setiap frekuensi u.

Dengan mengingat kesamaan Euler

)(sin)cos(   xi xe   ix ±=±   (5.18)

maka pasangan transformasi Euler dapat juga ditulis sebagai

∫ ∫∞

∞−

∞−

− −==   dxuxiux x f dxe x f u F    uxi )}2(sin)2){cos(()()( 2 π π π    (5.19)

∫ ∫∞

∞−

∞−

+==   duuxiuxu F dueu F  x f    uxi )}2(sin)2){cos(()()( 2 π π π    (5.20)

Transformasi Fourier untuk fungsi dengan dua peubah adalah

dudve y x f vu F    uyuxi

∫ ∫∞

∞−

+−∞

∞−

= )(2),(),(   π    (5.21)

sedangkan Transformasi Fourier Balikannya adalah

dudvevu F  y x f    uyuxi

∫ ∫∞

∞−

+∞

∞−

= )(2),(),(   π    (5.22)

yang dalam hal ini, x dan y adalah peubah spasial, sedangkan u dan v adalah peubah frekuensi.

Spektrum Fourier dari fungsi dua peubah:

),(),(),( 22 vu I vu Rvu F    +=   (5.23)

Page 87: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 87/229

  14

sedangkan sudut fasenya:

]),(

),([tan),( 1

vu R

vu I vu   −=Θ   (5.24)

 Sifat-sifat Transformasi Fourier

Jika f (t ) ↔  F (u) dan g (t ) ↔ G(u), maka sifat-sifat Transformasi Fourier dirumuskan di dalam Tabel5.1.

Tabel 5.1  Sifat-sifat Transformasi Fourier

Sifat Ranah Waktu Ranah Frekuensi

1. Kelanjaran )()(   t bg t af    +   )()(   ubGuaF    +  

2. Penskalaan )(at  f   )/(

1au F 

a

 

3. Pergeseran )(   at  f    −   )(   au F    −  

4. Modulasi )(2 t  f e   at i   π    uaieu F    π 2)(   −  

5. Konyugasi )(* t  f    )(* u F    −  

6. Konvolusi )(*)()(   t  g t  f t h   =   )()()(   uGu F u H    =  

7. Perkalian )()()(   t  g t  f t h   =   )(*)()(   uGu F u H    =  

8. Diferensiasi

n

n

dt 

t  f d  )( 

)()2(   u F ui   nπ   

9. Simetri )(t  F    )(   u f   −  

10. Hasil kali dalamdt t  g t  f  )()( *

∫∞

∞−

  ∫∞

∞−

duuGu F  )()( *  

5.5 Transformasi Fourier Diksrit

Pada pengolahan sinyal dengan komputer digital, fungsi dinyatakan oleh himpunan berhingga nilai

diskrit. Transformasi Fourier Diskrit (TFD) ditujukan bagi persoalan yang tidak menghasilkansolusi transformasi Fourier dalam bentuk fungsi malar.

Bila  f ( x) yang menerus dibuat diskrit dengan mengambil  N   buah terokan ( sampling ) sejarak ∆ x,

yaitu himpunan nilai { f ( x0), f ( x0 + ∆ x), f ( x0 + 2∆ x), …, f ( x0 + ( N -1)∆ x)}.

Jadi,

 f  x = f ( x0 + x ∆ x),  x = 0, 1, 2, …, N  – 1

Page 88: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 88/229

  15

 Pasangan Transformasi Fourier Diskrit untuk fungsi dengan satu peubah:

∑−

=

−=1

0

/21   N 

 x

 N uxi xu   e f 

 N  F    π    , u = 0, 1, 2, …, N  – 1 (5.25)

∑−

=

=1

0

/2 N 

u

 N uxiu x   e F  f    π    , x = 0, 1, 2, …, N  – 1 (5.26)

Dengan mengingat kesamaan Euler, pasangan Transformasi Fourier Diskrit dapat ditulis dalam bentuk

)]/2sin()/2cos([1 1

0

 N ux f i N ux f  N 

 F  N 

 x

 x xu   π π ∑−

=

−=   (5.27)

)]/2sin()/2cos([1

0

 N ux F i N ux F  f  N 

u

uu x   π π ∑−

=

+=   (5.28)

Interpretasi dari TFD adalah sebagai berikut: TFD mengkonversi data diskrit menjadi sejumlahsinusoida diskrit yang frekuensinya dinomori dengan u  = 0, 1, 2, …,  N  – 1, dan ampiltudonya

diberikan oleh F (u).

Faktor 1/ N  pada persamaan  F (u) adalah faktor skala yang dapat disertakan dalam persamaan  F (u) 

atau dalam persamaan f ( x), tetapi tidak kedua-duanya.

Contoh 5.2.  [MEN89] Diketahui fungsi sinyal  f (t ) dengan hasil penerokan ke dalam nilai-nilaidiskrit sebagai berikut ( N  = 4):

 x0 = 0.5,  f 0 = 2 x1 = 0.75, f 1 = 3 x2 = 1.0,  f 2= 4 x3 = 1.25, f 3= 4

Transformasi Fourier Diskrit adalah sebagai berikut:

25.3)(4

1

4

1

4

1

4

13210

3

0

03

0

4/2.0.3

0

0   =+++====   ∑∑∑==

=

 f  f  f  f  f e f e f  F  x

 x

 x

 x xi

 x

 xπ 

 

)(4

1

4

1 2/332

2/1

00

4/2.1.3

0

1π π π π    iii xi

 x

 x   e f e f e f e f e f  F    −−−−

=

+++==   ∑  

)])2/sin(3)2/3[cos(4)]sin()[cos(4)]2/sin()2/[cos(32(41 π π π π π π    iii   −+−+−+=  

=++−−+−+= ])0[4]01[4]0[32(4

1ii   )2(

4

1i−−  

Page 89: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 89/229

  16

)4432(4

1

4

1 3204/2.2.3

0

2π π π π    iii xi

 x

 x   eeeee f  F    −−−−

=

+++==   ∑ 

=4

1)01(

4

1−=+   i  

)2(4

13   i F    +=  

Spektrum Fouriernya:

25.30   = F   

54

116/516/14/1)4/1()2/1( 22

1   ==+=+= F   

4

12   = F   

54

13   = F     

Algoritma TFD dan algoritma TFD Balikan ditunjukkan masing-masing pada Algoritma 5.2 dan

Algoritma 5.3.

void TFD(int N)/* Melakukan Transformasi Fourier Diskrit untuk N buah data masukan. Hasil

transformasi disimpan di dalam array R dan I. Array R menyimpan bagianriil, dan array I menyimpan bagian bagian imajiner. Kedau array ini

dideklarasikan sebagai peubah global. Data masukan disimpan di dalam array f[0]

s/d f[N-1]

*/

{int j, k;double tetha;

for (j=0; j<N; j++){R[j]=0.0;I[j]=0.0;

}for (k=0; k<=N; k++)

for (j=0; j<=N-1; j++){tetha= k*2*3.14*j/(double)N;R[k]=R[k]+(f[j]*cos(tetha))/(double)N;I[k]=I[k]-(f[j]*sin(tetha))/(double)N;

}}

Algoritma 5.2. Transformasi Fourier Diskrit

Page 90: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 90/229

  17

 

void TFD_balikan(int N)/* Melakukan Transformasi Fourier Diskrit Balikan untuk N buah data masukan.

Masukan disimpan di dalam array R dan I. Array R menyimpan bagian riil, dan

array I menyimpan bagian bagian imajiner. Kedau array ini

dideklarasikan sebagai peubah global. Data keluaran disimpan di dalam array

fReal[0] s/d f[N-1] dan array fImag[1] s/d fImag[N-1].*/

{int j, k;double tetha, epsilon = 1E-12;

for (j=0; j<N; j++){fReal[j]=0;fImag[j]=0;

}

for (k=0; k<N1; k++){for (j=0; j<N; j++)

{tetha=k*2*3.14*j/(double)N;fReal[k]=fReal[k]+(R[j]*cos(tetha)–I[j]*sin(tetha));fImag[k]=fImag[k]+(I[j]*cos(tetha)+ R[j]sin(tetha));}if (fImag[k] < epsilon) fImag[k]=0;

}}

Algoritma 5.3. Transformasi Fourier Diskrit Balikan

Citra dijital adalah fungsi diskrit dalam ranah spasial, dengan dua peubah,  x  dan  y. Pada fungsidiskrit dengan dua peubah dan berukuran N  ×  M , pasangan Transformasi Fourier Diskritnya adalah:

∑∑−

=

+−−

=

=1

0

)//(2,

1

0

,

1  N 

 x

 M vy N uxi y x

 M 

 y

vu   e f  NM 

 F    π    , u dan v = 0, 1, 2, …, N – 1 (5.29)

∑∑−

=

+−

=

=1

0

)//(2,

1

0

,

 N 

u

 M vy N uxivu

 M 

v

 y x   e F  f    π    , x dan y = 0, 1, 2, …, N – 1 (5.30)

atau

∑∑  −

=

−−

=

−=1

0

/2,

1

0

/2,,

11   M 

 y

 M vyi y x

 N 

 x

 N uxi y xvu   e f 

 M 

e f 

 N 

 F    π π    (5.31)

∑∑  −

=

=

=1

0

/2,

1

0

/2,,

 M 

v

 M vyivu

 N 

u

 N uxivu y x   e F e F  f    π π    (5.31)

untuk u, x = 0, 1, …, N – 1 dan v, y = 0, 1, …, M – 1.

Page 91: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 91/229

  18

Algoritma TFD dan balikannya dapat diterapkan untuk fungsi diskrit dwimatra. Mula-mulatransformasi dilakukan dalam arah  x (dengan nilai  y tetap). Kemudian, hasilnya ditransformasikan

lagi dalam arah y.

Algoritma TFD tidak bagus untuk  N  yang besar karena komputasinya memakan waktu yang lama.

Kompleksitas waktu algoritmanya adalah O( N 2). Algoritma yang dikenal cepat untuk menghitung

transformasi Fourier diskrit adalah FFT ( Fast Fourier Transform). Algoritma FFT mempunyaikompleksitas waktu O( N   2log  N ). Jadi, untuk  N  = 50, TFC kira-kira 10 kali lebih cepat daripada

TFD, untuk N  = 1000 sekitar 100 kali lebih cepat. Algoritma FFT tidak dibahas di dalam buku ini.

Page 92: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 92/229

 

Bab 6_Histogram Citra 83 

Bab 6

Histogram Citra

nformasi penting mengenai isi citra digital dapat diketahui dengan membuat

histogram citra. Histogram citra adalah grafik yang menggambarkan

 penyebaran nilai-nilai intensitas  pixel  dari suatu citra atau bagian tertentu di

dalam citra. Dari sebuah histogram dapat diketahui frekuensi kemunculan nisbi

(relative) dari intensitas pada citra tersebut. Histogram juga dapat menunjukkan

 banyak hal tentang kecerahan (brightness) dan kontas (contrast ) dari sebuah

gambar. Karena itu, histogram adalah alat bantu yang berharga dalam pekerjaan

 pengolahan citra baik secara kualitatif maupun kuantitatif.

6.1 Membuat HistogramMisalkan citra digital memiliki L derajat keabuan, yaitu dari nilai 0 sampai  L – 1

(misalnya pada citra dengan kuantisasi derajat keabuan 8-bit, nilai derajat

keabuan dari 0 sampai 255). Secara matematis histogram citra dihitung dengan

rumus

n

nh   i

i  =   , i = 0, 1, …, L – 1 (6.1)

yang dalam hal ini,

ni = jumlah pixel  yang memiliki derajat keabuan i 

n = jumlah seluruh pixel  di dalam citra

I

Page 93: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 93/229

 

84 Pengolahan Citra Digital

hi 

i

Plot hi  versus  f i  dinamakan histogram. Gambar 6.1 adalah contoh sebuah

histogram citra. Secara grafis histogram ditampilkan dengan diagram batang.

Perhatikan dari persamaan 6.1 bahwa nilai ni  telah dinormalkan dengan

membaginya dengan n. Nilai hi berada di dalam selang 0 sampai 1.

Gambar 6.1. Histogram citra 

Sebagai contoh, misalkan matriks di bawah ini menyatakan citra dijital yang

 berukuran 8 ×  8  pixel   dengan derajat keabuan dari 0 sampai 15 (ada 16 buah

derajat keabuan):

1213141110012

789910111315

22010054

14101354320

1111088111212

12910895614

1515810002

101412108773

 

Tabulasi perhitungan histogramnya ditunjukan pada Tabel 6.1. Mudah dilihat

 bahwa semakin besar nilai ni maka semakin besar pula nilai hi.

Tabel 6.1  Perhitungan histogram

i   ni hi  = ni /n  ( n = 64)

0 8 0.1251 4 0.0625

2 5 0.078125

Page 94: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 94/229

 

Bab 6_Histogram Citra 85 

3 2 0.03125

4 2 0.03125

5 3 0.046875

6 1 0.015625

7 3 0.046875

8 6 0.093759 4 0.046875

10 7 0.109375

11 4 0.0625

12 5 0.078125

13 3 0.046875

14 4 0.0625

15 3 0.046875

6.2 Algoritma Perhitungan Histogram

Algoritma perhitungan histogram ditunjukkan pada Algoritma 6.1 [HEN95].Citra masukan mempunyai 256 derajat keabuan yang nilai-nilainya dari 0 sampai

255. Intensitas pixel  disimpan di dalam Image[0..N-1][0..M-1], sedangkan

histogram disimpan di dalam tabel Hist[0..255] .

Gambar 6.2 memperlihatkan histogram citra kapal (512 ×  512). Beberapa

 program komersil seperti  Adobe Photoshop,  Paintshop, dan  PolyView, dapat

digunakan untuk membangkitkan histogram citra.

void  histogram(citra Image, int N, int M, float Hist[256])

/* Menghitung histogram untuk citra Image yang berukuran N ×   M.

Histogram disimpan di dalam tabel Hist yang bertipe riil(float).

*/

{ int i, j, n;

/* inisialisasi Hist[0..255] dengan 0 */

for(i=0;i<=255;i++)

Hist[i]=0;

for(i=0;i<=N-1;i++)

for(j=0;j<=M-1;j++)

Hist[Image[i][j]]=Hist[Image[i][j]]+1;

/*normalisasi Hist[i] dengan jumlah seluruh pixel*/

n=N*M;

for(i=0;i<=255;i++)

Hist[i]=Hist[i]/(float)n;

 Algoritma 6.2. Perhitungan histogram citra 

Page 95: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 95/229

 

86 Pengolahan Citra Digital

(a) kapal 512 × 512, 8-bit

(b) Histogram citra kapal (by PolyView )

Gambar 6.2. Citra Kapal (512 ×   512) dan histogramnya

Khusus untuk citra berwarna, histogramnya dibuat untuk setiap kanal  RGB 

(merah, hijau, dan biru). Misalnya citra berwarna  pepper  512 × 512  pixel  8-bit,

 pada Gambar 6.3, histogramnya ada tiga buah, masing-masing untuk komponen

merah, hijau, dan biru. Histogram tersebut dihasilkan dari program [WIC01].

(a) pepper  (color ), 512 × 512, 24-bit

(b) Histogram untuk kanal merah

Page 96: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 96/229

 

Bab 6_Histogram Citra 87 

(c) Histogram untuk kanal hijau (d) Histogram untuk kanal biru

Gambar 6.3. Citra berwarna pepper dan histogram masing-masing kanal warnanya

Histogram citra banyak memberikan informasi penting sebagai berikut:

1. 

 Nilai hi menyatakan peluang ( probability) pixel , P (i), dengan derajat keabuani. Jumlah seluruh nilai hi sama dengan 1, atau

11

0

=∑−

=

 L

i

ih  

Peluang suatu  pixel  memiliki derajat keabuan lebih kecil atau sama dengan

derajat keabuan tertentu adalah jumlah hi untuk 0 ≤ i ≤  j, atau

∑=

=≤ j

i

ih ji P 0

)( , 0 ≤  j ≤  L – 1

2.  Puncak histogram menunjukkan intensitas  pixel   yang menonjol. Lebar dari

 puncak menunjukkan rentang kontras dari gambar. Citra yang mempunyai

kontras terlalu terang (overexposed ) atau terlalu gelap (underexposed )

memiliki histogram yang sempit. Histogramnya terlihat hanya menggunakan

setengah dari daerah derajat keabuan. Citra yang baik memiliki histogram

yang mengisi daerah derajat keabuan secara penuh dengan distribusi yang

merata pada setiap nilai intensitas pixel (Gambar 6.4).

Page 97: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 97/229

 

88 Pengolahan Citra Digital

1

0 255i

h(i)

1

0 255i

h(i)

1

0 255i

h(i)

1

0 255i

h(i)

(a) (b)

(c) (d )

 Gambar 6.4. (a) citra gelap, (b) citra terang, (c) citra normal (normal brightness), (d) normal

brightness dan high contrast

Gambar 6.5 memperlihatkan tiga buah citra Lena. Citra Lena yang pertama

terlalu gelap. Histogramnya banyak menumpuk pada bagian kiri karena citra

tersebut mengandung banyak nilai intensitas yang dekat dengan 0 (hitam). CitraLena yang kedua terlalu terang. Histogramnya banyak menumpuk pada bagian

kanan karena citra tersebut mengandung banyak nilai intensitas yang dekat

dengan 255 (putih). Citra Lena yang ketiga adalah citra yang normal (bagus).

Histogramnya tersebar merata di seluruh daerah derajat keabuan. Tiga buah

histogram tersebut dihasilkan dengan program Adobe Photoshop.

Page 98: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 98/229

 

Bab 6_Histogram Citra 89 

(a) Kiri: citra Lena yang terlalu gelap; kanan: histogramnya (by Photoshop)

(b) Kiri: citra Lena yang terlalu terang; kanan: histogramnya

Gambar 6.5 . Bermacam-macam histogram dari beberapa kasus citra Lena 

Page 99: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 99/229

 

90 Pengolahan Citra Digital

(c) Kiri: citra Lena yang bagus (normal); kanan: histogramnya

Gambar 6.5  (lanjutan).

Page 100: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 100/229

  0

7. Perbaikan Kualitas Citra

Perbaikan kualitas citra (image enhancement ) merupakan salah satu proses awal dalam

 pengolahan citra (image preprocessing ). Perbaikan kualitas diperlukan karena seringkali citra

yang dijadikan objek pembahasan mempunyai kualitas yang buruk, misalnya citra mengalami

derau (noise) pada saat pengiriman melalui saluran transmisi, citra terlalu terang/gelap, citra

kurang tajam, kabur, dan sebagainya. Melalui operasi pemrosesan awal inilah kualitas citradiperbaiki sehingga citra dapat digunakan untuk aplikasi lebih lanjut, misalnya untuk aplikasi

 pengenalan (recognition) objek di dalam citra

7.1 Lingkup Proses Perbaikan Kualitas Citra

Yang dimaksud dengan perbaikan kualitas citra adalah proses mendapatkan citra yang lebih

mudah diinterpretasikan oleh mata manusia. Pada proses ini, ciri-ciri tertentu yang terdapat

di dalam citra lebih diperjelas kemunculannya [DUL97]. Secara matematis, image

enhancement  dapat diartikan sebagai proses mengubah citra f ( x, y) menjadi f ’( x, y) sehingga

ciri-ciri yang dilihat pada f ( x, y) lebih ditonjolkan.

Proses-proses yang termasuk ke dalam perbaikan kualitas citra [DUL97]:

1.  Pengubahan kecerahan gambar (image brightness)

2.  Peregangan kontras (contrast stretching )

3.  Pengubahan histogram citra.

4. 

Pelembutan citra (image smoothing) 5.  Penajaman ( sharpening ) tepi (edge).

6.  Pewarnaan semu ( pseudocolouring )

7.  Pengubahan geometrik

Beberapa operasi image enhancemnent  (4 dan 5) dapat dipandang sebagai operasi penapisan

untuk memperoleh citra yang lebih baik. Operasi penapisan adalah adalah operasi konvolusi

citra f ( x, y) dengan penapis h( x, y):

 f  ‘( x, y) = h( x, y) * f ( x, y) (7.1)

atau dalam ranah frekuensi:

 F ’(u, v) = H (u, v) F (u, v) (7.2)

Pada umumnya,  f ( x, y) sudah diketahui sehingga persoalannya adalah memilih h( x, y)

sedemikian rupa sehingga f ’( x, y) merupakan citra yang menonjolkan ciri tertentu dari f ( x, y).

Page 101: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 101/229

  1

7.2 Pengubahan Kecerahan Gambar ( Image Brightness)

Untuk membuat citra lebih terang atau lebih gelap, kita melakukan pengubahan kecerahan

gambar. Kecerahan/kecemerlangan gambar dapat diperbaiki dengan menambahkan (atau

mengurangkan) sebuah konstanta kepada (atau dari) setiap  pixel  di dalam citra. Akibat dari

operasi ini, histogram citra mengalami pergeseran.

Secara matematis operasi ini ditulis sebagai

 f ( x, y)’ = f ( x, y) + b  (7.3)

Jika b  positif, kecerahan gambar bertambah, sebaliknya jika b  negatif kecerahan gambar

 berkurang.

Algoritma pengubahan kecerahan gambar ditunjukkan pada Algoritma 7.1. Citra masukan

mempunyai 256 derajat keabuan yang nilai-nilainya dari 0 sampai 255. Intensitas  pixel  

disimpan di dalam Image[0..N-1,0..M-1], sedangkan hasil pengubahan tetap

disimpan di dalam citra Image.

void ImageBrightness(citra Image, int N, int M, int b)

/* Mengubah kecerahan citar Image yang berukuran N ×   M dengan penambahan

intensitas setiap pixel sebesar b.

*/

{ int i, j, n;

for(i=0;i<=N-1;i++)

for(j=0;j<=M-1;j++)

Image[i][j]+=b;

Algoritma 7.1. Perhitungan histogram citra 

 Nilai pixel  hasil pengubahan mungkin ≤ derajat keabuan minimum (0) atau ≥ derajat keabuan

maksimum (255). Karena itu,  pixel   tersebut perlu dilakukan clipping   ke nilai keabuan

minimum atau ke nilai keabuan maksimum.

Sebagai contoh, Gambar 7.1(a) adalah citra Zelda (beserta histogramnya) yang tampak

gelap, sedangkan Gambar 7.1(b) adalah citra Zelda (beserta histogramnya) yang lebih terang

(nilai b = 80).

Page 102: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 102/229

  2

 

(a) Citra Zelda (b) Histogram citra Zelda

(c) Citra Zelda setelah penambahan kecerahan

dengan b 

(d) Histogram citra Zelda setelah penambahan

kecerahan

Gambar 7.1. Citra Zelda; Atas: sebelum operasi penambahan kecerahan terlihat agak gelap;

Bawah: Zelda setelah operasi penambahan kecerahan dengan b = 80.

Page 103: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 103/229

  3

7.3 Peregangan Kontras

Kontras menyatakan sebaran terang (lightness) dan gelap (darkness) di dalam sebuah gambar.

Citra dapat dikelompokkan ke dalam tiga kategori kontras: citra kontras-rendah ( low

contrast ), citra kontras-bagus ( good  contrast  atau normal contrast ), dan citra kontras-tinggi

(high contrast ). Ketiga kategori ini umumnya dibedakan secara intuitif.

Citra kontras-rendah dicirikan dengan sebagian besar komposisi citranya adalah terang atau

sebagian besar gelap. Dari histogramnya terlihat sebagian besar derajat keabuannya

terkelompok (clustered ) bersama atau hanya menempati sebagian kecil dari rentang nilai-nilai

keabuan yang mungkin. Jika pengelompokan nilai-nilai  pixel   berada di bagian kiri (yang

 berisi nilai keabuan yang rendah), citranya cenderung gelap. Jika pengelompokan nilai-nilai

 pixel   berada di bagian kanan (yang berisi nilai keabuan yang tinggi), citranya cenderung

terang. Tetapi, mungkin saja suatu citra tergolong kontras-rendah meskipun tidak terlalu

terang atau tidak terlalu gelap bila semua pengelompokan nilai keabuan berada di tengah

histogram.

Citra kontras-bagus memperlihatkan jangkauan nilai keabuan yang lebar tanpa ada suatu nilai

keabuan yang mendominasi. Histogram citranya memperlihatkan sebaran nilai keabuan yang

relatif seragam.

Citra kontras-tinggi, seperti halnya citra kontras bagus, memiliki jangkauan nilai keabuan

yang lebar, tetapi terdapat area yang lebar yang didominasi oleh warna gelap dan area yang

lebar yang didominasi oleh warna terang. Gambar dengan langit terang denganlatar depan

yang gelap adalah contoh citra kontras-tinggi. Pada histogramnya terlihat dua puncak, satu

 pada area nilai keabuan yang rendah dan satu lagi pada area nilai keabuan yang tinggi.

Citra dengan kontras-rendah dapat diperbaiki kualitasnya dengan operasi peregangan kontras.

Melalui operasi ini, nilai-nilai keabuan pixel  akan merentang dari 0 sampai 255 (pada citra 8- bit), dengan kata lain seluruh nilai keabuan pixel  terpakai secara merata.

Gambar 7.2 memperlihatkan tiga buah citra Lena yang masing-masing memiliki kontras-

rendah, kontras-tinggi, dan kontras-bagus.

Page 104: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 104/229

  4

  (a) Citra Lena yang terlalu gelap Histogram

(kontras rendah)

(b) Citra Lena yang terlalu terang Histogram

(kontras tinggi)

(c) Citra Lena yang bagus (normal) Histogram

(kontras bagus) 

Gambar 7.2. Tiga buah citra Lena dengan tiga macam kontras.

Page 105: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 105/229

  5

Algoritma peregangan kontras adalah sebagai berikut:

1.  Cari batas bawah pengelompokan  pixel   dengan cara memindai ( scan) histogram dari

nilai keabuan terkecil ke nilai keabuan terbesar (0 sampai 255) untuk menemukan  pixel  

 pertama yang melebihi nilai ambang pertama yang telah dispesifikasikan.

2. 

Cari batas atas pengelompokan  pixel   dengan cara memindai histogram dari nilai

keabuan tertinggi ke nilai keabuan terendah (255 sampai 0) untuk menemukan  pixel  

 pertama yang lebih kecil dari nilai ambang kedua yang dispesifikasikan.

3. 

 Pixel - pixel   yang berada di bawah nilai ambang pertama di- set   sama dengan 0,

sedangkan pixel - pixel  yang berada di atas nilai ambang kedua di- set  sama dengan 255.

4. 

 Pixel - pixel   yang berada di antara nilai ambang pertama dan nilai ambang kedua

dipetakan (diskalakan) untuk memenuhi rentang nilai-nilai keabuan yang lengkap (0sampai 255) dengan persamaan:

255maxmin

max ×−

−= r r 

r r  s   (7.4)

yang dalam hal ini, r adalah nilai keabuan dalam citra semula, s adalah nilai keabuan

yang baru, r min adalah nilai keabuan terendah dari kelompok pixel , dan r max adalah nilai

keabuan tertinggi dari kelompok pixel (Gambar 7.3).

 s

0

r max

 

Gambar 7.3  Peregangan kontras

Page 106: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 106/229

  6

7.4 Pengubahan Histogram Citra

Untuk memperoleh histogram citra sesuai dengan keinginan kita, maka penyebaran nilai-nilai

intensitas pada citra harus diubah. Terdapat dua cara pengubahan citra berdasarkan

histogram:

1. 

Perataan historam (histogram equalization)

 Nilai-nilai intensitas di dalam citra diubah sehingga penyebarannya seragam (uniform).

2. 

Pembentukan histogram (histogram spesification)

 Nilai-nilai intensitas di dalam citra diubah agar diperoleh histogram dengan bentuk yangdispesifikasikan oleh pengguna.

Kedua macam pengubahan histogram citra ini dibahas lebih rinci di dalam upabab 7.5 dan 7.6

di bawah ini.

7.5 Perataan HistogramSebagaimana telah dijelaskan pada pembahasan terdahulu, histogram citra memberikan

informasi tentang penyebaran intensitas  pixel - pixel   di dalam citra. Misalnya, citra yang

terlalu terang atau terlalu gelap memiliki histogram yang sempit.

Agar kita memperoleh citra yang baik, maka penyebaran nilai intensitas harus diubah. Teknik

yang lazim dipakai adalah perataan histogram (histogram equalization). Tujuan dari

 perataan histogram adalah untuk memperoleh penyebaran histogram yang merata, sedemikian

sehingga setiap derajat keabuan memiliki jumlah pixel  yang relatif sama.

Karena histogram menyatakan peluang  pixel   dengan derajat keabuan tertentu, maka rumus

menghitung histogram ditulis kembali sebagai fungsi peluang

n

nr  P    k k r    =)( (7.5)

yang dalam hal ini,

1−=

 L

k r k    , 0 ≤ k   ≤  L – 1 (7.6)

yang artinya, derajat keabuan (k ) dinormalkan terhadap derajat keabuan terbesar ( L  – 1).

 Nilai r k   = 0 menyatakan hitam, dan r k   = 1 menyatakan putih dalam skala keabuan yang

didefinisikan.

Contohnya, jika L = 8, maka nilai-nilai r k  dinyatakan di dalam tabel 7.1.

Page 107: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 107/229

  7

Tabel 7.1  Nilai-nilai r k  jika L = 8

k   r k0 0/7 = 0

1 1/7

2 2/7

3 3/7

4 4/7

5 5/7

6 6/7

7 7/7 = 1

Yang dimaksud dengan perataan histogram adalah mengubah derajat keabuan suatu  pixel  (r )

dengan derajat keabuan yang baru ( s) dengan suatu fungsi transformasi T , yang dalam hal ini

 s = T (r ). Gambar 7.4 memperlihatkan transformasi r  menjadi s.

Dua sifat yang dipertahankan pada transformasi ini:

1.   Nilai  s  merupakan pemetaan 1 ke 1 dari r . Ini untuk menjamin representasi intensitas

yang tetap. Ini berarti r  dapat diperoleh kembali dari r  dengan transformasi invers:

)(1

 sT r   −=   , 0 ≤  s ≤ 1 (7.7)

2.  Untuk 0 ≤  r i ≤  1, maka 0 ≤  T (r ) ≤  1. Ini untuk menjamin pemetaan T  konsisten pada

rentang nilai yang diperbolehkan.

1

0 1

 s

r k 

 sk= T (r 

k )

 

Gambar 7.4 Fungsi transformasi

Page 108: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 108/229

  8

Untuk fungsi histogram yang menerus,

dww P r T  s

r  )()(

0

∫==   , 0 ≤ r  ≤ 1 (7.8)

yang dalam hal ini w adalah peubah bantu.

Dalam bentuk diskrit, nilai-nilai s diperoleh dengan persamaan berikut:

∑∑==

===k 

 j

 jr 

 j

 j

k k    r  P n

nr T  s

00

)()( (7.9)

yang dalam hal ini, 0 ≤ r k  ≤ 1, k  = 0, 1, 2, …, L – 1

Contoh 7.1. [GON77] Misalkan terdapat citra yang berukuran 64 × 64 dengan jumlah derajatkeabuan ( L) = 8 dan jumlah seluruh pixel  (n) = 64 × 64 = 4096:

k   r k   nk    P r (r k ) = nk /n 

0 0/7 = 0.00 790 0.19

1 1/7 = 0.14 1023 0.25

2 2/7 = 0.29 850 0.21

3 3/7 = 0.43 656 0.16

4 4/7 = 0.57 329 0.08

5 5/7 = 0.71 245 0.06

6 6/7 = 0.86 122 0.03

7 7/7 = 1.00 81 0.02

Gambar 7.5 adalah histogram citra semula sebelum perataan.

Gambar 7.5.  Histogram citra sebelum perataan

0.30

0.25

0.20

0.15

0.10

0.05

0   1/7 3/7 5/7   1r 

 P r (r 

k  )

Page 109: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 109/229

  9

 

Perhitungan perataan histogram adalah sbb:

)()(0

0

00   j

 j

r   r  P r T  s ∑=

==  = 19.0)( 0   =r  P r   

)()(1

0

11   j

 j

r   r  P r T  s ∑=

== = 44.025.019.0)()( 10   =+=+   r  P r  P  r r   

)()(2

0

22   j

 j

r   r  P r T  s ∑=

==  = 65.021.025.019.0)()()( 210   =++=++   r  P r  P r  P  r r r   

dan seterusnya, diperoleh:

 s3 = 0.81  s6 = 0.98

 s4 = 0.89  s7 = 1.00

 s5 = 0.95

Karena pada citra ini hanya ada 8 nilai intensitas, maka nilai-nilai sk  harus dibulatkan ke nilai-

nilai r  yang terdekat:

 s0 = 0.19 lebih dekat ke nilai 1/7 ( = 0.14), maka s0 = 1/7

 s1 = 0.44 lebih dekat ke nilai 3/7 ( = 0.43), maka s1 = 3/7

 s2 = 0.65 lebih dekat ke nilai 5/7 ( = 0.71), maka s2 = 5/7

 s3 = 0.81 lebih dekat ke nilai 6/7 ( = 0.86), maka s3 = 6/7

 s4 = 0.89 lebih dekat ke nilai 6/7 ( = 0.86), maka s4 = 6/7

 s5 = 0.95 lebih dekat ke nilai 7/7 ( = 1.00), maka s5 = 7/7

 s6 = 0.98 lebih dekat ke nilai 7/7 ( = 1.00), maka s6 = 7/7

 s7 = 1.00 lebih dekat ke nilai 7/7 ( = 1.00), maka s7 = 7/7

Hasil transformasinya :

k r k    sk  

0 0 1/7

1 1/7 3/7

2 2/7 5/7

3 3/7 6/7

4 4/7 6/7

5 5/7 1

6 6/7 1

7 1 1

Terlihat dari contoh di atas hanya lima nilai intensitas yang terisi (1/7, 3/7, 5/7, 6/7, dan 1).

 Notasi untuk tiap hasil transformasi didefinisi ulang menjadi:

 s0 = 1/7, s1 = 3/7, s2 = 5/7, s4 = 6/7, s5 = 1

Page 110: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 110/229

  10

Karena r 0 = 0 dipetakan ke s0 = 1/7, terdapat 790 pixel  hasil transformasi yang memiliki nilai

intensitas 1/7. Selanjutnya,  s1 = 3/7 memiliki 1023  pixel ,  s2 =5/7 memiliki 850  pixel . Juga,

karena r 3 dan r 4 dipetakan ke nilai yang sama,  s3 = 6/7, maka jumlah  pixel  yang bernilai 6/7

adalah 656 + 329 = 985. Jumlah pixel  hasil transformasi diringkas pada tabel di bawah ini:

 sk   nk    P  s( sk ) = nk /n

1/7 790 0.19

3/7 1023 0.25

5/7 850 0.21

6/7 656 + 329 = 958 0.23

7/7 245 + 122 + 81 = 448 0.11

Gambar 7.5 adalah histogram citra hasil perataan.  

Gambar 7.5.  Histogram citra hasil perataan

Gambar 7.6 memperlihatkan perataan histogram pada citra anjing collie. Pada mulanya citra

collie  terlihat terlalu gelap. Histogramnya menumpuk pada daerah derajat keabuan bagian

kiri. Dengan teknik perataan histogram, citra anjing collie terlihat lebih bagus. Hal ini dapat

dilihat juga pada histogramnya yang tersebar merata di seluruh daerah derajat keabuan.

Meskipun perataan histogram bertujuan menyebarkan secara merata nilai-nilai derajat

keabuan, tetapi seringkali histogram hasil perataan tidak benar-benar tersebar secara merata

(misalnya pada contoh di atas). Alasannya adalah:1. 

Derajat keabuan terbatas jumlahnya. Nilai intensitas baru hasil perataan merupakan

 pembulatan ke derajat keabuan terdekat.

2. 

Jumlah pixel  yang digunakan sangat terbatas.

Agar hasil perataan benar-benar seragam sebarannya, maka citra yang diolah haruslah dalam

 bentuk malar (continue), yang dalam praktek ini jelas tidak mungkin.

0.30

0.25

0.20

0.15

0.10

0.05

0   1/7 3/7 5/7   1 s

 P  s(s

k  )

Page 111: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 111/229

  11

 (a) Kiri: citra anjing collie yang terlalu gelap; Kanan: histogramnya

(b) Kiri: citra anjing collie setelah perataan histogram; kanan: histogramnya

Gambar 7.6.  Contoh perataan histogram pada citra anjing collie 

Algoritma perataan histogram ditunjukkan pada Algoritma 7.2 [HEN95]. Citra masukan

mempunyai 256 derajat keabuan yang nilai-nilainya dari 0 sampai 255. Intensitas  pixel  

disimpan di dalam Image[0..N-1][0..M-1]. Histogram citra semula disimpan di dalam

tabel Hist[0..255]  yang bertipe riil. Histogram hasil perataan disimpan di dalamHistEq[0..255] yang bertipe integer .

Page 112: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 112/229

  12

 

void  PerataanHistogram(citra Image, int N, int M)

/* Mengubah citra Image yang berukuran N ×    M dengan melakukan perataan

histogram (histogram equalization).

*/

int i, j;float sum, float Hist[256];int HistEq[256]; /* histogram hasil perataan */

histogram(Image,N,M,Hist); /* hitung histogram citra */  

for(i=0;i<256;i++)

{

sum=0.0;

for (j=0;j<=i;j++)

sum=sum+Hist[j];

HistEq[i]=floor(255*sum);

}

/* update citra sesuai histogram hasil perataan */

for(i=0;i<=N-1;i++)

for(j=0;j<=M-1;j++)Image[i][j]=HistEq[Image[i][j]]; 

Algoritma 7.2  Perataan histogram citra 

7.6 Pembentukan Histogram

Perataan histogram memetakan histogram citra semula menjadi histogram yang seragam. Bila

histogram yang diinginkan tidak seragam, maka cara ini tidak dapat digunakan.

Metode pembentukan histogram (histogram spesification) memberikan cara menghasilkan

histogram yang dispesifikasikan oleh pengguna. Cara pembentukannya memanfaatkan sifat

 pada perataan histogram. Bila fungsi transformasi pada perataan histogram menghasilkan

histogram semula menjadi histogram yang seragam, maka fungsi balikannya (inverse)

memetakan histogram yang seragam menjadi histogram semula. Sifat ini dapat dimanfaatkan

untuk mengubah histogram citra menjadi histogram lain yang tidak seragam.

Dasar teorinya adalah sebagai berikut: misalkan  P r (r ) dan  P  z ( z ) masing-masing adalah

histogram citra semula dan histogram yang diinginkan. Fungsi transformasi T   mula-mula

memetakan intensitas citra semula menjadi histogram yang seragam dengan cara perataan

histogram,

dww P r T  s

r  )()(

0

∫==  

Jika histogram yang diinginkan sudah dispesifikasikan, kita dapat melakukan perataan

histogram pula dengan fungsi transformasi G:

Page 113: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 113/229

  13

  dww P  z Gv

 z 

 z  )()(

0

∫==   (7.10)

Balikan (invers) dari fungsi G,

)(1 vG z   −=   (7.11)

akan menghasilkan histogram yang diinginkan kembali.

Dengan mengganti v dengan s pada persamaan yang terakhir,

)(1  sG z   −≈   (7.12)

maka kita dapat memperoleh nilai intensitas yang diinginkan. Hasil yang diperoleh

merupakan hampiran karena kita mencoba menemukan nilai  s  yang transformasinyamendekati nilai z .

Algoritma pembentukan histogram adalah sebagai berikut:

1. 

Misalkan P r (r ) adalah histogram citra semula. Lakukan perataan histogram terhadap citra

semula dengan fungsi transformasi T ,

dww P r T  s

r  )()(

0

∫==  

Dalam bentuk diskrit, nilai-nilai s diperoleh dengan persamaan berikut:

∑∑==

===k 

 j

 jr 

 j

 j

k k    r  P n

nr T  s

00

)()(

2.  Tentukan histogram yang diinginkan, misalkan  P  z ( z ) adalah histogram yang diinginkan.

Lakukan perataan histogram dengan fungsi transformasi G,

dww P  z Gv

 z 

 z  )()(

0

∫==  

Dalam bentuk diskrit, nilai-nilai v diperoleh dengan persamaan berikut:

∑∑==

===k 

 j

 j z 

 j

 j

k k    z  P n

n z Gv

00

)()(

Page 114: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 114/229

  14

3.  Terapkan fungsi transformasi balikan,  z   = G-1( s) terhadap histogram hasil langkah 1.

Caranya adalah dengan mencari nilai-nilai s yang memberi nilai z  terdekat.

Dengan kata lain, histogram nilai-nilai intensitas pada citra semula dipetakan menjadi

intensitas z  pada citra yang diinginkan dengan fungsi

 z  = G-1[T (r )]

Ketiga langkah di dalam algoritma pembentukan histogram di atas digambarkan dalam bagan

 pada Gambar 7.7.

 P r (r ) Histogram Seragam  P 

 z ( z )

T (r) G-1 ( s)

 

Gambar 7.7  Langkah-langkah metode Pembentukan Histogram 

Contoh 7.2. [GON77] Tinjau kembali citra yang berukuran 64 × 64 dengan jumlah derajat

keabuan ( L) = 8 dan jumlah seluruh  pixel  (n) = 64 × 64 = 4096. Tabel histogram citra semula

dan tabel histogram yang diinginkan adalah sebagai berikut:

Tabel histogram citra semula Tabel histogram yang diinginkan

r k   nk    P r (r k ) = nk /n   z k    P  z ( z k )

0/7 = 0.00 790 0.19 0/7 = 0.00 0.00

1/7 = 0.14 1023 0.25 1/7 = 0.14 0.00

2/7 = 0.29 850 0.21 2/7 = 0.29 0.00

3/7 = 0.43 656 0.16 3/7 = 0.43 0.15

4/7 = 0.57 329 0.08 4/7 = 0.57 0.20

5/7 = 0.71 245 0.06 5/7 = 0.71 0.30

6/7 = 0.86 122 0.03 6/7 = 0.86 0.20

7/7 = 1.00 81 0.02 7/7 = 1.00 0.15

Histogram citra semula dan histogram yang diinginkan diperlihatkan secara grafis pada

Gambar 7.8.

Page 115: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 115/229

  15

Histogram citra semula: Histogram yang diinginkan

Gambar 7.8  Histogram citra semula dan histogram yang diinginkan 

Langkah-langkah pembentukan histogram adalah sebagai berikut:

 Langkah 1: Hasil perataan histogram terhadap citra semula,

∑∑==

===k 

 j

 jr 

 j

 j

k k    r  P n

nr T  s

00

)()(

telah dilakukan (lihat Contoh 7.1), dan ini hasilnya:

r  j → sk   nk    P  s( sk ) = nk /n

r 0→  s0 = 1/7 790 0.19

r 1→  s1 = 3/7 1023 0.25

r 2→  s2 = 5/7 850 0.21

r 3, r 4→  s3 = 6/7 656 + 329 = 958 0.23

r 5, r 6, r 7→  s4 = 7/7 245 + 122 + 81 = 448 0.11

 Langkah 2: Lakukan perataan terhadap histogram yang diinginkan, P  z ( z ), dengan persamaan

∑∑==

===k 

 j

 j z 

 j

 j

k k    z  P n

n z Gv

00

)()(  

Hasilnya adalah sbb:

v0 = G( z 0) = 0.00 v4 = G( z 4) = 0.35

v1 = G( z 1) = 0.00 v5 = G( z 5) = 0.65

v2 = G( z 2) = 0.00 v6 = G( z 6) = 0.85

v3 = G( z 3) = 0.15 v7 = G( z 7) = 1.00

0.30

0.25

0.20

0.15

0.10

0.05

0   1/7 3/7 5/7   1r k 

 P r (r 

k  )

0.30

0.25

0.20

0.15

0.10

0.05

0   1/7 3/7 5/7   1 z 

 P  z (z 

k  )

Page 116: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 116/229

  16

 

 Langkah 3: Gunakan transformasi z  = G-1( s) untuk memperoleh nilai z  dari nilai s hasil

 perataan histogram.

 s0 = 1/7 ≈ 0.14 paling dekat dengan 0.15 = G( z 3), jadi G-1(0.14) = z 3 =1/7

 s1 = 3/7 ≈ 0.43 paling dekat dengan 0.35 = G( z 4), jadi G-1(0.43) = z 4 =4/7

 s2 = 5/7 ≈ 0.71 paling dekat dengan 0.65 = G( z 5), jadi G-1(0.71) = z 5 =5/7

 s3 = 6/7 ≈ 0.86 paling dekat dengan 0.85 = G( z 6), jadi G-1(0.86) = z 6 =6/7

 s4 = 1 ≈ 1.00 paling dekat dengan 1.00 = G( z 7), jadi G-1(1.00) = z 7 =1

Diperoleh pemetaan langsung sebagai berikut:

r 0 = 0 →  z 3 = 3/7 r 4 = 4/7 →  z 6 = 6/7

r 1 = 1/7 →  z 4 = 4/7 r 5 = 5/7 →  z 7 = 1

r 2 = 2/7 →  z 5 = 5/7 r 6 = 6/7 →  z 7 = 1

r 3 = 3/7 →  z 6 = 6/7 r 7 = 1 →  z 7 = 1

 Penyebaran pixel :

Karena r 0 = 0 dipetakan ke z 3 = 3/7, maka terdapat 790 pixel  hasil transformasi yang memiliki

nilai intensitas 3/7.

Karena r 1  = 1/7 dipetakan ke  z 4  = 4/7, maka terdapat 1023  pixel   hasil transformasi yang

memiliki nilai intensitas 4/7.

Karena r 2  = 2/7 dipetakan ke  z 5  = 5/7, maka terdapat 850  pixel   hasil transformasi yang

memiliki nilai intensitas 5/7.

Karena r 3 = 3/7 dan r 4 = 4/7 dipetakan ke z 6 = 6/7, terdapat 245 + 122 + 81 = 448 pixel  hasil

transformasi yang memiliki nilai intensitas 1.

Selanjutnya, tidak ada pixel  yang mempunyai intensitas  z 0 = 0, z 1 = 1/7, dan z 2 = 2/7, karena

tidak ada r k  yang dipetakan ke nilai-nilai z  tersebut.

 z k   nk    P  z ( z k ) = nk /n

0 0 0.00

1/7 0 0.00

2/7 0 0.00

3/7 790 0.19

4/7 1023 0.25

5/7 850 0.21

6/7 985 0.24

1 448 0.11

Page 117: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 117/229

  17

Histogram yang terbentuk:

Seperti yang sudah disebutkan sebelum ini, histogram yang diperoleh merupakan hampirandari histogram yang dispesifikasikan karena kita mencoba menemukan nilai  s  yang

transformasinya mendekati nilai z .

Dalam praktek, mungkin terdapat ambiguitas pada nilai transformasi balikan, G-1( s). Dengan

kata lain, nilai transformasi balikan dari s ke z  tidak tunggal. Hal ini terjadi karena: (i) proses

 pembulatan G-1( s) ke nilai intensitas terdekat, atau (ii) terdapat nilai intensitas yang tidak

terisi di dalam histogram spesifikasi. Solusi termudah untuk masalah ini adalah memilih nilai

 z  yang terdekat dengan histogram yang dispesifikasikan.

Algoritma Pembentukan Histogram ditunjukkan pada Algoritma 7.3. Citra masukan

mempunyai 256 derajat keabuan yang nilai-nilainya dari 0 sampai 255. Intensitas  pixel  

disimpan di dalam Image[0..N-1][0..M-1]. Hasil perataan histogram dari citrasemula disimpan kembali di dalam matriks Image[0..N-1][0..M-1]. Histogram yang

dispesifikasikan disimpan di dalam Spec[0..255]. Histogram hasil perataan dari Spec 

disimpan di dalam tabel SpecEq[0..255]. Histogram hasil transformasi balikan disimpan

di dalam tabel InvHist[0..255] .

void  PembentukanHistogram(citra Image, int N, int M, float Spec[256])

/* Mengubah citra Image yang berukuran N ×   M berdasarkan histogram yang

dispesifikasikan oleh pengguna (Spec).

*/

int i, j, minj, minval;float sum, Hist[256];int HistEq[256], SpecEq[256], InvHist[256];

/* lakukan perataan histogram terhadap citra semula */  

histogram(Image,N,M,Hist); /* hitung histogram citra */  

for(i=0;i<256;i++)

{

sum=0.0;

for (j=0;j<=i;j++)

0.30

0.25

0.20

0.15

0.10

0.05

0   1/7 3/7 5/7   1 z 

 P  z (z 

k  )

Page 118: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 118/229

  18

  sum=sum+Hist[j];

HistEq[i]=floor(255*sum);

}

/* lakukan perataan histogram terhadap citra Spec */  

for(i=0;i<=255;i++)

{sum=0.0;

for (j=0;j<=i;j++)

sum=sum+Spec[j];

SpecEq[i]=floor(255*sum);

}

/* lakukan transformasi balikan */  

for(i=0;i<=N-1;i++)

{

minval=abs(HistEq[i] – SpecEq[0]);

minj=0;

for(j=0;j<=255;j++)

if (abs(HistEq[i] – SpecEq[j]) < minval)

{

minval = abs(HistEq[i] – SpecEq[j]);minj=j;

}

InvHist[i]=minj;

}

/* update citra setelah pembentukan histogram */  

for(i=0;i<=N-1;i++)

for(j=0;j<=M-1;j++)

Image[i][j]]=InvHist[Image[i][j]]; 

Algoritma 7.3  Pengubahan citra berdasarkan histogram yang dispesifikasikan 

Page 119: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 119/229

  0

7.7 Pelembutan Citra ( Image Smoothing ) 

Pelembutan citra (image smoothing ) bertujuan untuk menekan gangguan (noise) pada citra.

Gangguan tersebut biasanya muncul sebagai akibat dari hasil penerokan yang tidak bagus

( sensor noise,  photographic grain noise) atau akibat saluran transmisi (pada pengiriman

data).

Gangguan pada citra umumnya berupa variasi intensitas suatu  pixel  yang tidak berkorelasi

dengan  pixel - pixel   tetangganya. Secara visual, gangguan mudah dilihat oleh mata karena

tampak berbeda dengan  pixel   tetangganya. Gambar 7.9 adalah citra Lena yang mengalamigangguan berupa spike atau speckle yang tampil pada gambar dalam bentuk bercak putih atau

hitam seperti beras.

 Pixel  yang mengalami gangguan umumnya memiliki frekuensi tinggi (berdasarkan analisis

frekuensi dengan transformasi Fourier). Komponen citra yang berfrekuensi rendah umumnyamempunyai nilai  pixel konstan atah berubah sangat lambat. Operasi pelembutan citra

dilakukan untuk menekan komponen yang berfrekuensi tinggi dan meloloskan komponen

yang berfrekuensi rendah.

Gambar 7.9. Citra Lena yang mengalami gangguan berupa spike 

Operasi pelembutan dapat dilakukan pada ranah spsial maupun pada ranah frekuensi. Pada

ranah spasial, operasi pelembutan dilakukan dengan mengganti intensitas suatu  pixel  denganrata-rata dari nilai  pixel   tersebut dengan nilai  pixel - pixel   tetangganya. Jadi, diberikan citra

 f ( x, y) yang berukuran N ×  M . Citra hasil pelembutan, g ( x, y), didefinisikan sebagai berikut:

∑∑= =

++=2

1

2

1

),(1

),(m

mr 

n

n s

 s yr  x f d 

 y x g    (7.13)

Page 120: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 120/229

  1

yang dalam hal ini d  adalah jumlah  pixel  yang terlibat dalam perhitungan rata-rata. Gambar

7.10 memperlihatkan dua buah skema perata-rataan [GON77]. Pada skema pertama, tetangga

sebuah pixel adalah  pixel-pixel   yang berjarak ∆ x, sedangkan pada skema kedua tetangga

sebuah pixel adalah pixel-pixel  yang berjarak paling jauh √2 ∆ x.

radius = ∆ x 

(a) 

radius = √2 ∆ x (b)

Gambar 7.10. Skema perata-rataan

Operasi perata-rataan di atas dapat dipandang sebagai konvolusi antara citra  f ( x, y) dengan

 penapis h( x, y):

 g ( x, y) = f ( x, y) ∗ h( x, y) (7.14)

Penapis h  disebut penapis rerata  (mean filter ). Dalam ranah frekuensi, operasi konvolusi

tersebut adalah

G(u,v) = F (u,v) H (u,v) (7.15)

+

Tetangga  pixel  +

+

+

Tetangga  pixel  +

+

Page 121: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 121/229

  2

Contoh penapis rerata yang berukuran 3 × 3 dan 2 × 2 adalah seperti di bawah ini (elemen

yang bertanda • menyatakan posisi (0, 0) dari pixel  yan dikonvolusi)):

(i)

•9/19/19/19/19/19/1

9/19/19/1

  (ii)

4/14/1

4/14/1

 

Algoritma pelembutan citra dengan penapis 3 × 3 ditunjukkan pada Algoritma 7.4.

void PerataanCitra(citra Image, citra ImageResult, int N, int M)

/* Melembutkan citra Image yang berukuran N ×   M dengan melakukan konvolusi

citra Image dengan penapis rerata yang berukuran 3 ×   3. Hasil pelembutna

disimpan di dalam ImageResult.

*/

{ int i, j;

for (i=1; i<=N-1; i++)

for(j=1; j<=M-1; j++)

{

ImageResult[i][j]=

Image[i-1][j-1] + Image[i-1][j] + Image[i-1,j+1]+

Image[i][j-1] + Image[i][j] + Image[i,j+1] +

Image[i+1][j-1] + Image[i+1][j] + Image[i+1,j+1];

ImageResult[i][j]=ImageResult[i][j]/9;

}

}

Algoritma 7.4. Operasi pelembutan citra dengan penapis rerata 3 × 3.

Operasi penapisan ini mempunyai efek pemerataan derajat keabuan, sehingga gambar yang

diperoleh tampak lebih kabur kontrasnya. Efek pengaburan ini disebut efek blurring . Gambar

7.11 adalah hasil pelembutan citra Lena dari Gambar 7.9 dengan penapis rata-rata 3 × 3.

Efek pengaburan yang dihasilkan dari penapis rata-rata dapat dikurangi dengan prosedur

 pengambangan berikut:

 y x f 

 s yr  x f d  y x f  s yr  x f d  y x g 

m

mr 

n

n s

m

mr 

n

n s >

++−++=   ∑∑∑∑ = == =

lainnya),,(

),(

1

),( jika),(

1

),(

2

1

2

1

2

1

2

(7.16)

dengan T  adalah nilai ambang yang dispesifikasikan.

Page 122: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 122/229

  3

 

Gambar 7.11. Citra Lena yang sudah dilembutkan dengan penapis rerata 3 × 3

Penapis h( x, y) pada operasi pelembutan citra disebut juga penapis lolos-rendah  (low-pass

 filter ), karena penapis tersebut menekan komponen yang berfrekuensi tinggi (misalnya  pixel  

gangguan, pixel  tepi) dan meloloskan komponen yang berfrekuensi rendah.

 Penapis Lolos-Rendah

Penapis rata-rata adalah salah satu penapis lolos-rendah yang paling sederhana. Aturan untuk

 penapis lolos-rendah adalah [GAL95]:

1.  Semua koefisien penapis harus positif

2. 

Jumlah semua koefisien harus sama dengan 1

Jika jumlah semua koefisien lebih besar dari 1, maka konvolusi menghasilkan penguatan

(tidak diinginkan). Jika jumlah semua koefisien kurang dari 1, maka yang dihasilkan adalah

 penurunan, dan nilai mutlak setiap  pixel  di seluruh bagian citra berkurang. Akibatnya, citra

hasil pelembutan tampak lebih gelap.

Ilustrasi konvolusi dengan penapis rata-rata 3 ×  3 terhadap citra yang mengandung  pixel  

derau diperlihatkan di bawah ini.  Pixel   yang mengalami gangguan dimisalkan bernilai 17,

sedangkan nilai  pixel   tetangganya (yang tidak mengalami gangguan) bernilai rendah,

misalkan 8. Efek dari penapis lolos-rendah adalah sbb: pixel - pixel  tetangga tidak mengalami

 perubahan (kecuali bila terdapat perbedaan nilai atau gradien antara  pixel - pixel   yang

 bertetangga), sedangkan pixel  derau nilainya turun menjadi 9:

8888

88178

8888

 

8888

8998

8888

 

(i) sebelum konvolusi (ii) setelah konvolusi

Page 123: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 123/229

  4

 Nilai 9 ini diperoleh dari hasil perhitungan konvolusi:

 f ’(1,1) = (8 + 8 + 8 + 8 + 17 + 8 + 8 + 8 + 8)/9 = 81/9 = 9

Selain dengan penapis rata-rata, penapis lolos-rendah lain yang dapat digunakan pada operasi

 pelembutan adalah:

(i)

16/18/116/1

8/14/18/1

16/18/116/1

  (ii)

10/110/110/1

10/15/110/1

10/110/110/1

  (iii)

16/18/116/1

8/14/18/1

16/18/116/1

 

Jika citra hasil penapisan lolos-rendah dikurangi dari citra semula (yang mengandung derau),

maka yang dihasilkan adalah peningkatan relatif komponen citra yang berfrekuensi tinggi

tanpa peningkatan komponen derau. Akibatnya, citra hasil pengurangan muncul lebih tajam

dari citra semula. Ini dapat digunakan untuk menonjolkan bagian citra yang tidak jelas,

misalnya tertutup oleh kabut atau awan. Aplikasi ini dapat diterapkan untuk mendapatkan

citra kota Jakarta yang lebih bagus daripada citra kota Jakarta yang tertutup oleh kabut.

Penapis lolos-rendah yang disebutkan di atas merupakan penapis lanjar (linear ). Operasi

 pelembutan dapat juga dilakukan dengan menggunakan penapis nirlanjar, yaitu:

a.  Penapis minimum (min filter )

 b. 

Penapis maksimum (max filter )

c.  Penapis median (median filter )

Penapis nirlanjar sebenarnya tidak termasuk kategori operasi konvolusi yang lazim. Cara

kerja penapis tersebut berbeda dari penapis lanjar. Operasi dengan penapis nirlanjar dihitung

dengan mengurutkan nilai intensitas sekelompok  pixel , lalu mengganti nilai  pixel   yang

sedang diproses dengan nilai tertentu dari kelompok tersebut (misalnya nilai median dari

kelompok pixel , nilai maksimum atau nilai minimum dari kelompok pixel )

 Penapis Median

Penapis nirlanjar yang akan dijelaskan adalah penapis median. Penapis ini dikembangkan

oleh Tukey. Pada penapis median, suatu “jendela” (window) memuat sejumlah pixel  (ganjil).

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.

Sebagai contoh, tinjau jendela berupa kelompok  pixel  (berbentuk kotak diarsir) pada sebuah

citra pada Gambar 7.12(a). Pixel  yang sedang diproses adalah yang mempunyai intensitas 35.

Urutkan pixel - pixel  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 nilai median (10). Hasil dari penapis median diperlihatkan pada

Gambar 7.12(b). Jadi, penapis median menghilangkan nilai pixel  yang sangat berbeda dengan

 pixel  tetangganya.

Page 124: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 124/229

  5

  13 10 15 14 18 13 10 15 14 18

12 10 10 10 15 12 10 10 10 15

11 11 35 10 10 11 11 10 10 10

13 9 12 10 12 13 9 12 10 12

13 12 9 8 10 13 12 9 8 10

(a) Pixel  bernilai 35 terkena derau (b) 35 diganti dengan median dari

kelompok 3 × 3 pixel  

Gambar 7.12. Penghilangan derau dengan penapis median 3 × 3.

Selain berbentuk kotak, jendela pada penapis median dapat bermacam-macam bentuknya,

seperti palang (cross), lajur vertikal (vertical strip), atau lajur horizontal (horizontal strip).

Gambar 7.13 adalah hasil pelembutan citra dari Gambar 7.9 dengan penapis median 3 × 3.

Dari kedua contoh penapis (penapis rerata dan penapis median), dapat dilihat bahwa penapis

median memberikan hasil yang lebih baik dibandingkan penapis rerata untuk citra yang

mengalami gangguan dalam bentuk spike berupa bercak-bercak putih.

Gambar 7.13. Citra Lena yang dilembutkan dengan penapis median.

Cara lain yang dapat dilakukan pada pelembutan citra adalah merata-ratakan derajat keabuan

setiap  pixel   dari citra yang sama yang diambil berkali-kali. Misalnya untuk gambar yang

sama direkam dua kali, lalu dihitung intensitas rata-rata untuk setiap pixel :

 f  ‘( x, y) =2

1{ f 1( x, y) + f 2( x, y) } (7.16)

Page 125: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 125/229

  6

7.8 Penajaman Citra (Image Sharpening)

Operasi penajaman citra bertujuan memperjelas tepi pada objek di dalam citra. Penajaman

citra merupakan kebalikan dari operasi pelembutan citra karena operasi 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 telihat 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

enhancement ). Gambar 7.14 adalah citra Lena setelah ditajamkan gambarnya.

(a) (b)

Gambar 7.14 (a) Citra Lena semula, (b) Citra Lena setelah penajaman

Selain untuk mempertajam gambar, penapis lolos-tinggi juga digunakan untuk mendeteksi

keberadaan tepi (edge  detection). Dalam hal ini,  pixel - pixel   tepi ditampilkan lebih terang

(highlight ) sedangkan pixel - pixel  bukan tepi dibuat gelap (hitam). Masalah pendeteksian tepi

akan dibahas dalam pokok bahasan tersendiri.

 Penapis Lolos-Tinggi

Aturan penapis lolos-tinggi [GAL95]:

1. 

koefisien penapis boleh positif, negatif, atau nol

2.   jumlah semua koefisien adalah 0 atau 1

Jika jumlah koefisien = 0, maka komponen berfrekuensi rendah akan turun nilainya,

sedangkan jika jumlah koefisien sama dengan 1, maka komponen berfrekuensi rendah akan

tetap sama dengan nilai semula.

Page 126: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 126/229

  7

Contoh-contoh penapis lolos-tinggi:

(i)

−−−

−−

−−−

111

181

111

  (ii)

−−−

−−

−−−

111

191

111

  (iii)

−−

010

151

010

 

∑ = 0 ∑ = 1 ∑ = 1

(iv)

−−

121

252

121

  (v)

−−

121

242

121

  (vi)

010

141

010

 

∑ = 1 ∑ = 0 ∑ = 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  pixel   yang dihitung.

Koefisien negatif yang lebih kecil di sekitar titik tengah penapis bekerja untuk mengurangi

faktor pembobotan yang besar. Efek nettonya adalah,  pixel - pixel   yang bernilai besar

diperkuat, sedangkan area citra dengan intensitas pixel  konstan tidak berubah nilanya.

Gambar 7.15 mempelihatkan konvolusi dengan penapis lolos-tinggi, gambar (a) adalah citra

yang tidak mempunyai  pixel   tepi, dan gambar (b) adalah citra yang mempunyai  pixel   tepi.

Penapis lolos-tinggi yang digunakan adalah penapis (i) dan (ii).

Karena koefisien penapis mengandung nilai negatif, maka konvolusi mungkin saja

menghasilkan pixel  bernilai negatif. Meskipun intensitas bernilai negatif menarik, tetapi kita

tidak dapat menampilkannya. Untuk alasan terakhir ini, implementasi konvolusi men- set  nilainegatif menjadi nilai 0. Cara lainnya adalah dengan mengambil nilai mutlaknya atau

menskalakan semua nilai-nilai  pixel   secara menaik sehingga nilai yang paling negatif

menjadi 0.

Page 127: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 127/229

  8

 

Citra semula:

4444444

4444444

4444444

4444444

4444444

 

Citra semula:

8888444

8888444

8888444

8888444

8888444

 

Kurva yang merepresentasikan citra:

0

4

8

 x 

f ( x ,y )

 

Kurva yang merepresentasikan citra:

4

8

0 x 

f ( x ,y )

 

Hasil konvolusi dengan penapis (i):

 x x x x x x x

 x x x x

 x x

 x x x x x x x

0000000000

00000

 

Hasil konvolusi dengan penapis (i):

+−

+−

+−

 x x x x x x x

 x x

 x x

 x x

 x x x x x x x

0012120

0012120

0012120

 

Hasil konvolusi dengan penapis (ii):

 x x x x x x x

 x x

 x x

 x x

 x x x x x x x

44444

44444

44444

 

(a)

Hasil konvolusi dengan penapis (ii):

+−

+−

+−

 x x x x x x x

 x x

 x x

 x x

 x x x x x x x

882084

882084

882084

 

(b)

Gambar 7.15 Hasil konvolusi dengan penapis lolos-tinggi: (a) citra yang tidak memiliki

 pixel  tepi, (b) citra yang mengandung pixel - pixel  tepi 

Page 128: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 128/229

  9

Gambar 7.16 adalah contoh lain penajaman gambar terhadap citra  girl , masing-masing

dengan penapis (ii), (iii), dan (iv).

(a) (b)

(c) (d)

Gambar 7.16 (a) citra girl  sebelum penajaman; (b), (c), dan (d) masing-masing adalah hasil

 penajaman dengan penapis lolos-tinggi (ii), (iii), dan (iv)

7.9 Pewarnaan Semu

Pewarnaan semu adalah proses memberi warna tertentu pada nilai-nilai  pixel   suatu citra

skala-abu pada suatu citra berdasarkan kriteria tertentu, misalnya suatu warna tertentu untuk

suatu interval derajat keabuan tertentu. Hal ini dilakukan karena mata manusia mudah

membedakan banyak jenis warna.

Page 129: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 129/229

  10

7.10 Koreksi Geometrik

Koreksi geometrik dilakukan pada citra yang memiliki gangguan yang terjadi pada waktu

 proses perekaman citra, misalnya pergeseran koordinat citra (translasi), perubahan ukuran

citra, dan perubahan orientasi koordinat citra ( skew). Proses koreksi geometri untuk

meningkatkan kualitas citra tersebut disebut juga koreksi geometri. Koreksi geometri yang

sederhana adalah dengan operasi geometri sederhana seperti rotasi, translasi, dan penskalaan

citra.

Gambar 7.17 kiri adalah citra kota San Fransisco yang condong ( skew) ke kanan. Rotasi

sejauh 6°  berlawanan arah jarum jam menghasilkan perbaikan yang ditunjukkan pada

Gambar 8.11 kanan.

(a) (b)

Gambar 7.17 (a) Citra San Fransisco yang condong ke kanan; (b) Hasil rotasi sejauh 6° 

 berlawanan arah jarum jam.

Page 130: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 130/229

 

Bab 8_Pendeteksian Tepi ( Edge Detection) 121 

Bab 8

Pendeteksian Tepi ( Edge Detection)

eningkatan kualitas citra (image enhancement ) bertujuan menghasilkan citra

dengan kualitas yang lebih baik dibandingkan dengan citra semula. Langkah

selanjutnya dalam pengolahan citra adalah analisis citra  (image analysis).

Analisis citra bertujuan mengidentifikasi parameter-parameter yang diasosiasikan

dengan ciri ( feature) dari objek di dalam citra, untuk selanjutnya parameter

tersebut digunakan dalam menginterpretasi citra. Analisis citra pada dasarnya

terdiri dari tiga tahapan: ekstrakasi ciri ( feature extraction), segmentasi, dan

klasifikasi.

Faktor kunci dalam mengekstraksi ciri adalah kemampuan mendeteksi keberadaan

tepi (edge) dari objek di dalam citra. Setelah tepi objek diketahui, langkah

selanjutnya dalam analisis citra adalah segmentasi, yaitu mereduksi citra menjadiobjek atau region, misalnya memisahkan objek-objek yang berbeda dengan

mengekstraksi batas-batas objek (boundary). Langkah terakhir dari analisis citra

adalah klasifikasi, yaitu memetakan segmen-segmen yang berbeda ke dalam kelas

objek yang berbeda pula.

8.1 Definisi Tepi

Yang dimaksud dengan tepi (edge) adalah perubahan nilai intensitas derajat

keabuan yang mendadak (besar) dalam jarak yang singkat (Gambar 8.1).

Perbedaan intensitas inilah yang menampakkan rincian pada gambar. Tepi

 biasanya terdapat pada batas antara dua daerah berbeda pada suatu citra. Tepidapat diorientasikan dengan suatu arah, dan arah ini berbeda-beda pada

 bergantung pada perubahan intensitas.

P

Page 131: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 131/229

 

122 Pengolahan Citra Digital

 jarak  

 perubahan intensitas α = arah tepiα 

derajat

keabuan

 x 0   x 0 

derajat

keabuan

 x 0 

derajat

keabuan

Gambar 8.1 Model tepi satu-matra

Perhatikan Gambar 8.2. Ada tiga macam tepi yang terdapat di dalam citra digital.Ketiganya adalah:1.  Tepi curam

Tepi dengan perubahan intensitas yang tajam. Arah tepi berkisar 90°.

2.  Tepi landaiDisebut juga tepi lebar, yaitu tepi dengan sudut arah yang kecil. Tepi landaidapat dianggap terdiri dari sejumlah tepi-tepi lokal yang lokasinya berdekatan.

3.  Tepi yang mengandung derau (noise)Umumnya tepi yang terdapat pada aplikasi computer vision  mengandungderau. Operasi peningkatan kualitas citra (image enhancement ) dapat dilakukanterlebih dahulu sebelum pendeteksian tepi.

(a) Tepi curam  (b) tepi landai (c) tepi curam dengan derau 

 x

   d  e  r  a   j  a   t   k  e  a   b  u  a  n

 

(d) break down tepi landai

88888444

88888444

88888444

88888444

88888444

(e) citra dengan tepicuram

88876544

88876544

88876544

88876544

88876544

(f) citra dengan tepi landai

Gambar 8.2   Jenis-jenis tepi

Page 132: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 132/229

 

Bab 8_Pendeteksian Tepi ( Edge Detection) 123 

8.2 Tujuan Pendeteksian Tepi

Pendeteksian tepi merupakan langkah pertama untuk melingkupi informasi didalam citra. Tepi mencirikan batas-batas objek dan karena itu tepi berguna untuk proses segmentasi dan identifikasi objek di dalam citra.

Tujuan operasi pendeteksian tepi adalah untuk meningkatkan penampakan garis batas suatu daerah atau objek di dalam citra. Karena tepi termasuk ke dalamkomponen berfrekuensi tinggi, maka pendeteksian tepi dapat dilakukan dengan penapis lolos-tinggi.

Terdapat beberapa teknik yang digunakan untuk mendeteksi tepi, antara lain:1.  Operator gradien pertama (differential gradient )2.  Operator turunan kedua ( Laplacian)3.  Operator kompas (compass operator )

8.3 Pendeteksian Tepi dengan Operator GradienPertama

Perubahan intensitas yang besar dalam jarak yang singkat dipandang sebagaifungsi yang memiliki kemiringan yang besar. Kemiringan fungsi biasanyadilakukan dengan menghitung turunan pertama ( gradient ). Karena citra  f ( x, y)adalah fungsi dwimatra dalam bentuk diskrit, maka turunan pertamanya adalahsecara parsial, masing-masing dalam arah- x dan dalam arah- y, sebagai berikut:

=

∂∂

=∇ y

 x

G

G

 y

 f  x

 f 

 f    (8.1)

yang dalam hal ini,

 x

 y x f  y x x f 

 x

 y x f G x

−∆+=

∂=

),(),(),(  (8.2)

 y

 y x f  y y x f 

 y

 y x f G y

−∆+=

∂=

),(),(),(  (8.3)

Biasanya 1=∆=∆   y x , sehingga persamaan turunan pertama menjadi:

),(),1(

),(

 y x f  y x f  x

 y x f 

G x  −+=

∂=

  (8.4)

),()1,(),(

 y x f  y x f  y

 y x f G y   −+=

∂=   (8.5)

Page 133: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 133/229

 

124 Pengolahan Citra Digital

 x

 y

( x, y) ( x+ 1, y)

( x , y+ 1)

( x, y- 1)

( x- 1, y)

( x+ 1, y+ 1)

( x+ 1, y-1)

( x-1, y+1)

( x-1, y-1)

Titik-titik yang terlibat dalam perhitungan turunan pertama diperlihatkan pada

Gambar 8.3.

Gambar 8.3 Titik-titik yang dilibatkan dalam perhitungan gradien

Kedua turunan tersebut dapat dipandang sebagai dua buah mask   konvolusisebagai berikut:

[ ]11)(1   −= xG   dan

−=

1

1)(1   yG  

Contoh 8.1.  [LOW91] Misalkan terdapat sebuah 5 × 5 citra dengan dua derajatkeabuan sebagai berikut:

00011

00011

0011111111

11111

 

Hasil perhitungan gradien setiap pixel  di dalam citra adalah sebagai berikut:

Citra Gradien- x  Gradien-y Arah gradien

0001100011

00111

11111

11111

 

*0010*0010

*0100

*0000

*0000

−−

−  

*****

00000

00100

11000

00000

 

****

****

****

***

*****

↔↔

bb

 

 

Page 134: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 134/229

 

Bab 8_Pendeteksian Tepi ( Edge Detection) 125 

Berdasarkan konvolusi dengan kedua mask   tersebut, kita menghitung kekuatan

tepi, G[ f ( x, y)], yang merupakan magnitudo dari gradien, dan arah tepi, α( x, y),

untuk setiap pixel :

G[ f ( x, y)]=22

 y x  GG   +   (8.6)

α( x, y) = tan-1  x

 y

G

G  (8.7)

Karena menghitung akar adalah persoalan rumit dan menghasilkan nilai riil, maka

dalam praktek kekuatan tepi biasanya disederhanakan perhitungannya dengan

menggunakan salah satu dari alternatif rumus berikut [DUL97]:

(i) G[ f ( x, y)] =22

 y x   GG   + , atau

(ii) G[ f ( x, y)] =  y x   GG   + , atau

(iii) G[ f ( x, y)] = },max{22

 y x   GG , atau

(iv) G[ f ( x, y)] = max{ },  y x   GG .

Dalam praktek, persamaan (ii) dan (iv) biasanya lebih disukai dan lebih mudah

dikerjakan karena mengandung jumlah operasi aritmetika yang lebih sedikit.

Hasil pendeteksian tepi adalah citra tepi  (edges image)  g ( x, y), yang nilai setiap

 pixel -nya menyatakan kekuatan tepi:

)],([),(   y x f G y x g    =  

Keputusan apakah suatu pixel  merupakan tepi atau bukan tepi dinyatakan dengan

operasi pengambangan berikut:

  ≥

=lainnya,0

)],([ jika,1),(

T  y x f G y x g    (8.8)

yang dalam hal ini T  adalah nilai ambang, pixel  tepi dinyatakan putih sedangkan

 pixel   bukan tepi dinyatakan hitam. Gambar 8.4 adalah contoh hasil deteksi

semua tepi citra Lena, citra Camera, dan citra botol.

Page 135: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 135/229

 

126 Pengolahan Citra Digital

Gambar 8.4 Deteksi semua tepi citra Lena, camera, dan botol

Page 136: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 136/229

 

Bab 8_Pendeteksian Tepi ( Edge Detection) 127 

Selain operator gradien yang sudah disebutkan di atas, masih ada beberapa

operator gradien pertama yang lain yang dapat digunakan untuk mendeteksi tepi

di dalam citra, yaitu:

(a)  Operator gradien selisih-terpusat (center-difference):

2

),1(),1(),(),(

  y x f  y x f 

 x

 y x f  y x D x

−−+=∂

∂=   (8.9)

2

)1,()1,(),(),(

  −−+=

∂=

  y x f  y x f 

 y

 y x f  y x D y   (8.10)

yang ekivalen dengan mask  berikut:

[ ]101)(2   −= x D   dan

=

1

0

1

)(2   y D  

(b) Operator Sobel

Tinjau pengaturan pixel  di sekitar pixel  ( x, y):

456

37

210

),(

aaa

a y xa

aaa

 

Operator Sobel adalah magnitudo dari gradien yang dihitung dengan

 M  = 22 y x   s s   +  

yang dalam hal ini, turunan parsial dihitung dengan

)()( 670432   acaaacaa s x   ++−++=   (8.11)

)()( 4562210   acaaacaa s y   ++−++=   (8.12)

dengan konstanta c  = 2. Dalam bentuk mask ,  s x  dan  s y  dapat dinyatakan

sebagai

=

101

202

101

 xS    dan

−−−

=

121

000

121

 yS   

Page 137: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 137/229

 

128 Pengolahan Citra Digital

Arah tepi dihitung dengan persamaan

α ( x, y) = tan-1   

  

 

 x

 y

S   (8.13)

Contoh 8.2.  Contoh berikut ini memeperlihatkan pendeteksian tepi dengan

operator Sobel. Konvolusi pertama dilakukan terhadap  pixel  yang bernilai 1 (di

titik pusat mask ):

23152

17524

31753

24612

15243

 

18*

*****

 

(i) citra semula (ii) hasil konvolusi

 Nilai 18 pada citra hasil konvolusi diperoleh dengan perhitungan berikut:

S  x = (3)(-1) + (2)(-2) + (3)(-1) + (2)(1) + (6)(2) + (7)(1) = 11

S  y = (3)(1) + (4)(2) + (2)(1) + (3)(-1) + (5)(-2) + (7)(-1) = -7

 M  = 22 y x   s s   +  = 22 )7(11   −+  ≅   y x   S S   + = 711   −+  = 18

Pada contoh ini, nilai M  = 22 y x   s s   +  dihampiri dengan menghitung

 M  ≅   y x   S S   + .  

Contoh 8.3. Di bawah ini contoh lain pendeteksian tepi dengan operator Sobel,

dimana hasil konvolusi diambangkan dengan T  = 12.

Citra:  y x -gradien-gradien   + :

34443321002342334010

3333433100

3233420200

3420001000

3302000000

 

***********8642212122*

*42421014104*

*061216201086*

*414121410464*

**********

 

Page 138: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 138/229

 

Bab 8_Pendeteksian Tepi ( Edge Detection) 129 

Hasil pengambangan dengan T  = 12:

**********

*8642212122*

*42421014104*

*061216201086*

*414121410464*

**********

 

 

(c) Operator Prewitt

Persamaan gradien pada operator Prewitt sama seperti operator Sobel, tetapi

menggunakan nilai c = 1:

=

101

101

101

 x P    dan

−−−

=

111

000

111

 y P   

(d) Operator Roberts

Operator Roberts sering disebut juga operator silang (gambar 8.5). Gradien

Roberts dalam arah- x dan arah- y dihitung dengan rumus:

),()1,1(),(   y x f  y x f  y x R   −++=+   (8.14)

),1()1,(),(   y x f  y x f  y x R   +−+=−   (8.15)

 f ( x, y)  f ( x + 1, y)

 f ( x + 1, y+1) f ( x, y+1)

 x 

Gambar 8.5 Operator silang  

Page 139: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 139/229

 

130 Pengolahan Citra Digital

Operator R+ adalah hampiran turunan berarah dalam arah 45°, sedangkan R- 

adalah hampiran turunan berarah dalam arah 135°.

Dalam bentuk mask  konvolusi, operator Roberts adalah:

−=+

1001 R  dan

=−0110 R  

Khusus untuk operator Roberts, arah tepi dihitung dengan rumus

),(   y xα  = )(tan4

1

+

−−+ R

 Rπ  

  (8.17)

Sedangkan kekuatan tepi umumnya dihitung dengan rumus

G[ f ( x, y)] = −+  + R R  

Contoh 8.4.  Contoh berikut ini memeperlihatkan pendeteksian tepi dengan

operator Roberts.

23152

17524

31753

24612

15243

 

*****

*7811

*4452

*2875

*6334

 

(i) citra semula (ii) hasil konvolusi

 Nilai 4 pada pojok kiri atas pada citra hasil konvolusi diperoleh dengan perhitungan

sebagai berikut:

 f ’[0,0] = │3 – 1 │ + │4 – 2 │ = 4

8.4 Pendeteksian Tepi dengan Operator TurunanKedua

Operator turunan kedua disebut juga operator Laplace. Operator Laplace

mendeteksi lokasi tepi lebih akurat khususnya pada tepi yang curam. Pada tepiyang curam, turunan keduanya mempunyai persilangan nol ( zero-crossing ), yaitu

titik di mana terdapat pergantian tanda nilai turunan kedua (Gambar 8.6),

Page 140: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 140/229

 

Bab 8_Pendeteksian Tepi ( Edge Detection) 131 

sedangkan pada tepi yang landai tidak terdapat persilangan nol. Persilangan nol

merupakan lokasi tepi yang akurat.

Turunan kedua fungsi dengan dua peubah adalah:

2

2

2

22

 y

 f 

 x

 f  f 

∂+∂

∂=∇   (8.18)

 f ( x)

∂ f /∂ x

∂2 f /∂ x2 

 

(a) Tepi landai (b) Tepi curam

Gambar 8.6 Deteksi tepi dengan operator turunan kedua

Dengan menggunakan definisi hampiran selisih-mundur (backward   difference

approximation):

 x

 y x x f  y x f 

 x

 y x f  xG

∆−−=

∂=

),(),(),()(3   (8.19)

 y

 y y x f  y x f 

 y

 y x f  yG

∆∆−−=

∂∂= ),(),(),(

)(3   (8.20)

Page 141: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 141/229

 

132 Pengolahan Citra Digital

maka

2

2

2

22

 y

 f 

 x

 f  f 

∂+

∂=∇  

))(())(( 3131   yGG xGG   +=

)),(()),((1

)),(()),((1

1111   y y x f G y x f G y

 y x x f G y x f G x

∆−−∆

+∆−−∆

=  

}),(),(),(),(

{1

}),(),(),(),(

{1

 y

 y y x f  y x f  y x f  y y x f 

 y

 x

 y x x f  y x f  y x f  y x x f 

 x

∆−+−−∆+

∆+

∆−+−−∆+

∆=

 

2)(

),(),(2),(

 x

 y x x f  y x f  y x x f 

∆−+−∆+=  

2)(

),(),(2),(

 y

 y y x f  y x f  y y x f 

∆∆−+−∆++  

Dengan mengasumsikan ∆ x = ∆ y = 1, maka diperoleh:

)1,(),(2)1,(),1(),(2),1(),(2 −+−++−+−+=∇   y x f  y x f  y x f  y x f  y x f  y x f  y x f 

  )1,(),1(),(4),1()1,(   ++++−−+−=   y x f  y x f  y x f  y x f  y x f   

(8.21)

atau dapat dinyatakan sebagai mask :

010

141

010

 

Selain mask  di atas, masih ada dua hampiran operator Laplace yang lain, yaitu

−−−

−−

−−−

111

181

111

  dan

−−

121

242

121

 

Page 142: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 142/229

 

Bab 8_Pendeteksian Tepi ( Edge Detection) 133 

Kadang-kadang diinginkan memberi bobot yang lebih pada pixel  tengah di antara

 pixel  tetangganya. Operator Laplace yang digunakan untuk tujuan ini adalah

141

4204

141

 

Operator Laplace termasuk ke dalam penapis lolos-tinggi sebab jumlah seluruh

koefisiennya nol dan koefisiennya mengandung nilai negatif maupun positif.

Contoh 8.5.  [GAL90] Contoh berikut ini memperlihatkan pendeteksian tepi

vertikal dengan operator Laplace:

8888444

8888444

8888444

8888444

8888444

0

4

8

-4

0

+4

−+

−+

−+

*******

*00440*

*00440*

*00440*

*******

(i) Citra semula (ii) Hasil konvolusi

 

Satu baris dari hasil pendeteksian tepi:

0 +4 –4 0 0

Pada contoh di atas, persilangan nol bersesuaian dengan tepi pada citra semula,

yang terdapat pada titik tengah antara dua buah pixel  yang bersesuaian. Pixel  tepi

seharusnya ditandai secara konsisten, apakah  pixel  di sebelah kiri atau di sebelah

kanan garis “|”.  

Page 143: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 143/229

 

134 Pengolahan Citra Digital

Contoh 8.6. [GAL90] Pendeteksian tepi diagonal (miring) dengan operator Laplace:

88444444

88844444

88884444

88888444

88888844

−+

−+

−+

********

*048000*

*004800*

*000480*

********

(i) Citra semula (ii) Hasil konvolusi  

Contoh 8.7. Pendeteksian tepi landai dengan operator Laplace:

88885222

88885222

8888522288885222

88885222

 

−+

−+−+

********

*003030*

*003030**003030*

********

 

(i) Citra semula (ii) Hasil konvolusi

Satu baris dari hasil pendeteksian tepi:

0 +3 0 –3 0

Pada contoh di atas tidak terdapat persilangan nol; lokasi tepi yang sesungguhnya

ditentukan secara interpolasi.  

Kadangkala pendeteksian tepi dengan operator Laplace menghasilkan tepi-tepi

 palsu yang disebabkan oleh gangguan pada gambar [DUL97]. Untuk mengurangi

kemunculan tepi palsu, citra disaring dulu dengan fungsi Gaussian (Gambar 8.7).

Page 144: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 144/229

 

Bab 8_Pendeteksian Tepi ( Edge Detection) 135 

 f ( x, y)

dihaluskan dengan

fungsi Gauss, G( x, y)

h( x, y)

operator Laplace,2∇  

k ( x, y)

Gambar 8.7   Skema pendeteksian tepi untuk citra yang mengalami gangguan.

Berdasarkan skema pada Gambar 8.7:

),(),( 2  y xh y xk    ∇=   (8.22)

dan

),(*),(),(   y xG y x f  y xh   =   (8.23)

maka dapat dibuktikan bahwa

),(*),()],(*),([ 22  y xG y x f  y xG y x f    ∇=∇   (8.24)

Jadi,

),(*),(),( 2  y xG y x f  y xk    ∇=   (8.25)

yang dalam hal ini,

2

22

2

)(

4

2222 2

),(  σ  

σ  

σ  

 y x

e

 y x

 y xG

+−

 

 

 

    −+

=∇   (8.26)

Page 145: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 145/229

 

136 Pengolahan Citra Digital

Fungsi ∇2G( x, y) merupakan turunan kedua dari fungsi Gauss, kadang-kadang

disebut juga fungsi  Laplacian of Gaussian ( LoG) atau fungsi topi orang Mexico

( Mexican Hat ), karena bentuk kurvanya seperti topi Meksiko.

Jadi, untuk mendeteksi tepi dari citra yang mengalami gangguan, kita dapat

melakukan salah satu dari dua operasi ekivalen di bawah ini:

1.  Konvolusi citra dengan fungsi Gauss G( x, y), kemudian lakukan operasi

Laplacian terhadap hasilnya, atau

2.  Konvolusi citra dengan penapis LoG.

Contoh penapis LoG yang berukuran 5 × 5:

−−−−

−−−−

−−−

0010001210

121621

01210

00100

 

Hasil pendeteksian tepi dengan operator Laplace dan  Laplacian of Gaussian

diperlihatkan pada Gambar 8.8.

(a) (b)

Page 146: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 146/229

 

Bab 8_Pendeteksian Tepi ( Edge Detection) 137 

(c) (d)

Gambar 8.8   (a) citra botol; (b) Laplace; (c) Laplace dengan bobot lebih; (d) Laplacian of Gaussian(LoG)

8.5 Pendeteksian Tepi dengan Operator Kompas

Operator kompas (compass operator ) digunakan untuk mendeteksi semua tepi

dari berbagai arah di dalam citra. Operator kompas yang dipakai untuk

 pendeteksian tepi menampilkan tepi dari 8 macam arah mata angin: Utara, Timur

Laut, Timur, Tenggara, Selatan, Barat Daya, dan Barat Laut. Pendeteksian tepidilakukan dengan mengkonvolusikan citra dengan berbagai mask   kompas, lalu

dicari nilai kekuatan tepi (magnitude) yang terbesar dan arahnya. Jika misalnya

digunakan sebanyak p buah mask  kompas dan nilai kekuatan tepi pada pixel  ( x, y)

untuk semua mask   adalah G1[ f ( x, y)], G2[ f ( x, y)], …, G p[ f ( x, y)], maka besar

kekuatan tepi adalah:

},...,2,1)],([{max)],([   pi y x f G y x f G ii

==   (8.27)

Jika mask   k   adalah mask   yang memberikan kekuatan terbesar, maka arah tepi

ditentukan dari mask  k  tersebut.

Operator kompas yang dipakai untuk pendeteksian tepi menampilkan tepi dari 8macam arah mata angin:

Page 147: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 147/229

 

138 Pengolahan Citra Digital

Utara Timur Laut Timur Tenggara

−−−

111

121

111

 

−−

−−

111

121

111

 

−−

111

121

111

 

−−

−−

111

121

111

 

Selatan Barat Daya Barat Barat Laut

−−−

111

121

111

 

−−

−−

111

121

111

 

−−

111

121

111

 

−−

−−

111

121

111

 

Operator kompas yang tersedia dapat juga digunakan untuk mendeteksi tepi

dalam arah tertentu saja. Misalnya diinginkan mendeteksi tepi dalam arah

horizontal dan vertikal, seperti hasil pendeteksian tepi citra San Fransisco

(Gambar 8.9) dan citra WTC1109.

Tepi horizontal Tepi vertikal

Gambar 8.9 Deteksi tepi horizontal dan vertikal dari citra San Fransisco

Page 148: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 148/229

 

Bab 8_Pendeteksian Tepi ( Edge Detection) 139 

Gambar 8.10. Citra WTC1109

Tepi vertikal

Page 149: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 149/229

 

140 Pengolahan Citra Digital

Tepi horizontal 

Gambar 8.10  (lanjutan).

Page 150: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 150/229

Bab 9_Kontur dan Representasinya   141

Bab 9

Gambar 9.1  (a) kontur tertutup, (b) kontur terbuk 

Kontur dan Representasinya

endeteksi tepi menghasilkan citra tepi yang berupa citra biner ( pixel  tepi

 berwarna putih, sedangkan  pixel   bukan-tepi berwarna hitam). Tetapi, tepi

 belum memberikan informasi yang berguna karena belum ada keterkaitan

antara suatu tepi dengan tepi lainnya. Citra tepi ini harus diproses lebih lanjut

untuk menghasilkan informasi yang lebih berguna yang dapat digunakan dalam

mendeteksi bentuk-bentuk sederhana (misalnya garis lurus, lingkaran, elips, dansebagainya) pada proses analisis citra.

Rangkaian   pixel - pixel   tepi yang membentuk batas daerah (region boundary)disebut kontur  (contour ) [JAI95]. Kontur dapat terbuka atau tertutup. Konturtertutup berkoresponden dengan batas yang mengelililingi suatu daerah lihatGambar 9.1(a).  Pixel-pixel   di dalam daerah dapat ditemukan dengan algoritma

 pengisian ( filling algorithm). Batas daerah berguna untuk mendeskripsikan bentuk objek dalam tahap analisis citra (misalnya untuk mengenali objek).

Kontur terbuka dapat berupa fragmen garis atau bagian dari batas daerah yangtidak membentuk sirkuit (Gambar 9.1(b)).

 (a) (b)

P

Page 151: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 151/229

142 Pengolahan Citra Digital

9.1 Representasi KonturRepresentasi kontur dapat berupa senarai tepi (edge list ) atau berupa kurva.

Senarai tepi merupakan himpunan terurut  pixel-pixel  tepi. Representasi kontur ke

dalam kurva merupakan representasi yang kompak dan mangkus untuk analisis

citra. Misalnya, rangkaian pixel  tepi yang membentuk garis dapat direpresentasikan

hanya dengan sebuah persamaan garis lurus. Representasi semacam ini

menyederhanakan perhitungan selanjutnya seperti arah dan panjang garis.

Kode Rantai

Kode rantai (chain code)adalah notasi untuk mengkodekan senarai tepi yang

membentuk batas daerah. Kode rantai menspesifikasikan arah setiap pixel  tepi didalam senarai tepi. Arah yang digunakan adalah 8 arah mata angin seperti yang

terlihat pada pada Gambar 9.2 (a).

(a) (b)

Gambar 9.2  (a) Kode rantai, (b) representasi batas objek dengan kode rantai.

Dimulai dari sebuah  pixel  tepi dan searah jarum jam, arah setiap  pixel  tepi yang

membentuk batas objek dikodekan dengan salah satu dari delapan kode rantai.

Kode rantai merepresentasikan batas objek dengan koordinat  pixel   tepi pertama

lalu diikuti dengan senarai kode rantai. Karena ada 8 arah, maka cukup 3 bit

untuk mengkodekan setiap arah. Gambar 9.3 memperlihatkan contoh pengkodean

 batas objek dengan kode rantai.

0

1

2

345

6

7batas

objek

titik awal

Page 152: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 152/229

Bab 9_Kontur dan Representasinya   143

2   2

6 6 66 6 6 4

4

4

223

3

222

7

7

6 6 6 6

2

1

0

0 2

Titik awal

 A

Kode rantai: (A), 22222332244466666666667700221

Gambar 9.3 Contoh pengkodean batas objek dengan kode rantai.

Pencocokan Kurva

Kurva yang merepresentasikan kontur dicari dengan teknik pencocokan kurva(curve fitting). Ada dua macam teknik pencocakan kurva: interpolasi  dan

penghampiran  (approximation). Interpolasi kurva adalah mencari kurva yang

melalui semua  pixel   tepi, sedangkan penghampiran kurva adalah mencari kurva

yang paling dekat melalui  pixel - pixel   tepi, tetapi tidak perlu melalui semua  pixel 

tersebut.

Di dalam bab ini kita hanya membahas teknik pencocokan kurva dengan

 penghampiran. Salah satu metode penghampiran kurva yang populer dalam

 pengolahan citra adalah transformasi Hough. Transformasi Hough akan dibahas

dalam upa-bab 9.3 di bawah ini.

9.2 Transformasi Hough

Transformasi Hough menspesifikasikan kurva dalam bentuk parametrik. Kurva

dinyatakan sebagai bentuk parametrik 

( x(u), y(u))

Page 153: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 153/229

144 Pengolahan Citra Digital

dari parameter   u. Bentuk parametrik tersebut menspesifikasikan titik-titik sepanjang kurva dari titik awal kurva  p1 = ( x(u1), y(u1) ke titik akhir p2 = ( x(u2), y(u1).

Panjang kurva adalah

 L = dudu

dy

du

dxu

u

 ∫      

+

  

2

1

22

(9.1)

Transformasi Hough menggunakan mekanisme voting   untuk mengestimasi nilai

 parameter. Setiap titik di kurva menyumbang suara untuk beberapa kombinasi

 parameter. Parameter yang memperoleh suara terbanyak terpilih sebagai pemenang.

Pada awalnya, Transformasi Hough digunakan untuk mendeteksi garis lurus.

 Namun, ia juga dapat digunakan untuk mendeteksi kurva sederhana lainnya

seperti lingkaran dana elips. Pembahasan dimulai dengan transformasi Hough

untuk mendeteksi keberadaan garis lurus di dalam citra tepi.

Mendeteksi Garis Lurus

Misalkan citra tepi berukuran n  =  N   ×  M pixel . Cara yang paling sederhana

mendeteksi garis lurus adalah menemukan semua garis yang ditentukan oleh dua

 buah  pixel   dan memeriksa apakah sebagian dari  pixel   tepi termasuk ke dalam

garis tersebut (cara exhaustive search).

Jumlah maksimum garis yang dideteksi adalah n  (n  – 1)/2. Karena setiap  pixel 

harus diperiksa apakah ia termasuk ke dalam suatu garis, maka kompleksitas

algoritma pendeteksian garis lurus untuk kasus terburuk adalah   O(n3). Untuk

aplikasi praktis, jelas metode pendeteksian dengan cara ini tidak mangkus.

Transformasi Hough mengurangi kompleksitas komputasi dengan menggunakan

 bentuk parametrik dan menggunakan mekanisme pemungutan suara terbanyak

(voting ) untuk menentukan nilai parameter yang tepat.

Tinjau persamaan garis lurus:

 y = mx + c (9.2)

Dalam bentuk parametrik, setiap garis dinyatakan sebagai (m’, c’) di dalam ruang

 parameter  m-c. Persamaan 9.2 dapat ditulis menjadi

c = y –  mx (9.3)

Sembarang titik ( x, y) pada bidang planar  X -Y   berkoresponden dengan sebuah

garis lurus pada ruang parameter m – c.

Page 154: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 154/229

Page 155: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 155/229

146 Pengolahan Citra Digital

4. Ulangi langkah 3 sampai seluruh pixel  di dalam citra tepi ditelusuri.5. Pada akhir prosedur, tiap elemen matriks  P (m,  c) menyatakan jumlah  pixel 

tepi yang memenuhi persamaan (1). Tentukan elemen matriks yang memiliki

 penumpukan suara cukup besar (yang nilainya di atas nilai ambang tertentu).

Misalkan tempat-tempat itu adalah

{(m1, c1), (m2, c2), …, {(mk , ck ),

  Hal ini berarti terdapat k  garis lurus yang terdeteksi pada citra.

Tingkat ketelitian dari Transformasi Hough bergantung pada ukuran matriks  P (m,

c), yaitu   K   ×   L. Kompleksitas komputasi Transformasi Hough pada kasusterburuk adalah O( Kn), yang dalam hal ini  K  adalah jumlah pembagian parameter

m, dan n  adalah jumlah  pixel   di dalam citra tepi. Karena O( Kn) < O(n3), maka

 pendeteksian garis lurus dengan Transformasi Hough lebih cepat daripada metode

exhaustive search.

Model parametrik pada persamaan 9.2 tidak dapat digunakan untuk mendeteksi

garis vertikal atau hampir vertikal karena gradiennya (m) menuju nilai tak-

 berhingga. Karena itu, garis dinyatakan dalam representasi polar:

r  = x cos θ  + y sin θ  (9.4)

yang dalam hal ini r  adalah jarak garis ke titik asal (Gambar 9.5).

 x

 y

θ 

θ 

),(   θ r 

Gambar 9.5  Representasi polar dari garis lurus

Sembarang garis yang melalui ( x1, y1) pada ruang   x –  y  berkoresponden dengan

kurva sinusoida r  =  x1 cos θ  +  y1 sin θ  pada ruang r  – θ . Pixel - pixel  yang terletak

segaris pada citra tepi berkoresponden dengan titik potong seluruh kurva

sinusoidanya pada ruang parameter r  – θ .

Page 156: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 156/229

Bab 9_Kontur dan Representasinya   147

 Algoritma 9.1 Transformasi Hough

Prosedur yang sama untuk mendeteksi garis lurus dapat digunakan kembalidengan mengganti ruang parameter   m – c  menjadi ruang parameter   r  – θ , yangdalam hal ini,

2222 M  N r M  N    +≤≤+−-π /2 ≤ θ ≤  π /2

Algoritma Transformasi Hough diperlihatkan pada Algoritma 9.1 [PIT93].Algoritma tersebut mengasumsikan citra tepi (citra hasil pendeteksian tepi)

disimpan di dalam matriks Edge[0..N-1,0..M-1]. Ruang parameter r  – θ 

dinyatakan sebagai matriks P  yang berukuran n  ×  m. Nilai  cosinus  dan  sinus

disimpan di dalam   lookup table COS[0..p-1]  dan SIN[0..p-1]  yang

dibentuk dengan Algoritma 9.2.

void Hough(citra Edge, int N, int M, imatriks P, int n, int m,  float *COS, float *SIN)/* prosedur yang melakukan Transformasi Hough.

Masukan: citra tepi Edge yang berukuran N x M.

  Keluaran: matriks parameter P yang berukuran n x m*/ 

{  int k, l, i, j, kk, ll;  float r, b;  float SQRTD =sqrt((float)N*(float)N + (float)M*(float)M);

  /* inisialisasi P[0..p-1, 0,,q-1] dengan 0 */ 

  for(kk=0;kk<=p-1;kk++)  for(ll=0;ll<=q-1;ll++)

P[kk][ll]=0;

  /*telusuri citra tepi. Jika pixel merupakan tepi, lakukan pemungutan  suara pada elemen matriks P yang bersesuaian.

tetha dari –pi/2 sampai pi/2.

r dari –sqrt(N*N+M*M) sampai sqrt(N*N+M*M).*/ 

  for (k=0;k<=N-1;k++)  for (l=0;l<=M-1;l++)  {  if (Edge[k][l]==1)  {  for (i=0;i<=p-1;i++)

  {  r = k*COS[i] + l*SIN[i];b = SQRTD;

  r+=b; r/=(SQRTD*2.0); r*=(m-1); r+=0.5;  j=floor(r);  P[i][j]++;  }  }  }}

Page 157: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 157/229

148 Pengolahan Citra Digital

void LookUpTable(float *COS, *SIN, int m)/* Membuat tabel cosinus dan sinus untuk fungsi COS dan SIN.

  Masukan: m adalah jumlah baris tabel

  Keluaran: tabel COS dan tabel SIN 

*/ 

{ int i;

 float th, R_TO_D = 0.017453

 for(i=0;i<=p-1;i++) {  th = (float)i * 180.0/(m-1)-90.0;  th = th * R_TO_D;  COS[i] = (double) cos((double)th);  SIN[i] = (double) sin((double)th); }

 Algoritma 9.2  Transformasi Hough

Setelah Transformasi Hough selesai dilakukan, langkah berikutnya adalah

melakukan operasi pengambangan (thresholding ) untuk menentukan tempat-

tempat pada ruang paramater r  – θ  yang mempunyai penumpukan suara lebih besar

dari nilai ambang T . Elemen matriks P yang nilainya di atas nilai ambang tersebut

menyatakan parameter garis lurus. Misalkan tempat-tempat itu adalah {(m1,  c1),

(m2,  c2), …, {(mk ,  ck ), hal ini berarti terdapat k   garis lurus yang terdeteksi pada

citra. Algoritma pengambangan ditunjukkan pada Algoritma 9.3.

void threshold(imatriks P, int n, in m, int T)/* Melakukan pengambangan pada matriks parameter P.

  Setiap elemen matriks P yang nilainya di atas T menyatakan parameter

garis lurus.

Masukan: matriks parameter P yang berukuran n x m.

  Keluaran: matriks parameter P yang sudah di-threshold.

*/ 

{ int i, j;

 for(i=0;i<n;i++)  for(j=0;j<m;j++)  if (P[i][j]>T)  P[i][j]=1;  else  P[i][j=0;

}

 Algor itma 9.3  Pengambangan hasil transformasi Hough

 Pixel - pixel   tepi yang termasuk di dalam garis lurus hasil deteksi Transformasi

Hough dapat dihasilkan dengan algoritma Transformasi Hough Balikan

(inverse Hough Transform). Untuk setiap elemen matriks Par  yang bernilai 1,

Page 158: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 158/229

Bab 9_Kontur dan Representasinya   149

garis lurus yang bersesuaian (yang intensitasnya 1) digambarkan pada matrikskeluaran Out. Operasi and  dengan citra tepi dilakukan untuk mengklarifikasi

keberadaan pixel  tepi.

Algoritma Transformasi Hough Balikan diperlihatkan pada Algoritma 9.4

[PIT93]. Algoritma tersebut mengasumsikan citra tepi (citra hasil pendeteksian

tepi) disimpan di dalam matriks Edge[0..N-1,0..M-1]. Ruang parameter

r  – θ   dinyatakan sebagai matriks P  yang berukuran n  ×  n. Citra keluaran yang

 berisi   pixel-pixel   tepi pembentuk garis lurus disimpan di dalam matriks

Out[0..N-1,0..M-1].

void InverseHough(citra Edge, citra Out, int N, int M, imatriks P,int n, int m, float *COS, float *SIN)/* prosedur yang melakukan Transformasi Hough Balikan

  Masukan: 1. citra tepi Edge yang berukuran N x M.

  2. matriks parameter P yang berukuran n x m

  Keluaran: citra Out yang berisi pixel-pixel pembentuk garis lurus.

*/ 

{  int k, l, i, j;  float r, y;  float SQRTD =sqrt((float)N*(float)N + (float)M*(float)M);

  /* inisialisasi citra keluaran dengan 0 */ 

  for(kk=0;kk<=p-1;kk++)  for(ll=0;ll<=q-1;ll++)  Out[p][q]=0;

/* Matriks parameter P telah dilakukan operasi thresholding.

  Untuk setiap elemen P yang bernilai 1, garis lurus yang 

  bersesuaian digambarkan ke dalam matriks Out.

Operasi and dengan citra tepi dikerjakan.

  for (k=0;k<=p-1;k++)  for (l=0;l<=q-1;l++)  {  y=(float)0.0;  if (P[k][l]==1) /* atau P[k][l]== 255 */ 

  {  for (i=0;i<=N-1;i++)  {  r = (float)l * 2.0 * SQRTD/(m-1) – SQRTD;  if (SIN[k]==(float)0.0)

y++;  else  y=(r – (float)i * COS[k])/SIN[k];

  y+=0.5; j=floor(y);

  if (j >=0 && j < M)  if (Edge[i][j]==1) Out[i][j]++;  }  }  }}

 Algoritma 9.4 Transformasi Hough Balikan

Page 159: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 159/229

150 Pengolahan Citra Digital

( xi, y

i)(a,b)

 R

Mendeteksi LingkaranTransformasi Hough dapat juga digunakan untuk mendeteksi bentuk lingkaran di

dalam citra tepi. Persamaan lingkaran yang berpusat di titik (a, b) dengan jari-jari

r  adalah

222)()(   r b ya x   =−+− (9.5)

Jadi, ruang parameter untuk lingkaran adalah r  – a – b  , sehingga matriks trimatra

 P (r , a, b) dibutuhkan untuk menyimpan perhitungan suara.

Persamaan polar untuk setiap titik ( x, y) di lingkaran:

 x = a + r  cos θ  (9.6)

 y = b + r  sin θ  (9.7)

Persamaan (9.6) dan (9.7) dapat ditulis menjadi persamaan

a = x  –  r cos  θ  (9.8)

b = y  –   r  sin θ  (9.9)

Pada operasi deteksi tepi, selain magnitudo pixel  tepi, juga dihasilkan arah tepi, θ .

Karena itu, cos θ  dan sin θ  dapat dihitung.

Misalkan ( xi,  yi) adalah  pixel   tepi dan θ   adalah arah tepi . Ada dua kasus yangakan ditinjau:

(i) jika jari-jari lingkaran diketahui, (ii) jika jari-jari lingkaran tidak diketahui.

Kasus 1: Jari-jari lingkaran diketahui

Jika jari-jari jari-jari lingkaran diketahui r  =  R, maka ruang parametrik trimatra,

 P (r ,a,b), dapat direduksi menjadi ruang dwimatra, P (a,b).

Gambar 9.5  Proses penumpukan suara untuk mendeteksi lingkaran

Page 160: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 160/229

Bab 9_Kontur dan Representasinya   151

Titik pusat lingkaran, (a,b), yang mempunyai jari-jari r  =  R dan melalui titik ( x i, yi) dapat dihitung dengan persamaan

a = xi –   R cos θ  (9.10)

b = yi –   R sin θ  (9.11)

seperti yang ditunjukkan pada Gambar 9.5, lalu tambahkan elemen  P (a, b) yang

 bersesuaian dengan satu. Proses ini diulangi untuk  pixel - pixel   tepi yang lain.

Elemen matriks P (a, b) yang memiliki jumlah suara di atas nilai ambang tertentu

menyatakan lingkaran yang terdapat di dalam citra tepi.

Kasus 2: Jari-jari lingkaran tidak diketahuiJika jari-jari lingkaran tidak diketahui, maka penumpukan suara dilakukan untuk

semua nilai r , 0 < r  ≤  r max, nilai a dan b untuk  pixel  tepi ( xi, y i) dihitung dengan

 persamaan

a = xi –   r  cos θ  (9.12)

b = yi –   r  sin θ  (9.13)

dan elemen  P (r , a, b) yang bersesuaian dinaikkan satu. Proses ini diulangi untuk

 pixel - pixel  tepi yang lain. Elemen matriks  P (r , a, b) yang memiliki jumlah suara

di atas nilai ambang tertentu menyatakan lingkaran yang terdapat di dalam citra

tepi.

Persamaan (9.12) dan (9.13) dapat dimanipulasi dengan mengeliminasi   r   dari

kedua persamaan:

a = x –  r  cos θ    →θ cos

)(   a xr 

  −=

b = y –   r  sin θ    →   θ θ 

sincos

)(   a x yb

  −−=   = θ tan)(   a x y   −−

b = a tan θ   –  x  tan θ  + y (9.14)

Dengan demikian, maka ruang parametrik trimatra,   P (r ,a,b), dapat direduksi

menjadi ruang dwimatra, P (a,b). Untuk untuk semua nilai r , yang dalam hal ini a1

< a  ≤  aK , nilai ordinat b dari titik pusat lingkaran (a,b) yang melalui titik ( xi, y i)

dapat dihitung dengan persamaan (11), lalu tambahkan elemen   P (a,   b) yang

 bersesuaian dengan satu. Proses ini diulangi untuk  pixel - pixel   tepi yang lain.

Elemen matriks P (a, b) yang memiliki jumlah suara di atas nilai ambang tertentu

menyatakan lingkaran yang terdapat di dalam citra tepi.

Gambar 9.6 memperlihatkan hasil transformasi Hough untuk mendeteksi

lingkaran dari citra slope dengan menggunakan nilai ambang T  = 30.

Page 161: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 161/229

152 Pengolahan Citra Digital

 N 

( x, y)

(a,b)

α 

Gambar 9.7  Pendeteksian bentuk kurva sembarang denganTransformasi Hough rampatan

(a) (b)

Gambar 9.6  (a) Citra slope, (b) hasil deteksi lingkaran dengan Transformasi Hough (Terima kasihkepada Danu Pranantha atas izin menggunakan output program tugasnya)

Transformasi Hough untuk Mendeteksi Bentuk SembarangTransformasi Hough dapat dirampatkan untuk mendeteksi sembarang kurva yang

 berbentuk  f (x, a) = 0, yang dalam hal ini x adalah vektor peubah dan a adalahvektor parameter. Memori yang dibutuhkan untuk matriks parametrik   P (a)

meningkat menjadi  K q, yang dalam hal ini q adalah jumlah parameter. Tahapanyang dilakukan adalah [DUL97]:1. tentukan lokasi pusat penumpukan suara;

2. tentukan fungsi jarak dari setiap pixel  tepi ke pusat pemungutan suara.

Jika kurva berbentuk lingkaran, maka lokasi pusat penumpukan suara adalah titik pusat lingkaran, sedangkan fungsi jarak dari setiap   pixel   tepi ke titik pusatlingkaran adalah fungsi konstan (yaitu akar pangkat dua dari persamaan (4) ).

Sebagai contoh, pada Gambar 9.7 titik (a,  b) adalah lokasi pusat penumpukan

suara. Fungsi jarak r  dari setiap titik ( x, y) dan nilai α merupakan fungsi dari arahvektor normal  N .

Untuk setiap  pixel  tepi ( x, y) dengan sudut arah tepi θ , lokasi pusat penumpukansuara dihitung dengan rumus

))(cos()(   θ α θ r  xa   −= (9.15)

))(sin()(   θ α θ r  yb   −= (9.16)

Page 162: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 162/229

 

Bab 10_Pemampatan Citra 153 

Bab 10

Pemampatan Citra

ada umumnya, representasi citra digital membutuhkan memori yang besar.

Sebagai contoh, citra Lena dalam format bitmap yang berukuran 512 × 512

 pixel   membutuhkan memori sebesar 32 KB (1  pixel   = 1 byte) untuk

representasinya. Semakin besar ukuran citra tentu semakin besar pula memori

yang dibutuhkannya. Pada sisi lain, kebanyakan citra mengandung duplikasi

data. Duplikasi data pada citra dapat berarti dua hal. Pertama, besar kemungkinan

suatu  pixel  dengan  pixel  tetanggganya memiliki initensitas yang sama, sehingga

 penyimpanan setiap  pixel   memboroskan tempat. Kedua, citra banyak

mengandung bagian (region) yang sama, sehingga bagian yang sama ini tidak

 perlu dikodekan berulang kali karena mubazir atau redundan.

Saat ini, kebanyakan aplikasi menginginkan representasi citra dengan kebutuhanmemori yang sesedikit mungkin. Pemampatan citra atau kompresi citra (image

compression) bertujuan meminimalkan kebutuhan memori untuk merepresentasikan

citra digital. Prinsip umum yang digunakan pada proses pemampatan citra adalah

mengurangi duplikasi data di dalam citra sehingga memori yang dibutuhkan

untuk merepresentasikan citra menjadi lebih sedikit daripada representasi citra

semula.

10.1 Pemampatan Citra versus Pengkodean Citra

Pemampatan citra kadang-kadang disalahmengertikan dengan pengkodean citra

(image encoding ), yaitu persoalan bagaimana pixel-pixel  di dalam citra dikodekandengan representasi tertentu. Pengkodean citra tidak selalu menghasilkan

representasi memori yang minimal. Pengkodean citra yang menghasilkan

P

Page 163: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 163/229

 

154 Pengolahan Citra Digital

representasi memori yang lebih sedikit daripada representasi aslinya itulah yang

dinamakan pemampatan citra.

Ada dua proses utama dalam persoalan pemampatan citra:

1. 

Pemampatan citra (image compression).Pada proses ini, citra dalam representasi tidak mampat dikodekan dengan

representasi yang meminimumkan kebutuhan memori. Citra dengan format

bitmap  pada umumnya tidak dalam bentuk mampat. Citra yang sudah

dimampatkan disimpan ke dalam arsip dengan format tertentu. Kita mengenal

format JPG dan GIF sebagai format citra yang sudah dimampatkan.

2.  Penirmampatkan citra (image decompression).

Pada proses ini, citra yang sudah dimampatkan harus dapat dikembalikan

lagi (decoding ) menjadi representasi yang tidak mampat. Proses ini

diperlukan jika citra tersebut ditampilkan ke layar atau disimpan ke dalam

arsip dengan format tidak mampat. Dengan kata lain, penirmampatan citra

mengembalikan citra yang termampatkan menjadi data bitmap.

10.2 Aplikasi Pemampatan Citra

Pemampatan citra memberikan sumbangsih manfaat yang besar dalam industri

multimedia saat ini. Pemampatan citra bermanfaat untuk aplikasi yang

melakukan:

1.  Pengiriman data (data transmission) pada saluran komunikasi dataCitra yang telah dimampatkan membutuhkan waktu pengiriman yang lebih

singkat dibandingkan dengan citra yang tidak dimampatkan. Contohnya

aplikasi pengiriman gambar lewat  fax, videoconferencing , pengiriman datamedis, pengiriman gambar dari satelit luar angkasa, pengiriman gambar via

telepon genggam. download  gambar dari internet, dan sebagainya.

2.  Penyimpanan data (data storing ) di dalam media sekunder ( storage)

Citra yang telah dimampatkan membutuhkan ruang memori di dalam media

 storage  yang lebih sedikit dibandingkan dengan citra yang tidak

dimampatkan. Contoh aplikasi nya antara lain aplikasi basisdata gambar,

office automation, video storage (seperti Video Compact Disc), dll.

10.3 Kriteria Pemampatan Citra

Saat ini sudah banyak ditemukan metode-metode pemampatan citra. Kriteria

yang digunakan dalam mengukur metode pemampatan citra adalah [LOW91]:

Page 164: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 164/229

Page 165: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 165/229

 

156 Pengolahan Citra Digital

∑∑= =

−×

= N 

i

 M 

 j

ijij   f  f rms1 1

2)'(TinggiLebar 

1  (10.2)

yang dalam hal ini,  f   dan ' f    masing-masing menyatakan nilai  pixel   citra

semula dan nilai pixel  citra hasil pemampatan. PSNR memiliki satuan decibel

(dB). Persamaan (10.2) menyatakan bahwa  PSNR  hanya dapa dihitung

setelah proses pernirmapatan citra. Dari persamaan (10.2) terlihat abhwa

 PSNR  berbanding terbalik dengan rms. Nilai rms  yang rendah yang

menyiratkan bahwa citra hasil pemampatan tidak jauh berbeda dengan citra

semula akan menghasilkan  PSNR  yang tinggi, yang berarti kualitas

 pemampatannya bagus. Semakin besar nilai  PSNR, semakin bagus kualitas

 pemampatannya. Seberapa besar nilai  PSNR  yang bagus tidak dapatdinyatakan secara eksplisit, bergantung pada citra yang dimampatkan. Namun

kita dapat mengetahui hal ini jika kita melakukan pengujian dengan mencoba

 berbagai kombinasi parameter pemampatan yang digunakan. Jika nilai PSNR 

semakin membesar, itu berarti parameter pemampatan yang digunakan sudah

menuju nilai yang baik. Parameter pemampatan citra bergantung pada metode pemamapatan yang digunakan.

4.  Format keluaran

Format citra hasil pemampatan sebaiknya cocok untuk pengiriman dan

 penyimpanan data. Pembacaan citra bergantung pada bagaimana citratersebut direpresentasikan (atau disimpan).

Pemilihan kriteria yang tepat bergantung pada pengguna dan aplikasi. Misalnya,

apakah pengguna menginginkan pemampatan yang menghasilkan kualitas yang

 bagus, namun pengurangan memori yang dibutuhkan tidak terlalu besar, atau

sebaliknya. Atau jika waktu pemampatan dapat diabaikan dari pertimbangan(dengan asumsi bahwa pemampatan hanya sekali saja dilakukan, namun

 pernirmampatan dapat berkali-kali), maka metode yang menghasilkan waktu

 penirmampatan yang cepat yang perlu dipertimbangkan.

10.4 Jenis Pemampatan Citra

Ada empat pendekatan yang digunakan dalam pemampatan citra [LOW91]:

1.  Pendekatan statistik.

Pemampatan citra didasarkan pada frekuensi kemunculan derajat keabuan

 pixel  di dalam seluruh bagian gambar.Contoh metode: Huffman Coding .

Page 166: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 166/229

 

Bab 10_Pemampatan Citra 157 

2.  Pendekatan ruangPemampatan citra didasarkan pada hubungan spasial antara  pixel-pixel   didalam suatu kelompok yang memiliki derajat keabuan yang sama di dalamsuatu daerah di dalam gambar.Contoh metode: Run-Length Encoding .

3. Pendekatan kuantisasiPemampatan citra dilakukan dengan mengurangi jumlah derajat keabuanyang tersedia.Contoh metode: metode pemampatan kuantisasi.

4. Pendekatan fraktalPemampatan citra didasarkan pada kenyataan bahwa kemiripan bagian- bagian di dalam citra dapat dieksploitasi dengan suatu matriks transformasi.Contoh metode: Fractal Image Compression.

10.5 Klasifikasi Metode PemampatanMetode pemampatan citra dapat diklasifiksikan ke dalam dua kelompok besar:1. Metode lossless

Metode lossless  selalu menghasilkan citra hasil penirmampatan yang tepatsama dengan citra semula,  pixel  per  pixel . Tidak ada informasi yang hilangakibat pemampatan. Sayangnya nisbah (ratio) pemampatan citra metodelossless sangat rendah.Contoh metode lossless adalah metode Huffman.

 Nisbah pemampatan citra dihitung dengan rumus

 Nisbah = %)100

semulacitraukuran

 pempatatanhasilcitraukuran(%100   ×−   (10.3)

Metode lossless  cocok untuk memampatkan citra yang mengandunginformasi penting yang tidak boleh rusak akibat pemampatan. Misalnyamemampatkan gambar hasil diagnosa medis.

2. Metode lossy Metode lossy  menghasilkan citra hasil pemampatan yang hampir   samadengan citra semula. Ada informasi yang hilang akibat pemampatan, tetapidapat ditolerir oleh persepsi mata. Mata tidak dapat membedakan perubahankecil pada gambar. Metode pemampatan lossy  menghasilkan nisbah pemampatan yang tinggi daripada metode lossless. Gambar 10.1 adalah citra

sebelum dimampatkan, dan Gambar 10.2 adalah hasil pemampatan citrakapal dengan metode lossy.Contoh metode lossy adalah metode JPEG dan metode fraktal.

Page 167: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 167/229

 

158 Pengolahan Citra Digital

Gambar 10.1 Citra kapal sebelum dimampatkan

Gambar 10.2 Citra kapal setelah dimampatkan dengan sebuah metode lossy

Page 168: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 168/229

 

Bab 10_Pemampatan Citra 159 

10.6 Metode Pemampatan Huffman

Metode pemampatan Huffman menggunakan prinsip bahwa nilai (atau derajat)

keabuan yang sering muncul di dalam citra akan dikodekan dengan jumlah bit

yang lebih sedikit sedangkan nilai keabuan yang frekuensi kemunculannya

sedikit dikodekan dengan jumlah bit yang lebih panjang.

Algoritma metode Huffman:

1.  Urutkan secara menaik (ascending order ) nilai-nilai keabuan berdasarkan

frekuensi kemunculannya (atau berdasarkan peluang kemunculan,  pk , yaitu

frekuensi kemunculan (nk ) dibagi dengan jumlah pixel  di dalam gambar (n)).

Setiap nilai keabuan dinyatakan sebagai pohon bersimpul tunggal. Setiap

simpul di-assign dengan frekuensi kemunculan nilai keabuan tersebut.

2.  Gabung dua buah pohon yang mempunyai frekuensi kemunculan paling kecil

 pada sebuah akar. Akar mempunyai frekuensi yang merupakan jumlah dari

frekuensi dua buah pohon penyusunnya.

3.  Ulangi langkah 2 sampai tersisa hanya satu buah pohon biner.

Agar pemilihan dua pohon yang akan digabungkan berlangsung cepat, maka

semua pohon yang ada selalu terurut menaik berdasarkan frekuensi.

4.  Beri label setiap sisi pada pohon biner. Sisi kiri dilabeli dengan 0 dan sisi

kanan dilabeli dengan 1.

Simpul-simpul daun pada pohon biner menyatakan nilai keabuan yang terdapat di

dalam citra semula. Untuk mengkodekan setiap pixel di dalam di dalam citra,

lakukan langkah kelima berikut:

5.  Telusuri pohon biner dari akar ke daun. Barisan label-label sisi dari akar ke

daun menyatakan kode Huffman untuk derajat keabuan yang bersesuaian.

Setiap kode Huffman merupakan kode prefiks, yang artinya tidak ada kode biner

suatu nilai keabuan yang merupakan awalan bagi kode biner derajat keabuan

yang lain. Dengan cara ini, tidak ada ambiguitas pada proses penirmampatan

citra.

Page 169: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 169/229

 

160 Pengolahan Citra Digital

Contoh 10.1. Misalkan terdapat citra yang berukuran 64 × 64 dengan 8 derajat

keabuan (k ) dan jumlah seluruh pixel  (n) = 64 × 64 = 4096

k   nk   p(k ) = nk /n 

0 790 0.191 1023 0.25

2 850 0.21

3 656 0.16

4 329 0.08

5 245 0.06

6 122 0.03

7 81 0.02

Proses pembentukan pohon Huffman yang terbentuk dapat dilihat pada Gambar

10.3. Setiap simpul di dalam pohon berisi pasangan nilai a:b, yang dalam hal ini

a  menyatakan nilai keabuan dan b  menyatakan peluang kemunculan nilaikeabuan tersebut di dalam citra. Dari pohon Huffman tersebut kita memperoleh

kode untuk setiap derajat keabuan sebagai berikut:

0 = 00 2 = 01 4 = 1110 6 = 111101

1 = 10 3 = 110 5 = 11111 7 = 111100

Ukuran citra sebelum pemampatan (1 derajat keabuan = 3 bit) adalah 4096 × 3 bit

= 12288 bit, sedangkan Ukuran citra setelah pemampatan:

(790 × 2 bit) + (1023 × 2 bit) + (850 × 2 bit) +

(656 × 3 bit) + (329 × 4 bit) + (245 × 5 bit) +

(122 × 6 bit) + (81 × 6 bit) = 11053 bit

Jadi, kebutuhan memori telah dikurangi dari 12288 bit menjadi 11053 bit. Jelas

ini tidak banyak menghemat, tetapi jika 256 nilai keabuan yang digunakan

(dibanding dengan 8 derajat keabuan deperti pada contoh di atas) , penghematan

memori dapat bertambah besar.

 Nisbah pemampatan = %10%)10012288

11053%100(   =×−   , yang artinya 10% dari

citra semula telah dimampatkan.  

Page 170: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 170/229

 

Bab 10_Pemampatan Citra 161 

7:0.02 6:0.03

2.   76:0.05

3.

7:0.02 6:0.03 5:0.06 4:0.08 3:0.16 0:0.191.   2:0.21 1:0.25

5:0.06 4:0.08 3:0.16 0:0.19 2:0.21 1:0.25

4:0.08

7:0.02 6:0.03

76:0.05   5:0.06

765:0.11   3:0.16 0:0.19 2:0.21 1:0.25

4:0.08

7:0.02 6:0.03

76:0.05   5:0.06

765:0.11

3:0.16 0:0.19 2:0.21 1:0.254765:0.194.

0:0.19 2:0.21 1:0.255.

4:0.08

7:0.02 6:0.03

76:0.05   5:0.06

765:0.11

4765:0.193:0.16

34765:0.35

 Gambar 10.3 Tahapan pembentukan pohon Huffman untuk Contoh 10.1 di atas

Page 171: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 171/229

 

162 Pengolahan Citra Digital

1:0.256.

0:0.19 2:0.21

4:0.08

7:0.02 6:0.03

76:0.05   5:0.06

765:0.11

4765:0.193:0.16

34765:0.35 02:0.40

7.

1:0.25

4:0.08

7:0.02 6:0.03

76:0.05   5:0.06

765:0.11

4765:0.193:0.16

34765:0.35

134765:0.60

0:0.19 2:0.21

02:0.40

1:0.25

4:0.08

7:0.02 6:0.03

76:0.05   5:0.06

765:0.11

4765:0.193:0.16

34765:0.35

134765:0.60

0:0.19 2:0.21

02:0.40

02134765:

1.00

8.

 

Gambar 10.3  (lanjutan)

Page 172: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 172/229

Page 173: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 173/229

 

164 Pengolahan Citra Digital

 Nisbah pemampatan = %67.27%)100300

217%100(   =×− , yang artinya 27.67%

dari citra semula telah dimampatkan.  

Versi lain dari metode  RLE   adalah dengan menyatakan seluruh baris citra

menjadi sebuah baris run, lalu menghitung run-length  untuk setiap derajatkeabuan yang berurutan. Sebagai contoh, tinjau sebuah citra sebagai berikut:

1 2 1 1 1 11 3 4 4 4 41 1 3 3 3 51 1 1 1 3 3

 Nyatakan sebagai barisan nilai derajat keabuan:

1 2 1 1 1 1 1 3 4 4 4 4 1 1 3 3 3 5 1 1 1 1 3 3

semuanya ada 24 nilai.

Pasangan nilai dari run yang dihasilkan dengan metode pemampatan RLE :

(1, 1) (2, 1) (1, 5) (3, 1) (4, 4) (1, 2) (3, 3) (5, 1) (1, 4) (3, 2)

Hasil pengkodean:

1 1 2 1 1 5 3 1 4 4 1 2 3 3 5 1 1 4 3 2

semuanya ada 20 nilai. Jadi, kita sudah menghemat 4 buah nilai.

Metode RLE  dapat dikombinasikan dengan metode Huffman untuk mengkodekannilai-nilai hasil pemampatan RLE  guna meningkatkan nisbah pemampatan. Mula-mula lakukan pemampatan RLE, lalu hasilnya dimampatkan lagi dengan metode

Huffman.

10.8 Metode Pemampatan Kuantisasi (QuantizingCompression)

Metode ini mengurangi jumlah derajat keabuan, misalnya dari 256 menjadi 16,yang tentu saja mengurangi jumlah bit yang dibutuhkan untuk merepresentasikan citra.

Misalkan P adalah jumlah pixel di dalam citra semula, akan dimampatkanmenjadi n derajat keabuan. Algoritmanya adalah sebagai berikut:

Algoritma metode kuantisasi:1.  Buat histogram citra semula (citra yang akan dimampatkan).2.  Identifikasi n buah kelompok di dalam histogram sedemikian sehingga setiap

kelompok mempunyai kira-kira P /n buah pixel .

Page 174: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 174/229

 

Bab 10_Pemampatan Citra 165 

3.   Nyatakan setiap kelompok dengan derajat keabuan 0 sampai n  –1. Setiap pixel   di dalam kelompok dikodekan kembali dengan nilai derajat keabuanyang baru.

Contoh 10.3. [LOW91] Tinjau citra yang berukuran 5 × 13 pixel :

2 9 6 4 8 2 6 3 8 5 9 3 7

3 8 5 4 7 6 3 8 2 8 4 7 3

3 8 4 7 4 9 2 3 8 2 7 4 93 9 4 7 2 7 6 2 1 6 5 3 0

2 0 4 3 8 9 5 4 7 1 2 8 3

yang akan dimampatkan menjadi citra dengan 4 derajat keabuan (0 s/d 3), jadi

setiap derajat keabuan direpresentasikan dengan 2 bit.

Histogram citra semula:

0 **

1 **

2 *********3 ***********

4 *********

5 ****

6 *****

7 ********

8 *********

9 ******

Ada 65  pixel , dikelompokkan menjadi 4 kelompok derajat keabuan. Tiap

kelompok ada sebanyak rata-rata 65/4 = 16.25 pixel  per kelompok:

------------------------------------------------------0 **

13 1 ** 0

2 *********

------------------------------------------------------

20 3 ***********

4 ********* 1

-----------------------------------------------------

5 ****

17 6 ***** 2

7 ********

-----------------------------------------------------

15 8 ********* 3

9 ******

-----------------------------------------------------

Page 175: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 175/229

 

166 Pengolahan Citra Digital

Citra setelah dimampatkan menjadi:

0 3 2 1 3 0 2 1 3 2 3 1 2

1 3 2 1 2 2 1 3 0 3 1 2 1

1 3 1 2 1 3 0 1 3 0 2 1 3

1 3 1 2 0 2 2 0 0 2 2 1 00 0 1 1 3 3 2 1 2 0 0 3 0

Ukuran citra sebelum pemampatan (1 derajat keabuan = 4 bit):

65 × 4 bit = 260 bit

Ukuran citra setelah pemampatan (1 derajat keabuan = 2 bit):

65 × 2 bit = 130 bit

 Nisbah pemampatan = %50%)100260

130%100(   =×− , yang artinya 50% dari citra

semula telah dimampatkan.  

Kelemahan metode pemampatan kuantisasi adalah banyaknya informasi yang

hilang, tapi kehilangan informasi ini dapat diminimalkan dengan menjamin

 bahwa tiap kelompok mempunyai jumlah pixel  yang hampir sama.

10.9 Metode Pemampatan Fraktal

Metode pemampatan fraktal adalah metode yang relatif baru. Prinsipnya adalah

mencari bagian di dalam citra yang memiliki kemiripan dengan bagian lainya

namun ukurannya lebih besar ( self similarity). Kemudian dicari matriks yangmentransformasikan bagian yang lebih besar tersebut dengan bagian yang lebih

kecil. Kita cukup hanya menyimpan elemen-elemen dari sekumpulan matriks

transformasi tersebut (yang disebut matriks transformasi affine). Pada proses

 penirmampatan, matriks ransformasi affine  di-iterasi sejumlah kali terhadap

sembarang citra awal. Hasil iterasi akan konvergen ke citra semula. Metode ini

menghasilkan nisbah pemampatan yang tinggi namun waktu pemampatannya

relatif lama, sedangkan waktu penirmamoatannya berlangsung cepat. Metode

 pemampatan fraktal akan dijelaskan secara panjang lebar di dalam Bab tersendiri

(Bab 14).

Page 176: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 176/229

 

Bab 11_Citra Biner 167 

Bab 11

Citra Biner

itra biner (binary image) adalah citra yang hanya mempunyai dua nilai

derajat keabuan: hitam dan putih. Meskipun saat ini citra berwarna lebih

disukai karena memberi kesan yang lebih kaya daripada citra biner, namun

tidak membuat citra biner mati. Pada beberapa aplikasi citra biner masih tetap

dibutuhkan, misalnya citra logo instansi (yang hanya terdiri atas warna hitam dan

 putih), citra kode batang (bar code) yang tertera pada label barang, citra hasil

 pemindaian dokumen teks, dan sebagainya. Bab 10 ini akan memaparkan beberapa

konsep dan teknik pengolahan citra biner.

11.1 Pendahuluan

Seperti yang sudah disebutkan di awal Bab, citra biner hanya mempunyai duanilai derajat keabuan: hitam dan putih. Pixel-pixel  objek bernilai 1 dan pixel -pixellatar belakang bernilai 0. Pada waktu menampilkan gambar, 0 adalah putih dan 1adalah hitam. Jadi, pada citra biner, latar belakang berwarna putih sedangkanobjek berwarna hitam. Gambar 11.1 memperlihatkan beberapa contoh citra biner,sedangkan Gambar 11.2 adalah contoh pengkodean citra biner.

(a) Citra logo (b) Citra lukisan mobil

C

Page 177: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 177/229

 

168 Pengolahan Citra Digital

1 1

1

1

1

1

1

1

1 1

1

1

1

1

1

1

1

1 1 1 1 1

1

1

1

1 1 1

1

1

1 1 1

00 0 0 000000

0

0 0

0 0

0 0

0 0

0

0

0

0

0

0

00

0

0

0

00

0

0

0

00

0

0

0

000

000

00

0

0

0

000

000

0000

0

0

00

00

 

(c) Citra teks (hasil pemindaian

dokumen)

23942 414800   3

 

(d) Citra kode batang (bar  code)

Gambar 11.1  Beberapa contoh citra biner

Gambar 11.2 Huruf “B” dan representasi biner dari derajat keabuannya.

Meskipun komputer saat ini dapat memproses citra hitam-putih ( greyscale)

maupun citra berwarna, namun citra biner masih tetap dipertahankan

keberadaannya. Alasan penggunaan citra biner adalah karena ia memiliki

sejumlah keuntungan sebagai berikut:

1.  Kebutuhan memori kecil karena nilai derajat keabuan hanya membutuhkan

representasi 1 bit. Kebutuhan memori untuk citra biner masih dapat

 berkurang secara berarti dengan metode pemampatan run-length encoding  

( RLE ). Metode RLE  akan dijelaskan kemudian.

2.  Waktu pemrosesan lebih cepat dibandingkan dengan citra hitam-putih karena

 banyak operasi pada citra biner yang dilakukan sebagai operasi logika ( AND,

OR, NOT , dll) ketimbang operasi aritmetika bilangan bulat.

Page 178: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 178/229

 

Bab 11_Citra Biner 169 

Aplikasi yang menggunakan citra biner sebagai masukan untuk pemrosesan

 pengenalan objek, misalnya pengenalan karakter secara optik, analisis kromosom,

 pengenalan sparepart  komponen industri, dan sebagainya.

11.2 Konversi Citra hitam-putih ke Citra Biner

Pengkonversian citra hitam-putih ( greyscale) menjadi citra biner dilakukan untuk

alasan-alasan sebagai berikut:

1.  Untuk mengidentifikasi keberadaan objek, yang direpresentasikan sebagai

daerah (region) di dalam citra. Misalnya kita ingin memisahkan (segmentasi)

objek dari gambar latar belakangnya.  Pixel-pixel   objek dinyatakan dengan

nilai 1 sedangkan  pixel  lainnya dengan 0. Objek ditampilkan seperti gambar

siluet. Untuk memperoleh siluet yang bagus, objek harus dapat dipisahkan

dengan mudah dari gambar latar belakangnya.

2.  Untuk lebih memfokuskan pada analisis bentuk morfologi, yang dalam hal

ini intensitas  pixel   tidak terlalu penting dibandingkan bentuknya. Setelah

objek dipisahkan dari latar belakangnya, properti geometri dan morfologi/topologi objek dapat dihitung dari citra biner. Hal ini berguna untuk pengambilan

keputusan.

3.  Untuk menampilkan citra pada piranti keluaran yang hanya mempunyai

resolusi intensitas satu bit, yaitu piranti penampil dua-aras atau biner seperti

 pencetak ( printer ).

4.  Mengkonversi citra yang telah ditingkatkan kualitas tepinya (edge enhancement )

ke penggambaran garis-garis tepi. Ini perlu untuk membedakan tepi yang

kuat yang berkoresponden dengan batas-batas objek dengan tepi lemah yang

 berkoresponden dengan perubahan illumination, bayangan, dll.

PengambanganKonversi dari citra hitam-putih ke citra biner dilakukan dengan operasi

 pengambangan (thresholding ). Operasi pengambangan mengelompokkan nilai

derajat keabuan setiap pixel  ke dalam 2 kelas, hitam dan putih.

Dua pendekatan yang digunakan dalam operasi pengambangan adalah pengambangan

secara global dan pengambangan secara lokal.

a.  Pengambangan secara global ( global image thresholding )

Setiap  pixel   di dalam citra dipetakan ke dua nilai, 1 atau 0 dengan fungsi

 pengambangan:

  ≤=

lainnya,0),(,1),( T  ji f  ji f    g 

 B   (11.1)

Page 179: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 179/229

 

170 Pengolahan Citra Digital

 P (r )

kelas 0

kelas 1

yang dalam hal ini,  f  g (i, j) adalah citra hitam-putih, f  B(i, j) adalah citra biner, danT   adalah nilai ambang yang dispesifikasikan. Dengan operasi pengambangantersebut, objek dibuat berwarna gelap (1 atau hitam) sedangkan latar belakang berwarna terang (0 atau putih).

 Nilai ambang T  dipilih sedemikian sehingga galat yang diperoleh sekecil mungkin.Cara yang umum menentukan nilai T   adalah dengan membuat histogram citra.Jika citra mengandung satu buah objek dan latar belakang mempunyai nilaiintensitas yang homogen, maka citra tersebut umumnya mempunyai histogrambimodal   (mempunyai dua puncak atau dua buah maksimum lokal) seperti yangditunjukkan pada Gambar 11.3. Nilai T  dipilih pada nilai minimum lokal yangterdapat di antara dua puncak. Dengan cara seperti ini, kita tidak hanya mengkonversicitra hitam-putih ke citra biner, tetapi sekaligus melakukan segmentasi objek darilatar belakangnya.

Gambar 11.4 memperlihatkan segmentasi objek (botol dan apel) dari latar belakangnya dengan cara mengkonversikan citra hitam-putihnya menjadi citra biner dengan menggunakan nilai ambang T   = 90 dan T   = 100. Gambar 11.5memperlihatkan konversi citra Lena menjadi citra biner dengan T  = 128 dan T  = 150. 

Gambar 11.3 Penentuan nilai ambang T

.

(a) (b)

Page 180: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 180/229

 

Bab 11_Citra Biner 171 

Gambar 11.5 Operasi pengambangan pada citra Lena 

(c) (d)

Gambar 11.4 (a) Citra botol, (b) histogram, (c) T = 90, dan (d) T = 100

(a) Citra Lena (b) Histogram citra Lena

(c) T  = 128 (d) T  = 150

Page 181: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 181/229

 

172 Pengolahan Citra Digital

Jika nilai intensitas objek diketahui dalam selang [T 1, T 2], maka kita dapat

menggunakan fungsi pengambangan:

  ≤≤

=lainnya,0

),(,1),( 21   T  ji f T 

 ji f    g  B   (11.2)

b.  Pengambangan secara lokal adaptif (locally adaptive image thresholding )

Pengambangan secara global tidak selalu tepat untuk seluruh macam gambar.

Beberapa informasi penting di dalam gambar mungkin hilang karena pengambangan

global ini. Lagipula, tidak ada harga nilai ambang yang berlaku secara global

untuk seluruh daerah citra (misalnya pada citra kedokteran, citra pemandangan

alam, dsb).

Pengambangan secara lokal dilakukan terhadap daerah-daerah di dalam citra.

Dalam hal ini citra dipecah menjadi bagian-bagian kecil, kemudian proses

 pengambangan dilakukan secara lokal. Nilai ambang untuk setiap bagian belumtentu sama dengan bagian lain. Sebagai contoh, pengambangan dilakukan

terhadap daerah citra yang berukuran 3 ×  3 atau 5 ×  5  pixel . Nilai ambangnya

ditentukan sebagai fungsi rata-rata derajat keabuan di dalam dearah citra tersebut.

Intensitas  pixel   yang berbeda secara signifikan dari nilai rata-rata tersebut

dianggap mengandung informasi kontras dan ini harus dipertahankan di dalam

citra biner.

Dengan pengambangan secara lokal adaptif, secara subjektif citra biner yang

dihasilkan terlihat lebih menyenangkan dan sedikit informasi yang hilang.

11.3 Penapis Luas

Proses pengambangan menghasilkan citra biner. Seringkali citra biner yang

dihasilkan mengandung beberapa daerah yang dianggap sebagai gangguan.

Biasanya daerah gangguan itu berukuran kecil. Penapis luas dapat digunakan

untuk menghilangan daerah gangguan tersebut [JAI95]. Misalkan objek yang

dianalisis diketahui mempunyai luas yang lebih besar dari T . Maka,  pixel - pixel  

dari daerah yang luasnya di bawah T   dinyatakan dengan 0. Dengan cara ini,

daerah yang berupa gangguan dapat dihilangkan (Gambar 11.6 dan 11.7).

Page 182: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 182/229

 

Bab 11_Citra Biner 173 

Gambar 11.6 Kiri: gangguan pada citra biner yang mengandung huruf “i”; Kanan: citra yangdihasilkan setelah dilakukan penapisan (T = 10) [JAI95].

Gambar 11.7 Kesalahan yang diperoleh dari pengambilan nilai T 0  yang tidak tepat (T = 25).Perhatikan bahwa “titik” di atas huruf “i” hilang karena luasnya, sehingga huruf “i” terlihat seperti

angka “1” [JAI95].

11.4 Pengkodean Citra Biner

Citra biner umumnya dikodekan dengan metode run-length encoding   ( RLE ).

Metode pengkodean ini menghasilkan representasi citra yang mampat.

Dua pendekatan yang digunakan dalam penerapan RLE  pada citra biner:

a.  Posisi awal kelompok nilai 1 dan panjangnya (length of runs)

 b.  Panjang run, dimulai dengan panjang run 1.

Page 183: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 183/229

 

174 Pengolahan Citra Digital

Contoh 11.1.  Misalkan citra binernya adalah sebagai berikut

1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1

0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1

1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1

Hasil pengkodean dengan metode RLE:

(i)   pendekatan pertama:

(1, 3) (7, 2) (12, 4) (17, 2) (20, 3)

(5, 13) (19, 4)

(1, 3) (17, 6)

(ii)  pendekatan kedua

3, 3, 2, 3, 4, 1, 2, 1, 3

0, 4, 13, 1, 4

3, 13, 6

11.5 Segmentasi Citra Biner

Proses awal yang dilakukan dalam menganalisis objek di dalam citra biner adalah

segmentasi objek. Proses segmentasi bertujuan mengelompokkan  pixel - pixel  

objek menjadi wilayah (region) yang merepresentasikan objek.

Ada dua pendekatan yang digunakan dalam segmentasi objek:

1.  Segmentasi berdasarkan batas wilayah (tepi dari objek).

 Pixel - pixel   tepi ditelusuri sehingga rangkaian  pixel   yang menjadi batas

(boundary) antara objek dengan latar belakang dapat diketahui secara

keseluruhan (algoritma boundary following ).

2.  Segmentasi ke bentuk-bentuk dasar (misalnya segmentasi huruf menjadi

garis-garis vertikal dan horizontal, segmentasi objek menjadi bentuk lingkaran,

elips, dan sebagainya).

Kita hanya akan membahas pendekatan pertama.

Page 184: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 184/229

 

Bab 11_Citra Biner 175 

Segmentasi berdasarkan batas wilayah.

Pada citra biner, batas antara objek dengan latar belakang terlihat jelas.  Pixel  

objek berwarna hitam sedangkan pixel  latar belakang berwarna putih. Pertemuan

antara pixel  hitam dan putih dimodelkan sebagai segmen garis. Penelusuran batas

wilayah dianggap sebagai pembuatan rangkaian keputusan untuk bergerak lurus,

 belok kiri, atau belok kanan seperti yang diperlihatkan pada Gambar 11.8.

Gambar 11.8 Proses penelusuran batas wilayah dalam citra biner [DUL97].

 Pixel   yang bertanda • menyatakan  pixel   yang sedang ditelaah. Penelusur harus

menentukan arah pixel  tepi berikutnya bergantung pada pixel - pixel  sekitarnya.

Algoritma menentukan arah berikutnya:

if DepanTidakSama(arah,x,y) then

Belok kanan (arah,x,y)

else

if SilangSama(arah,x,y) then

Belok kiri (arah,x,y)

else

Lurus (arah,x,y)

endif

endif 

Metode pendeteksian batas wilayah yang lain adalah pendeteksian secara

topologi. Pada metode topologi, setiap kelompok 4- pixel  bertetangga diperiksa,

dan bila kelompok tersebut sama dengan salah satu bentuk pada Gambar 11.9,

maka pada titik tengah dari kelompok pixel  tersebut terdapat tepi.

Page 185: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 185/229

 

176 Pengolahan Citra Digital

Gambar 11.9 Bentuk-bentuk yang menghasilkan titik tepi [MEN89]. 

Titik tepi yang dideteksi selanjutnya dihubungkan oleh garis-garis penghubung.

Arah garis penghubung dikodekan dengan kode rantai (chain code).

11.6 Representasi Wilayah

Wilayah (region) di dalam citra biner dapat direpresentasikan dalam beberapa

cara. Salah satu cara yang populer adalah representasi wilayah dengan pohon-

empatan  (quadtree). Setiap simpul di dalam pohon-empatan merupakan salahsatu dari tiga ketagori: putih, hitam, dan abu-abu. Pohon-empatan diperoleh

dengan membagi citra secara rekursif. Wilayah di dalam citra dibagi menjadi

empat buah upa-wilayah yang berukuran sama. Untuk setiap upa-wilayah, bila

 pixel-pixel  di dalam wilayah tersebut semuanya hitam atau semuanya putih, maka

 proses pembagian dihentikan. Sebaliknya, bila  pixel-pixel  di dalam upa-wilayah

mengandung baik pixel  hitam mapupun pixel  putih (kategori abu-abu), maka upa-

wilayah tersebut dibagi lagi mejadi empat bagian. Demikian seterusnya sampai

diperoleh upa-wilayah yang semua  pixel -nya hitam atau semua  pixel -nya putih.

Proses pembagian tersebut digambarkan dengan pohon-empatan. Dinamakan

 pohon-empatan karena setiap simpul mempunyai tepat empat anak, kecuali

simpul daun. Gambar 10.10 memperlihatkan contoh representasi wilayah dengan

 pohon empatan.

Page 186: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 186/229

 

Bab 11_Citra Biner 177 

 A

L K 

J I 

H G 

B

E D   A

B C D E  

G H 

I J K 

L

  Kode: gwgwbbwbgwwgwwgwwbbb

Di-decode sebagai: g (wg (wbbw)bg (wwg (wwbb)b))Keterangan: b = black , w = white, g  = gray 

(a) Citra biner (b) Pohon-empatan

Gambar 11.10 Representasi wilayah dengan pohon-empatan

11.7 Properti Geometri

Setelah proses segmentasi objek selesai dilakukan, maka proses berikutnya adalah

menganalisis objek untuk mengenali objek tersebut. Analisis objek didasarkan

 pada ciri khas ( feature) geometri pada objek tersebut. Kita asumsikan di dalam

citra biner hanya terdapat 1 buah objek.

Ada dua kelompok ciri khas pada objek [JAI95]:

a.  Global feature, yaitu ciri khas keseluruhan objek. b.   Local feature, yaitu ciri khas bagian tertentu dari objek.

Besaran yang termasuk global feature:

(i)  Luas atau ukuran objek ( A)

∑∑= =

=n

i

m

 j

 ji f  A1 1

),( (11.3)

Catatan: f (i, j) = 1 jika (i, j) adalah pixel  objek

Page 187: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 187/229

 

178 Pengolahan Citra Digital

(ii) Pusat massa

Berguna untuk menentukan posisi objek.

 A

 ji f  j

 x

n

i

m

 j

∑∑= =

=

1 1

),(.

  (11.4)

 A

 ji f i

 y

n

i

m

 j

∑∑= =

=1 1

),(.

  (11.5)

(iii) Momen inersia ( M )

 A

 ji f  j

 M 

n

i

m

 j x

∑∑= =

= 1 1

2),(.

  (11.6)

 A

 ji f i

 M 

n

i

m

 j

 y

∑∑= =

=1 1

2 ),(.

  (11.7)

(iv) Keliling objek ( K )

Menghitung panjang batas wilayah. Pixel  dalam batas wilayah horizontal atau

vertikal dianggap satu satuan panjang, sedangkan  pixel   pada arah diagonal

 panjangnya√

2 satuan.

(v) Tinggi (T )

Dihitung dari jarak vertikal dari pixel  tertinggi dan terendah dari objek. Jarak

antara pixel  (i1, j1) dan pixel  (i2, j2) dapat dihitung dengan bermacam-macam

rumus:

-   Euclidean

221

221Euclidean )()(   j jiid    −+−=   (11.8) 

-  City-block

2121city   j jiid    −+−=   (11.9)

Page 188: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 188/229

 

Bab 11_Citra Biner 179 

-  Chessboard

),(max 2121chess   j jiid    −−=   (11.10)

(vi) Lebar ( L)Dihitung dari jarak horizontal dari pixel  tertinggi dan terendah dari objek.

(vii) Diameter

Dihitung dari jarak paling jauh dari dua titik pada objek.

(viii) Kompleksitas bentuk

Menyatakan seberapa rumitnya suatu bentuk. Didefinisikan sebagai  K 2/A,

yang dalam hal ini K  = keliling, A = luas.

(ix) ProyeksiMenyatakan bentuk yang diperoleh dari hasil proyeksi objek terhadap garis

sumbu.Proyeksi citra biner terhadap garis horizontal dan garis vertikal dihitung

dengan rumus:

∑=

=m

 j

 ji f i H 1

),()( (11.11)

∑=

=n

i

 ji f iV 1

),()( (11.12)

Sedangkan besaran yang termasuk local feature antara lain:

(i) 

Arah dan panjang segmen garis lurusArah garis dinyatakan dengan kode Freeman, sedangkan panjang garis

dihitung sebagai jarak antara ujung-ujung garis.

(ii) Sudut antar garis

Menyatakan besar sudut antara dua garis lurus yang berpotongan.

(iii) Jarak relatif

Dihitung sebagai jarak antara dua titik.

(iv) Object   signature Menyatakan jarak dari pusat massa ke tepi suatu objek pada arah 0 sampai

360 derajat.

Page 189: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 189/229

 

180 Pengolahan Citra Digital

11.8 Penipisan Pola

Pada aplikasi pencocokan pola, banyak bentuk terutama bentuk yang

mengulur/memanjang yang dapat dinyatakan dalam versi yang lebih tipis. Bentuk

yang lebih tipis terdiri dari garis-garis terhubung yang disebut rangka ( skeleton)

atau tulang atau garis inti. Idealnya, rangka tersebut membentang sepanjang garis

sumbu objek.

Penipisan (thinning ) adalah operasi pemrosesan citra biner yang dalam hal ini

objek (region) direduksi menjadi rangka yang menghampiri garis sumbu objek.

Tujuan penipisan adalah mengurangi bagian yang tidak perlu (redundant )

sehingga hanya dihasilkan informasi yang esensial saja. Pola hasil penipisan

harus tetap mempunyai bentuk yang menyerupai pola asalnya. Sebagai contoh,

Gambar 11.11 adalah huruf “R” dan hasil penipisan polanya menjadi rangka “R”.

(a) Huruf “R” (b) Hasil penipisan huruf “R

Gambar 11.11 Penpisan pola huruf “R”

Penipisan pola merupakan proses yang iteratif yang menghilangkan  pixel-pixel  

hitam (mengubahnya menjadi  pixel   putih) pada tepi-tepi pola. Jadi, algoritma

 penipisan mengelupas  pixel-pixel   pinggir objek, yaitu  pixel-pixel   yang terdapat

 pada peralihan 0→1. Algoritma penipisan pola harus memenuhi persyaratan

sebagai berikut [PIT93]:

1.  Mempertahankan keterhubungan pixel-pixel  objek pada setiap lelaran. Dengan

kata lain, tidak menyebabkan bentuk objek menjadi terputus (Gambar

11.12(a)).

2.  Tidak memperpendek ujung lengan dari bentuk yang ditipiskan (Gambar

11.12(b)).

Page 190: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 190/229

 

Bab 11_Citra Biner 181 

p8

p7

  p0

  p3

p6

  p5

  p4

p1

  p2

 

(a) (b) (c)

Gambar 11.12 (a) Penghapusan pixel pinggir menyebabkan ketidakterhubungan,(b) penghapusan pixel pinggir memperpendek lengan objek,

(c) notasi pixel yang digunakan untuk memeriksa keterhubungan.

Algoritma penipisan yang umum adalah memeriksa  pixel-pixel  di dalam jendela

yang berukuran 3 ×  3  pixel   dan mengelupas satu  pixel   pada pinggiran (batas)

objek pada setiap lelaran, sampai objek berkurang menjadi garis tipis. Notasi

 pixel   di dalam jendela 3 ×  3 diperlihatkan pada Gambar 11.12(c). Algoritma

 bekerja secara iteratif, pada setiap lelaran dilakukan premrosesan pada jendela

yang berukuran 3×

 3 pixel .

Algoritmanya adalah sebagai berikut [PIT93]:

1.  Mula-mula diperiksa jumlah  pixel   objek (yang bernilai 1),  N , di dalam

 jendela 3 × 3 pixel .

2.  Jika N  kurang atau sama dengan 2, tidak ada aksi yang dilakukan karena di

dalam jendela terdapat ujung lengan objek.

3.  Jika  N   lebih besar dari 7, tidak ada aksi yang dilakukan karena dapat

menyebabkan pengikisan (erosion) objek.

4.  Jika  N   lebih besar dari 2, periksa apakah penghilangan  pixel   tengah

menyebabkan objek tidak terhubung. Ini dilakukan dengan membentuk

 barisan p1 p2 p3… p8 p1. Jika jumlah peralihan 0 → 1 di dalam barisan tersebut

sama dengan 1, berarti hanya terdapat satu komponen terhubung di dalam jendela 3 ×  3. Pada kasus ini, dibolehkan menghapus  pixel   tengah yang

 bernilai 1 karena penghapusan tersebut tidak mempengaruhi keterhubungan.

Algoritma penipisan pola dalam bahasa C  diperlihatkan pada Algoritma 11.1.

void penipisan(citra f, int N1, int M1, int N2, int M2)

/* Prosedur yang mengimplementasikan penipisan pola

Masukan :

f : citra biner

N1, M1 : koordinat awal (sudut kiri atas)

N2, M2 : koordinat akhir (sudut kanan bawah)

Keluaran: citra bienrf

*/

{

int k, l, i, j, count=0, y[9], trans=0, m, OK=1

Page 191: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 191/229

 

182 Pengolahan Citra Digital

do

{

OK=1;

for(k=N1+1;k<N2-1;k++)

for(l=M1+1;l<M2-1;l++)

if (f[k][l]==1)

{/* hitung jumlah 1 di dalam jendela 3 ×   3 */

count=0;for(i=-1;i<=1;i++)

for(j=-1;j<=1;j++)

if(f[k+i][j+l]==1) count++;

if((count>2)&&(count<8))

{ /* hitung jumlah peralihan 0->1 */

y[0]=f[k-1][l-11]; y[1]=f[k-1][l];y[2]=f[k-1][l+1];

y[3]=f[k][l+1]; y[4]=f[k+1]l+1];y[5]=f[k+1][l];

y[6]=f[k+1][l-1]; y[7]=f[k][l-1];y[8]=f[k-1][l-1];

trans=0;

for(m=0;m<=7;m++)

if (y[m]==0 && y[m+1]==1) trans++;

/* jika jumlah peralihan sama dengan 1, hapus pixel

yang sedang diacu (current) */

if (trans==1) {f[k][l]=0; OK=0;}

}

}

} while (OK=0);

}

 Algoritma 11.1  Penipisan pola.

Page 192: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 192/229

Bab 12_Warna   183

Bab 12

Warna

ersepsi visual citra berwarna (color images) umumnya lebih kaya

dibandingkan dengan citra hitam putih ( greyscale), karena itu citra

 berwarna lebih disenangi daripada citra hitam putih. Citra berwarna

menampilkan warna objek seperti warna aslinya (meskipun tidak selalu tepat

demikian). Bab ini akan menguraikan konsep warna, model warna, dan

transformasi warna dari satu model ke model lainnya.

12.1 Dasar-dasar Warna

Warna yang diterima oleh mata dari sebuah objek ditentukan oleh warna sinar 

yang dipantulkan oleh objek tersebut. Sebagai contoh, suatu objek berwarna hijau

karena objek tersebut memantulkan sinar biru dengan panjang gelombang 450

sampai 490 nanometer (nm).

Warna sinar yang direspon oleh mata adalah sinar tampak (visible spectrum)

dengan panjang gelombang berkisar dari 400 (biru) sampai 700 nm (merah).

Lihat Gambar 12.1.

10-5

10-1

  1 10 400 700 2500 nm 1000 m

P

Page 193: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 193/229

184 Pengolahan Citra Digital

sinar sinar sinar kosmik gamma X ultraviolet Inframerah micro TV   radio electr.wave wave wave  power 

ultra violet sinar tampak infra merah

400 nm 700 nm

Gambar 12.1  Spektrum cahaya

Warna-warna yang diterima oleh mata manusia merupakan hasil kombinasi

cahaya dengan panjang gelombang berbeda. Penelitian memperlihatkan bahwa

kombinasi warna yang memberikan rentang warna yang paling lebar adalah red 

( R),  green  (G), dan blue  ( B). Ketiga warna tersebut dinamakan warna pokok 

( primaries), dan sering disingkat sebagai warna dasar  RGB. Warna-warna lain

dapat diperoleh dengan mencampurkan ketiga warna pokok tersebut dengan

 perbandingan tertentu (meskipun tidak sepenuhnya benar, karena tidak semua

kemungkinan warna dapat dihasilkan dengan kombinasi   RGB  saja), sesuai

dengan teori Young (1802) yang menyatakan bahwa sembarang warna dapat

dihasilkan dari percampuran warna-warna pokok   C 1,   C 2, dan   C 3  dengan

 persentase tertentu [PIT93]:

C  = a C 1 + b C 2 + c C 3 (12.1)

Bila citra warna didigitasi, maka tiga buah  filter   digunakan untuk mengekstraksi

intensitas warna merah, hijau, dan biru, dan bila ketiganya dikombinasikan kita

memperoleh persepsi warna.

12.2 Atribut Warna

Selain RGB, warna juga dapat dimodelkan berdasarkan atribut warnanya. Setiap

warna memiliki 3 buah atribut, yaitu intensity ( I ), hue ( H ), dan saturation (S ).

a.   Intensity/brigthness/luminance

Atribut yang menyatakan banyaknya cahaya yang diterima oleh mata tanpa

mempedulikan warna. Kisaran nilainya adalah antara gelap (hitam) dan

terang (putih).

Page 194: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 194/229

Page 195: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 195/229

186 Pengolahan Citra Digital

12.3 Sistem Koordinat WarnaCIE   (Commission International de l’Eclairage)   atau International Lighting 

Committee  adalah lembaga yang membakukan warna pada tahun 1931.   CIE 

mula-mula menstandarkan panjang gelombang warna-warna pokok sebagai

 berikut [MEN89] :

 R : 700 nm

G : 546.1 nm

 B : 435.8 nm

Warna-warna lain dapat dihasilkan dengan mengkombinasikan ketiga warna

 pokok tersebut. Model warna yang digunakan sebagai acuan dinamakan model RGB.

 RGB bukan satu-satunya warna pokok yang dapat digunakan untuk menghasilkan

kombinasi warna. Warna lain dapat juga digunakan sebagai warna pokok 

(misalnya C  = Cyan, M  = Magenta, dan Y  = Yellow).

Karena itu CIE  mendefinisikan model warna dengan menggunakan warna-warna

fiktif (yaitu, warna yang secara fisik tidak dapat direalisasikan), yang

dilambangkan dengan  X , Y , dan  Z . Model warna tersebut dinamakan model  XYZ .

Warna-warna dispesifikasikan dengan jumlah relatif warna pokok fiktif.

Keuntungan utama dari model ini adalah   luminance  atau  brigntness  sinyal

disediakan langsung oleh Y. Jadi, nilai Y  memberikan citra  greyscale  dari citra berwarnanya.

Kromatisitas (chromaticity of color ) masing-masing warna pokok, menunjukkan

 persentase relatif suatu warna pokok di antara warna pokok lainnya pada warna

yang diberikan, yang definisikan sebagai

 Z Y  X 

 X  x

++= (12.2)

 Z Y  X 

Y  y

++= (12.3)

 Z Y  X 

 Z  z ++

= (12.4)

Warna putih acuan dinyatakan dengan  X   =  Y   =  Z   = 1. Jumlah seluruh nilai

kromatisitas warna adalah satu:

 x + y + z  = 1 (12.5)

Page 196: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 196/229

Page 197: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 197/229

188 Pengolahan Citra Digital

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

 x

 y

780

520

510

500

490

480

470380

620

600

560

540

 gold 

 green

Spectral energy locus

(wavelength in nanometers)

red  pink 

warm whitecool white

daylight 

deep blue

blue Point of 

equal energy

 Hue  dari warna tertentu diperoleh dengan menarik garis dari putih ke sisi elips

melalui warna tersebut. Misalkan digambar garis dari posisi   W  (putih) melalui

warna tertentu,  P , ke sisi elips pada posisi  H . Nilai hue adalah  H , dan  saturation

adalah panjang   WP   relatif terhadap   WH . Warna   P  dapat dipandang sebagai

campuran warna putih dan hue:

 P  = SH  + (1 –  S ) W  (12.7)

yang dalam hal ini S  mengendalikan perbandingan relatif warna putih dan hue.

Gambar 12.3 Diagram kromatisitas CIE 

Page 198: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 198/229

Bab 12_Warna   189

 Algor itma 12.1  Transformasi citra dari model warna CIE RGB ke model CIE XYZ 

12.4 Transformasi Sistem Koordinat WarnaTransformasi warna dari basis   CIE RGB  ke CIE XYZ  dapat dilakukan sebagai

 berikut: Diberikan triplet  RGB  ( Ri, G i, B i) untuk  pixel i, maka triplet  XYZ   ( X i, Y i,

 Z i) dihitung dengan

=

99.0010.0000.0

011.0813.0177.0

200.0310.0490.0

i

i

i

 Z 

 X 

i

i

i

 B

G

 R

(12.8)

Transformasi sebaliknya dari   CIE XYZ   ke CIE RGB  dapat dilakukan dengan

 persamaan

−−

=

009.1014.0005.0

088.0425.1515.0

468.03896.0365.2

i

i

i

 B

G

 R

i

i

i

 Z 

 X 

(12.9)

Algoritma transformasi citra dari model warna CIE RGB  ke model warna CIE 

 XYZ   diperlihatkan pada Algoritma 12.1, sedangkan algoritma transformasi balikan dari model warna CIE XYZ  ke model warna CIE RGB diperlihatkan pada

Algoritma 12.2 [PIT93]. Kedua algoritma tersebut mengasumsikan bahwa

komponen  RGB  disimpan masing-masing di dalam matriks r, g, dan b. Hasil

transformasi masing-masing disimpan di dalam matriks x, y, dan z. Ukuran citra

adalah N × M.

int cieRGB_toXYZ(citra r, citra g, citra b,citra x, citra y, citra z, int N, int M)

/* Transformasi citra dari model warna CIE RGB ke model CIE XYZ

Masukan: citra dengan kompoenen RGB masing-masing disimpan di dalam

  matriks r, g, dan b. Ketga mtariks ini berukuran N ×  M.

  Keluaran: citra dengan komponen XYZ masing-masing disimpan di dalam

  matriks x, y, dan z.*/ 

{

 int i, j; double R, G, B; double X, Y, Z;

 for (i=0; i<=N-1; i++)

  for (j=0; j<=M-1; j++)

  {  R = (double)r[i][j]; G=(double)g[i][j]; B=(double)b[i][j];

  X = 0.490*R+0.310*G+0.200*B;  Y = 0.177*R+0.813*G+0.011*B;

  Z = 0.010*G+0.990*B;

  if (X > 255.0) x[i][j]=255; else x[i][j]=(unsigned char)X;  if (Y > 255.0) y[i][j]=255; else y[i][j]=(unsigned char)Y;

  if (Z > 255.0) z[i][j]=255; else z[i][j]=(unsigned char)ZX;

  }}

Page 199: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 199/229

190 Pengolahan Citra Digital

int XYZ_to_cieRGB(citra x, citra y, citra z,citra r, citra g, citra b, int N, int M)

/* Transformasi citra dari model warna CIE XYZ ke model CIE RGB

Masukan: citra dengan komponen XYZ masing-masing disimpan di dalam

  matriks x, y, dan z. Ketga mtariks ini berukuran N ×  M.

  Keluaran: citra dengan komponen RGB masing-masing disimpan di dalam

  matriks r, g, dan b.

*/ 

{

 int i, j; double R, G, B; double X, Y, Z;

 for (i=0; i<=N-1; i++)

  for (j=0; j<=M-1; j++)

  { X = (double)x[i][j]; Y =(double)y[i][j]; Z =(double)z[i][j];

  R = 2.365*X-0.896*Y-0.468*Z;

  G = -0.515*X+1.425*Y+0.088*Z;

  B = 0.005*X-0.014*Y+1.009*Z;  if (R > 255.0) r[i][j]=255;

else if (R<0.0) r[i][j]=0;

else r[i][j]=(unsigned char)R;

  if (G > 255.0) g[i][j]=255;

  else if (G<0.0) g[i][j]=0;

else g[i][j]=(unsigned char)G;

  if (B > 255.0) b[i][j]=255;

else if (B<0.0) b[i][j]=0;

else b[i][j]=(unsigned char)B;

}

 Algoritma 12.2   Transformasi citra dari model warna CIE XYZ ke model CIE RGB

Model warna  RGB dan  XYZ  yang dikemukakan di atas adalah bakuan dari CIE .

Ada juga model warna yang diusulkan untuk  platform perangkat keras tertentu

untuk menampilkan gambar. Misalnya  National Television Systems Committee

( NTSC ) menggunakan model warna   RGB  khusus untuk menampilkan citra

 berwarna pada layar   CRT . Format   NTSC   digunakan pada televisi di Amerika

Serikat. Salah satu keuntungan utama dari format ini adalah data   greyscale

dipisahkan dari data warnanya, sehingga sinyal yang sama dapat digunakan baik

untuk layar berwarna maupun layar hitam putih.

Pada format  NTSC , data citra terdiri atas tiga komponen, yaitu luminance (Y ), hue

( I ), dan  saturation (Q). Komponen pertama, yaitu Y  menyatakan data  greyscale,

sedangkan dua komponen terakhir membentuk   chrominance. Jika diberikantriplet  NTSC RGB  ( Ri,  Gi,  Bi) untuk  pixel i, maka nilai  YIQ untuk  pixel   yang

 bersangkutan dihitung dengan

−−=

312.0523.0211.0

322.0274.0596.0

114.0857.0299.0

i

i

i

Q

 I 

i

i

i

 B

G

 R

(12.10)

Page 200: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 200/229

Bab 12_Warna   191

 Nilai   NTSC RGB  semula dapat dihitung dengan menggunakan transformasi balikan:

−−=

701.1104.1000.1

647.0273.0000.1

621.0956.0000.1

i

i

i

 B

G

 R

i

i

i

Q

 I 

(12.11)

Transformasi dari  NTSC RGB ke CIE RGB dihitung dengan persamaan:

−−

=

128.1059.0001.0

159.0753.0114.0

151.0146.0167.1

i

i

i

 B

G

 R

i

i

i

 NTSC  B

 NTSC G

 NTSC  R

 _ 

 _ 

 _ 

(12.12)

Sistem NTSC RGB dapat ditransformasikan ke sistem CIE XYZ  dengan persamaan:

=

117.1066.0000.0

114.0587.0299.0

201.0174.0607.0

i

i

i

 Z 

 X 

i

i

i

 NTSC  B

 NTSC G

 NTSC  R

 _ 

 _ 

 _ 

(12.13)

sedangkan transformasi dari CIE XYZ  ke NTSC RGB dihitung dengan persamaan:

i

i

i

 NTSC  B NTSC G

 NTSC  R

 _  _ 

 _ 

 =

−−−

−−

896.0118.0058.0028.0000.2985.0

288.0533.0910.1

i

i

i

 Z Y 

 X 

(12.14)

12.5 Model Warna CMY  dan CMYK 

Warna   cyan  (C ) , magenta  (M ), dan  yellow  (Y ) adalah warna komplementer

terhadap   red ,   green, dan   blue. Dua buah warna disebut komplementer jika

dicampur dengan perbandingan yang tepat menghasilkan warna putih. Misalnya,

magenta  jika dicampur dengan perbandingan yang tepat dengan   green

menghasilkan putih, karena itu magenta adalah komplemen dari dari  green.

Model CMY dapat diperoleh dari model  RGB dengan perhitungan berikut:

C  = 1 –  R (12.15)

M  = 1 –  G (12.16)

Y  = 1 –  B (12.17)

Model   CMY   dapat digunakan untuk mencetak citra berwarna, tetapi karena

ketidaksempurnaan tinta, model   CMY   tidak dapat menghasilkan warna hitam

Page 201: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 201/229

192 Pengolahan Citra Digital

dengan baik. Karena itu, model CMY  disempurnakan menjadi model CMYK , yangdalam hal ini  K  menyatakan warna keempat, dengan perhitungan sebagai berikut

[PIT93]:

 K  = min(C , M , Y ) (12.18)

C  = C  –  K  (12.19)

M  = M  –  K  (12.20)

Y  = Y  –  K  (12.21)

Algoritma transformasi citra dari model  RGB ke model CMYK   ditunjukkan pada

Algoritma 12.3, sedangkan algoritma transformasi balikan dari model CMYK  ke

model RGB ditunjukkan pada Algoritma 12.4 [PIT93]. Kedua algoritma tersebut

mengasumsikan komponen RGB disimpan masing-masing di dalam matriks r, g,

dan b. Hasil transformasi masing-masing disimpan di dalam matriks c, m, y dan

k. Ukuran citra adalah N × M.

int RGB_toCMYK(citra r, citra g, citra b,

citra c, citra m, citra y, citra k,

  int N, int M)

/* Transformasi citra dari model warna RGB ke model CMYK.

Masukan: citra dengan komponen RGB masing-masing disimpan di dalam

  matriks r, g, dan b. Ketga mtariks ini berukuran N ×  M.

  Keluaran: citra dengan komponen CMYK masing-masing disimpan di dalam

  matriks c, y, m, dan k.

*/ 

{

 int i, j;

for (i=0; i<=N-1; i++)

  for (j=0; j<=M-1; j++)

  {

c[i][j]=(unsigned char)255 – r[i][j];

  m[i][j]=(unsigned char)255 – g[i][j];

  y[i][j]=(unsigned char)255 – b[i][j];

  k[i][j]=c[i][j];

  if (m[i][j]<k[i][j]) k[i][j]=m[i][j];

  if (y[i][j]<k[i][j]) k[i][j]=y[i][j];

  c[i][j]=c[i][j]-k[i][j];

  m[i][j]=m[i][j]-k[i][j];

  y[i][j]=y[i][j]-k[i][j];

  }

}

 Algoritma 12.3  Transformasi citra dari model warna RGB ke model CMYK.

Page 202: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 202/229

Bab 12_Warna   193

int CMYKtoRGB(citra c, citra y, citra m, citra k,citra r, citra g, citra b,

  int N, int M)

/* Transformasi citra dari model warna CMYK ke model RGB.

Masukan: citra dengan komponen CMYK masing-masing disimpan di dalam

  matriks c, y, m, dan k. Ketga mtariks ini berukuran N ×  M.

  Keluaran: citra dengan komponen RGB masing-masing disimpan di dalam

  matriks r, g, dan b.

*/ 

{

 int i, j;

for (i=0; i<=N-1; i++)

  for (j=0; j<=M-1; j++)

  { c[i][j]=c[i][j]+k[i][j];

  m[i][j]=m[i][j]+k[i][j];  y[i][j]=y[i][j]+k[i][j];

  k[i][j]=c[i][j];

  r[i][j]=(unsigned char)255 – c[i][j];

  g[i][j]=(unsigned char)255 – m[i][j];

  b[i][j]=(unsigned char)255 – y[i][j];

  }

}

 Algoritma 12.4  Transformasi citra dari model warna CMYK ke model RGB

17.6 Transformasi Warna RGB ke IHS

Meskipun basis  RGB  bagus untuk menampilkan informasi warna, tetapi ia tidak

cocok untuk beberapa aplikasi pemrosesan citra. Pada aplikasi pengenalan objek,

lebih mudah mengidentifikasi objek dengan perbedaan   hue-nya dengan cara

memberikan nilai ambang pada rentang nilai-nilai   hue  (panjang helombang

spektrum) yang melingkupi objek. Masalahnya, bagaimana melakukan pengambangan

 pada ruang warna  RGB  dan apa rumus untuk mengaplikasikannya? Masalah ini

lebih mudah dipecahkan bila nilai  RGB dikonversi ke nilai intensity ( I ), hue  ( H ),

dan saturation (S ).

Aplikasi yang lain misalnya dalam pemampatan citra. Melakukan pemampatan

secara terpisah pada setiap nilai  R, G, dan  B tidak disarankan, karena data yangdimampatkan 3 kali lebih banyak dan waktu pemampatannya 3 kali lebih lama

daripada waktu pemampatan citra skala-abunya. Pemampatan citra berwarna

lebih relevan bila warna   RGB-nya dikonversikan ke   IHS   karena algoritma

 pemampatan pada citra skala-abu dilakukan pada komponen  I , sedangkan nilai  H 

dan S  dikodekan dengan cara yang lain dengan sedikit atau sama sekali tidak ada

degradasi.

Page 203: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 203/229

194 Pengolahan Citra Digital

Model warna IHS  merepresentasikan warna dalam terminologi intensity, hue, dansaturation. Dari diagram kromatisitas, buatlah segitiga yang menghubungkan tiga

warna pokok red , green,  blue  (Gambar 12.4). Titik-titik pada segitiga menyatakan

warna yang dihasilkan dari pencampuran warna titik sudut, sedangkan titik-titik 

di dalam segitiga menyatakan warna yang dapat dihasilkan dengan

mengkombinasikan tiga warna titik sudut. Titik tengah segitiga menyatakan

warna putih, yaitu pencampuran warna pokok dengan fraksi yang sama.

 B

G R

 H 

Gambar 12.4  Segitiga HIS

Komponen RGB  dari citra berwarna dapat dikonversikan ke model warna  IHS .

Dengan mengasumsikan komponen  RGB  telah dinormalisasikan ke 1, maka  I 

dihitung dengan rumus:

)(3

1 BG R I    ++= (12.22)

Persamaan 12.22 di atas sering digunakan untuk mengubah citra berwarna

menjadi citra skala-abu.

 H  dihitung dengan rumus:

))(()(2

2cos

2

1

 BG B RG R

 BG R H 

−−+−

−−=   − (12.23)

Page 204: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 204/229

Bab 12_Warna   195

 Nilai S  dihitung dengan rumus:

),,min(3

1   BG R BG R

S ++

−= (12.24)

Alternatif lain mengubah model   RGB  ke model   IHS   adalah sebagai berikut.

Konversi dari model   RGB  ke model   IHS   dilakukan dalam dua tahap. Tahap

 pertama adalah merotasikan koordinat  RGB ke sistem koordinat ( I , V 1, V 2) dengan

transformasi:

−−

−=

6/16/16/22/12/10

3/33/33/3

2

1

V V 

 I 

 BG

 R

(12.25)

Langkah kedua adalah menghitung  H  dan S  dari koordinat (V 1, V 2):

 H  = tan-1(V 2/V 1) (12.26)

S = (V 12 + V 2

2)1/2 (12.27)

 Nilai H  adalah dalam selang [0,2π] atau setara dengan [0, 360°].

Transformasi dari model  IHS  ke model  RGB  dapat dilakukan dengan prosedur 

 balikan:

V 1 = S cos( H ) (12.28)

V 2 = S sin( H ) (12.29)

 B

G

 R

 =

−−

6/12/13/3

6/12/13/3

6/203/3

2

1

 I 

(12.30)

Dengan transformasi RGB ke IHS , maka algoritma pemrosesan citra yang semula

untuk citra skala-abu dapat diterapkan pada komponen   intensity, sedangkan

algoritma segmentasi citra dapat dilakukan pada komponen  H .

Page 205: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 205/229

196 Pengolahan Citra Digital

Transformasi citra dari basis  RGB ke basis  IHS  dilakukan sebelum pemrosesancitra. Citra yang sudah diproses dapat dikonversikan kembali ke basis  RGB untuk

tujuan display.

 National Television Systems Committee ( NTSC ) menggunakan model YIQ untuk

mentransformasikan model   RGB  ke   IHS , yang dalam hal ini   Y   menyatakan

intensity, I  menyatakan hue, dan Q menyatakan saturation [PIT93].

Page 206: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 206/229

 

Bab 13_Steganografi dan Watermarking  pada Citra Digital 197 

Bab 13

Steganografi dan Watermarking  pada

Citra Digital

teganografi ( steganography) adalah teknik menyembunyikan data rahasia di

dalam wadah (media) digital sehingga keberadaan data rahasia tersebut tidak

diketahui oleh orang. Steganografi membutuhkan dua properti: wadah

 penampung dan data rahasia yang akan disembunyikan. Steganografi digital

menggunakan media digital sebagai wadah penampung, misalnya citra, suara

(audio), teks, dan video. Data rahasia yang disembunyikan juga dapat berupa

citra, suara, teks, atau video.

Penggunaan steganografi antara lain bertujuan untuk menyamarkan eksistensi

(keberadaan) data rahasia sehingga sulit dideteksi, dan melindungi hak cipta suatu

 produk. Steganografi dapat dipandang sebagai kelanjutan kriptografi. Jika pada

kriptografi, data yang telah disandikan (ciphertext ) tetap tersedia, maka dengan

steganografi cipherteks dapat disembunyikan sehingga pihak ketiga tidak mengetahui

keberadaannya. Data rahasia yang disembunyikan dapat diekstraksi kembali persis

sama seperti keadaan aslinya.

Bab ini akan memaparkan steganografi dan watermarking   pada citra digital.

Watermarking  adalah aplikasi dari steganografi, di mana citra digital diberi suatu

 penanda yang menunjukkan label kepemilikan citra tersebut. Sebagian besar dari

materi bab ini dikutip dari [POL98].

S

Page 207: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 207/229

 

198 Pengolahan Citra Digital

13.1 Sejarah Steganografi

Steganografi sudah dikenal oleh bangsa Yunani. Penguasa Yunani dalam

mengirimkan pesan rahasia menggunakan kepala budak atau prajurit sebagai

media. Dalam hal ini, rambut budak dibotaki, lalu pesan rahasia ditulis pada kulitkepala budak. Ketika rambut budak tumbuh, budak tersebut diutus untuk

membawa pesan rahasia di kepalanya.

Bangsa Romawi mengenal steganografi dengan menggunakan tinta tak-tampak

(invisible ink ) untuk menuliskan pesan. Tinta tersebut dibuat dari campuran sari

 buah, susu, dan cuka. Jika tinta digunakan untuk menulis maka tulisannya tidak

tampak. Tulisan di atas kertas dapat dibaca dengan cara memanaskan kertas

tersebut.

Sebagai contoh ilustrasi, Gambar 13.1.a adalah citra lada ( peppers.bmp) yang

akan digunakan untuk menyembunyikan sebuah dokumen teks (Gambar 13.1.b)yang berukuran 20 KB). Perhatikanlah citra lada sebelum penyembuan data

(13.1.a) dan citra setelah disisipi data teks (13.1.c). Citra lada tetap kelihatan

mulus, seolah-olah tidak pernah disisipi data sebelumnya. Sebenarnya tidaklah

demikian, gambar lada tersebut mengalami sedikit  perubahan akibat steganografi,

namun mata manusia mempunyai sifat kurang peka terhadap perubahan kecil ini,

sehingga manusia sukar membedakan mana gambar yang asli dan mana gambar

yang sudah disisipi data.

Page 208: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 208/229

 

Bab 13_Steganografi dan Watermarking  pada Citra Digital 199 

(a) Citra peppers asli

LETTER OF RECOMMENDATION

To Whom It May Concern,

Herewith I highly recommend Mr. R. HendroWicaksono continue his postgraduate study atyour university. My recommendation is basedon my experience as his lecturer in several

courses for the past four years.He has shown me his excellent attitude and personality. He is a hard working person and hehas a lot of creative ideas. He is also a veryintelligent student and he cooperates very wellwith his peers whenever they had to worktogether.

During his study, he showed diligence andeagerness to achieve his goal. He sets very highstandard for himself and organizes himself verywell to achieve the standard. I am confident thatif he can maintain his goal work, he should beable to complete the postgraduate program wellwithin the stipulated time.

I am sure that his abilities and his personalqualities along with his academic capabilitieswill help his to obtain his Master’s degree atyour university, which will be very useful for

our country.

Bandung, November 15, 2002Yours Sincerely,

Ir. Rinaldi Munir, M.Sc.Senior LecturerInformatics Engineering Department,Institute Technology of Bandung (ITB)Jl. Ganesha No. 10, Bandung 40132Email : [email protected] +62-22-2508135Indonesia

( b) Dokumen hendro.doc  yang akandisembunyikan ke daalm citra lada 

(c) Citra peppers setelah “diisi” dengan data teks hendro.doc

Gambar 13.1  Contoh penyembunyian data di dalam citra digital

Page 209: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 209/229

Page 210: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 210/229

 

Bab 13_Steganografi dan Watermarking  pada Citra Digital 201 

Misalkan segmen pixel - pixel  citra sebelum penambahan bit-bit watermark  adalah

00110011 10100010 11100010 01101111

Misalkan data rahasia (yang telah dikonversi ke sistem biner) adalah 0111. Setiap

 bit dari watermark  menggantikan posisi LSB dari segmen data citra menjadi:

00110010 10100011 11100011 01101111

Untuk memperkuat penyembunyian data, bit-bit data tidak digunakan untuk

mengganti byte-byte  yang berurutan, namun dipilih susunan byte  secara acak.

Misalnya jika terdapat 50 byte  dan 6 bit data yang akan disembunyikan, maka

byte yang diganti bit LSB-nya dipilih secara acak, misalkan byte nomor 36, 5, 21,

10, 18, 49.

Bilangan acak dibangkitkan dengan  pseudo-random-number-generator   ( PRNG).

 PRNG menggunakan kunci rahasia untuk membangkitkan posisi  pixel  yang akan

digunakan untuk menyembunyikan bit-bit.  PRNG dibagun dalams ejumlah cara,

salah satunya dengan menggunakan algoritma kriptografi DES ( Data Encryption

Standard ), algoritma hash  MD5, dan mode kriptografi CFB  (Chiper-Feedback

 Mode). Tujuan dari enkripsi adalah menghasilkan sekumpulan bilangan acak

yang sama untuk setiap kunci enkripsi yang sama. Bilangan acak dihasilkan

dengan cara memilih bit-bit dari sebuah blok data hasil enkripsi.

Teknik penyembunyian data untuk citra 8-bit berbeda dengan citra 24-bit. Seperti

sudah dijelaskan di dalam Bab 3, berkas citra bitmap terdiri atas bagian header ,

 palet RGB, dan data bitmap.

Pada citra 8-bit, setiap elemen data bitmap menyatakan indeks dari peta warnanyadi palet  RGB. Pada citra 24-bit, tidak terdapat palet  RGB, karena nilai  RGB 

langsung diuraikan dalam data bitmap. Setiap elemen data bitmap panjangnya 3

byte, masing-masing byte menyatakan komponen R, G, dan B.

Teknik Penggantian Bit pada Citra bukan 24-bit.

Sebelum melakukan penggantian bit LSB, semua data citra yang bukan tipe 24-bit

diubah menjadi format 24-bit. Jadi, setiap data  pixel   sudah mengandung

komponen  RGB. Setiap byte  di dalam data bitmap  diganti satu bit  LSB-nya

dengan bit data yang akan disembunyikan. Jika byte  tersebut merupakan

komponen hijau (G), maka penggantian 1 bit LSB-nya hanya mengubah sedikitkadar warna hijau, dan perubahan ini tidak terdeteksi oleh mata manusia.

Page 211: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 211/229

 

202 Pengolahan Citra Digital

Teknik Penggantian Bit pada Citra 24-bit.

Karena data bitmap pada citra 24-bit sudah tersusun atas komponen  RGB, maka

tidak perlu dilakukan perubahan format. Setiap byte di dalam data bitmap diganti

satu bit LSB-nya dengan bit data yang akan disembunyikan.

Perubahan Jumlah Warna

Pada citra 8-bit, jumlah warna terbatas, hanya 256 warna. Pengubahan format

citra 8-bit menjadi 24-bit akan menghasilkan warna baru (yang semula tidak

terdapat di dalam palet RGB). Setiap elemen  RGB  pada tabel palet berpotensi

menjadi 8 warna berbeda setekah proses penggantian bit  LSB. Hal ini karena

setiap data bitmap terdiri atas 3 byte, maka tersedia 3 bit LSB untuk penggantian.

Penggantian 3 bit LSB menghasilkan 23 = 8 kombinasi warna. Dengan demikian,

steganografi pada citra 256 warna berpotensi menghasilkan 256 ×  8 = 2048

warna.

Untuk menghindari kelebihan warna dari 256, maka sebelum proses

 penyembunyian data, warna citra 8-bit diturunkan terlebih dahulu menjadi 32warna (jika jumlah warnanya kurang dari 32, tidak perlu dilakukan penurunan

warna). Dengan demikian, jika setiap warna menghasilkan 8 warna baru, jumlah

warna seluruhnya maksimum 32 × 8 = 256 warna.

Penurunan jumlah warna dilakukan dengan cara kuantisasi warna (color

quantization). Penurunan jumlah warna harus tetap menghasilkan citra yang

tampak persis seperti citra semula. Algoritma kuantisasi warna ada beberapa

 buah, antara lain algoritma diversity. Prinsip algoritma diversity  adalah

memaksimumkan perbedaan warna.

Algoritma Diversity:

1.  Buat histogram citra. Warna yang frekuensi kemunculannya 0 dibuang karenatidak akan digunakan.

2.  Pilih warna dengan frekuensi kemunculan tertinggi sebagai warna patokan.

Masukkan warna ini ke dalam senarai warna terpilih.

3.  Cari warna yang mempunyai perbedaan terjauh dengan warna patokan.

Masukkan warna tersebut ke dalam senarai warna terpilih. Perbedaan dua

 buah warna dihitung dengan rumus jarak Euclidean:

d  = { (r 1 – r 2)2 + ( g 1 – g 2)

2 + (b1 – b2)2 }1/2

yang dalam hal ini, r 1, g 1, dan b1 adalah komponen RGB dari warna pertama,

dan r 2, g 2, dan b2 adalah komponen RGB dari warna kedua.

4. 

Untuk setiap warna yang tersisa di dalam list , hitung jaraknya dari masing-masing warna di dalam senarai warna terpilih. Ambil warna yang paling jauh

 berbeda dengan warna yang sudah dipilih. Lakukan langkah 4 ini berulang

kali sampai k  warna sudah terpilih.

Page 212: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 212/229

Page 213: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 213/229

Page 214: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 214/229

 

Bab 13_Steganografi dan Watermarking  pada Citra Digital 205 

(c) Hasil penyembunyian data( peppers.bmp + handshak.bmp):

(d) Berkas handshak-stega.bmp (44KB) hasil pengungkapan:

Gambar 13.4 Penyembunyian citra handshaking ke dalam citra berwarna 24 bit (peppers.bmp)

2. Citra penampung: citra 24 bit (berwarna)

Data yang disembunyikan: teks

(a) Penampung: citra peppers.bmp (512 × 

512 pixel , 769 KB)

(b) Data yang disembunyikan:

hendro.doc (20 KB)

LETTER OF RECOMMENDATION

To Whom It May Concern,

Herewith I highly recommend Mr. R. Hendro

Wicaksono continue his postgraduate study atyour university. My recommendation is basedon my experience as his lecturer in severalcourses for the past four years.

He has shown me his excellent attitude and personality. He is a hard working person and he

has a lot of creative ideas. He is also a veryintelligent student and he cooperates very well

with his peers whenever they had to worktogether.

During his study, he showed diligence and

eagerness to achieve his goal. He sets very highstandard for himself and organizes himself very

well to achieve the standard. I am confidentthat if he can maintain his goal work, he should be able to complete the postgraduate programwell within the stipulated time.

I am sure that his abilities and his personalqualities along with his academic capabilitieswill help his to obtain his Master’s degree atyour university, which will be very useful for

our country.

Page 215: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 215/229

 

206 Pengolahan Citra Digital

Bandung, November 15, 2002Yours Sincerely,

Ir. Rinaldi Munir, M.Sc.Senior LecturerInformatics Engineering Department,

Institute Technology of Bandung (ITB)Jl. Ganesha No. 10, Bandung 40132

Email : [email protected] +62-22-2508135

Indonesia

(c) Hasil penyembunyian data

( peppers.bmp + hendro.doc):

(d) Hasil pengungkapan data

(hendro-stega.doc, 20 KB):

LETTER OF RECOMMENDATION

To Whom It May Concern,

Herewith I highly recommend Mr. R. Hendro

Wicaksono continue his postgraduate study atyour university. My recommendation is based

on my experience as his lecturer in severalcourses for the past four years.

He has shown me his excellent attitude and personality. He is a hard working person and hehas a lot of creative ideas. He is also a very

intelligent student and he cooperates very wellwith his peers whenever they had to work

together.

During his study, he showed diligence andeagerness to achieve his goal. He sets very high

standard for himself and organizes himself verywell to achieve the standard. I am confidentthat if he can maintain his goal work, he should

 be able to complete the postgraduate programwell within the stipulated time.

I am sure that his abilities and his personal

qualities along with his academic capabilitieswill help his to obtain his Master’s degree at

your university, which will be very useful for

our country.

Bandung, November 15, 2002

Yours Sincerely,

Ir. Rinaldi Munir, M.Sc.

Senior LecturerInformatics Engineering Department,Institute Technology of Bandung (ITB)

Jl. Ganesha No. 10, Bandung 40132Email : [email protected]

Phone +62-22-2508135

Indonesia 

Gambar 13.5 Penyembunyian dokumen teks ke dalam citra berwarna 24 bit (peppers.bmp)

Page 216: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 216/229

Page 217: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 217/229

 

208 Pengolahan Citra Digital

13.6 Watermarking 

Salah satu karya intelektual yang dilindungi adalah barang dalam bentuk digital,seperti  software dan produk multimedia seperti teks, musik (dalam format MP3atau WAV), gambar/citra (image), dan video digital (VCD). Selama ini

 penggandaan atas produk digital tersebut dilakukan secara bebas dan leluasa.Hasil penggandaan persis sama dengan aslinya. Pemegang hak cipta atas produkdigital tersebut tentu dirugikan karena ia tidak mendapat royalti dari usaha penggandaan tersebut.

Sebenarnya masalah penyalahgunaan hak cipta pada bidang multimedia tidakhanya mengenai penggandaan dan pendistribusiannya saja, tetapi juga mengenailabel kepemilikan. Kebanyakan produk digital tersebut tidak mencantumkan siapa pemegang hak ciptanya. Kalaupun bukti kepemilikan itu ada, biasanya informasikepemilikan disertakan pada sampul pembungkus yang menerangkan bahwa produk multimedia tersebut adalah milik pembuatnya. Masalahnya, distribusi produk multimedia saat ini tidak hanya secara offline, tetapi juga dapat dilakukan

lewat internet. Jika anda masuk ke situs-situs web  di internet, anda dapatmenemukan informasi berupa teks, gambar, suara, dan video. Semua produkdigital tersebut dapat anda download   dengan mudah. Anda pun juga dapatmempertukarkan data digital dengan layanan internet seperti e-mail .

Masalahnya, hampir semua data digital yang bertebaran di dunia internet tidakmencantumkan informasi pemiliknya. Seseorang yang telah mendapatkan produkdigital dapat mengklaim bahwa produk tersebut adalah hasil karyanya. Berhubungtidak ada bukti kepemilikan sebelumnya, maka klaim tersebut mungkin sajadipercaya.

Salah satu cara untuk melindungi hak cipta multimedia adalah dengan menyisipkan

informasi ke dalam data multimedia tersebut dengan teknik watermarking .Informasi yang disisipkan ke dalam data multimedia disebut watermark , danwatermark   dapat dianggap sebagai sidik digital (digital   signature) dari pemilikyang sah atas produk multimedia tersebut. Dengan kata lain, watermark yangdisisipkan menjadi label hak cipta dari pemiliknya. Pemberian  signature denganteknik watermarking   ini dilakukan sedemikian sehingga informasi yangdisisipkan tidak merusak data digital yang dilindungi. Sehingga, seseorang yangmembuka produk multimedia yang sudah disisipi watermark   tidak menyadarikalau di dalam data multimedia tersebut terkandung label kepemilikan pembuatnya.

Jika ada orang lain yang mengklaim bahwa produk multimedia yangdidapatkannya adalah miliknya, maka pemegang hak cipta atas karya multimediatersebut dapat membantahnya dengan mengekstraksi watermark  dari dalam data

multimedia yang disengketakan. Watermark  yang diekstraksi dibandingkan denganwatermark  pemegang hak cipta. Jika sama, berarti memang dialah pemegang hakcipta produk multimedia tersebut.

Page 218: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 218/229

 

Bab 13_Steganografi dan Watermarking  pada Citra Digital 209 

Pada dasarnya, teknik watermarking  adalah proses menambahkan kode identifikasi

secara permanen ke dalam data digital. Kode identifikasi tersebut dapat berupa

teks, gambar, suara, atau video. Selain tidak merusak data digital produk yang

akan dilindungi, kode yang disisipkan seharusnya memiliki ketahanan (robustness)

dari berbagai pemrosesan lanjutan seperti pengubahan, transformasi geometri,

kompresi, enkripsi, dan sebagainya. Sifat robustness berarti data watermark  tidak

terhapus akibat pemrosesan lanjutan tersebut.

Sejarah Watermarking  

Watermarking  sudah ada sejak 700 tahun yang lalu. Pada akhir abad 13, pabrik

kertas di Fabriano, Italia, membuat kertas yang diberi watermark  atau tanda-air

dengan cara menekan bentuk cetakan gambar atau tulisan pada kertas yang baru

setengah jadi. Ketika kertas dikeringkan terbentuklah suatu kertas yang ber-

watermark . Kertas ini biasanya digunakan oleh seniman atau sastrawan untuk

menulis karya mereka. Kertas yang sudah dibubuhi tanda-air tersebut sekalius

dijadikan identifikasi bahwa karya seni di atasnya adalah milik mereka [HEN03].

Ide watermarking   pada data digital (sehingga disebut digital   watermarking )

dikembangkan di Jepang tahun 1990 dan di Swiss tahun 1993.  Digital watermarking  

semakin berkembang seiring dengan semakin meluasnya penggunaan internet,

objek digital seperti video, citra, dan suara yang dapat dengan mudah digandakan

dan disebarluaskan.

Perbedaan Steganografi dengan Watermarking  

Watermarking  merupakan aplikasi dari steganografi, namun ada perbedaan antara

keduanya. Jika pada steganografi informasi rahasia disembunyikan di dalammedia digital dimana media penampung tidak berarti apa-apa, maka pada

watermarking  justru media digital tersebut yang akan dilindungi kepemilikannya

dengan pemberian label hak cipta (watermark ).

Meskipun steganografi dan watermarking   tidak sama, namun secara prinsip

 proses penyisipan informasi ke dalam data digital tidak jauh berbeda. Beberapa

metode yang sudah ditemukan untuk penyisipan watermark  adalah metdoe  LSB 

(seperti pada penjelasan steganografi di atas), metode adaptif, metode  spread

 spectrum, dan sebagainya.

Page 219: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 219/229

 

210 Pengolahan Citra Digital

Data watermark   yang lazim disisipkan ke dalam data digital adalah teks, citra,

atau suara. Watermark berupa teks mengandung kelemahan karena kesalahan satu

 bit akan menghasilkan hasil teks yang berbeda pada waktu verifikasi (ektraksi).

Watermark  berupa suara atau citra lebih disukai karena kesalahan pada beberapa

 bit watermark tidak menghasilkan perubahan yang berarti pada waktu verifikasi.

Hasil ekstraksi watermark   yang mengandung kesalahan tersebut masih dapat

dipersepsi secara visual (atau secara pendengaran jika watermark -nya berupa

suara). Citra yang sering digunakan sebagai watermark  biasanya logo atau lambang.

Penyisipan Watermark  

Di sini kita hanya meninjau watermarking  pada citra digital. Proses penyisipan

watermark   ke dalam citra disebut encoding   dan ditunjukkan Gambar 13.7.

 Encoding  dapat disertai dengan pemasukan kunci atau tidak memerlukan kunci.Kunci diperlukan agar watermark  hanya dapat diekstraksi oleh pihak yang sah.

Kunci juga dimaksudkan untuk mencegah watermark dihapus oleh pihak yang

tidak berhak.

 Encoding 

kunci

Citra

Watermark 

Citra ber-

watermark 

 

Gambar 13.7   Proses penyisipan watermark pada citra digital

Gambar 13.8 memperlihatkan sebuah gambar (image) paprika yang disisipi

dengan watermark   berupa gambar hitam putih yang menyatakan identifikasi

 pemiliknya (Shanty) [HEN03]. Perhatikanlah bahwa setelah disisipi watermark ,

gambar paprika tetap kelihatan mulus, seolah-olah tidak pernah disisipi

watermark  sebelumnya. Sebenarnya tidaklah demikian, gambar paprika tersebut

mengalami  sedikit   perubahan akibat watermarking , namun mata manusia

mempunyai sifat kurang peka terhadap perubahan kecil ini, sehingga manusiasukar membedakan mana gambar yang asli dan mana gambar yang sudah disisipi

watermark .

Page 220: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 220/229

 

Bab 13_Steganografi dan Watermarking  pada Citra Digital 211 

+

 

Watermark

=

 

Citra asli Citra ter-watermark  

Gambar 13.8   Memberi watermark pada citra peppers

Verifikasi Watermark  

Verifikasi watermark   dilakukan untuk membuktikan status kepemilikan citra

digital yang disengketakan. Verifikasi watermark   terdiri atas dua sub-proses,yaitu ekstraksi watermark   dan pembandingan. Sub-proses ekstraksi watermark  

disebut juga decoding , bertujuan mengungkap watermark   dari dalam citra.

 Decoding  dapat mengikutsertakan citra asal (yang belum diberi watermark ) atau

tidak sama sekali, karena beberapa skema watermarking  memang menggunakan

citra asal dalam proses decoding  untuk meningkatkan unjuk kerja yang lebih baik

[HEN03]. Sub-proses pembandingan bertujuan membandingkan watermark  yang

diungkap dengan watermark   asli dan memberi keputusan tentang watermark  

tersebut. Proses verifikasi watermark  ditunjukkan pada Gambar 13.9.

 Decoding 

kunci

Citra yang

diuji

Citra asal

watermark 

yang

terekstraksiPembandingan

watermark 

asli

keputusan

 

Gambar 13.9  Proses verifikasi watermark pada citra digital

Page 221: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 221/229

Page 222: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 222/229

Page 223: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 223/229

Page 224: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 224/229

 

Bab 15_Pengenalan Pola 231 

 Preprocessing   Feature

 Extraction  Classification

Pola

 Feature

Selection  Learning 

Pengenalan (recognition)

Pelatihan (training )

Pola terokan

 p(diameter | jeruk)

 p(diameter | apel)

diameter 

1

0

 peluang

a b 

Gambar 15.1. Grafik fungsi kerapatan dari ciri diameter jeruk dan apel.

Jika sebuah objek diukur dan diperoleh diameternya adalah a  cm, maka kitamengklasifikasikan objek tersebut sebagai “jeruk”, karena

 p(a | jeruk) > p(a | apel)

dan jika hasil pengukuran diameter adalah b cm, kita mengklasifikasikan objek

tersebut sebagai “apel”, karena

 p(b | jeruk) < p(b | apel)

Sistem pengenalan pola dengan pendekatan statistik ditunjukkkan oleh diagram

 pada Gambar 15.2.

Gambar 15.2. Sistem pengenalan pola dengan pendekatan statistik.

Page 225: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 225/229

 

232 Pengolahan Citra Digital

Ada dua fase dalam sistem pengenalan pola: (i) fase pelatihan dan (ii) fase

 pengenalan. Pada fase pelatihan, beberapa contoh citra dipelajari untuk menentukan

ciri yang akan digunakan dalam proses pengenalan serta prosedur klasifikasinya.

Pada fase pengenalan, citra diambil cirinya kemudian ditentukan kelas kelompoknya.

 Preprocessing

Proses awal yang dilakukan untuk memperbaiki kualitas citra (edge  enhancement )

dengan menggunakan teknik-teknik pengolahan citra yang sudah diejelaskan

 pada bab-bab sebelum ini.

Feature Extraction

Proses mengambil ciri-ciri yang terdapat pada objek di dalam citra. Pada proses

ini objek di dalam citra mungkin perlu dideteksi seluruh tepinya, lalu menghitung

 properti-properti objek yang berkaitan sebagai ciri. Beberapa proses ekstraksi ciri

mungkin perlu mengubah citra masukan sebagai citra biner, melakukan penipisan

 pola, dan sebagainya.

Classification

Proses mengelompokkan objek ke dalam kelas yang sesuai.

Feature Selection

Proses memilih ciri pada suatu objek agar diperoleh ciri yang optimum, yaitu ciri

yang dapat digunakan untuk membedakan suatu objek dengan objek lainnya.

 Learning

Proses belajar membuat aturan klasifikasi sehingga jumlah kelas yang tumpang

tindih dibuat sekecil mungkin.

Kumpulan ciri dari suatu pola dinyatakan sebagai vektor ciri dalam ruang

 bahumatra (multi dimensi). Jadi, setiap pola dinyatakan sebagai sebuah titik

dalam ruang bahumatra. Ruang bahumatra dibagi menjadi sejumlah uparuang

(sub-ruang). Tiap uparuang dibentuk berdasarkan pola-pola yang sudah dikenali

kategori dan ciri-cirinya (melalui fase pelatihan). Lihat Gambar 15.3.

Page 226: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 226/229

 

Bab 15_Pengenalan Pola 233 

 Preprocessing   Primitive

 Extraction  Classification

Pola

 Primitive

Selection  Learning 

Pengenalan (recognition)

Pelatihan (training )

Pola terokan

ciri 1

ciri 2 ciri 2

ciri 1

3 kelas 2 kelas yang beririsan

batas keputusan

batas kelas

 

Gambar 15.3. Contoh pembagian kelas pola

(b) Pengenalan Pola secara Sintaktik

Pendekatan ini menggunakan teori bahasa formal. Ciri-ciri yang terdapat pada

suatu pola ditentukan primitif dan hubungan struktural antara primitif kemudian

menyusun tata bahasanya. Dari aturan produksi pada tata bahasa tersebut kitadapat menentukan kelompok pola. Gambar 15.4 memperlihatkan sistem

 pengenalan pola dengan pendekatan sintaktik.

Pengenalan pola secara sintaktik lebih dekat ke strategi pengenalan pola yang

dilakukan manusia, namun secara praktek penerapannya relatif sulit dibandingkan

 pengenalan pola secara statistik.

Gambar 15.4. Sistem pengenalan pola dengan pendekatan sintaktik.

Page 227: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 227/229

 

234 Pengolahan Citra Digital

Pendekatan yang digunakan dalam membentuk tata bahasa untuk mengenali pola

adalah mengikuti kontur (tepi batas) objek dengan sejumlah segmen garis

terhubung satu sama lain, lalu mengkodekan setiap garis tersebut (misalnya

dengan kode rantai). Setiap segmen garis merepresentasikan primitif pembentuk

objek.

Contoh 15.1.  [GON77] Pembentukan tata bahasa ( grammar ) untuk mengenali

kromosom (lihat Gambar 15.5) yang diusulkan oleh Ledley (1964, 1965). Tata

 bahasa untuk mengenali kromosom adalah G = ( N ,  ∑  , P , S ), yang dalam hal ini

∑ = {a, b, c, d , e}

 N  = {S , T , A, B, C , D, E , F }

S  = { S , T }

dan himpunan aturan produksi P :

1)  S  → CC   10) A →  Ab 

2)  T  →  AC   11) A → e 

3)  C  →  BC   12) B → bB 

4)  C  → CB  13) B →  Bb 

5)  C  →  FD  14) B → b 

6)  C  →  EF   15) B → d  

7)   E  →  Fc  16) F  → bF  

8)   D → cF   17) F  →  Fb 

9)   A → bA 18) F  → a 

Page 228: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 228/229

 

Bab 15_Pengenalan Pola 235 

a b c d e

a

ab

b

c

b

be

a a

b

b

b b

c

b

b

a

a

b

c

b

abcbabdbabcbabdb

ebabcbab

(a)

(b) 

Gambar 15.5  (a) Primitif grammar kromosom, (b) pengkodean kromosom.

Contoh 15.2.  [GON77] Pembentukan  grammar   dengan  Picture Description

 Language  ( PDL) yang diusulkan oleh Shaw (1970). Lihat Gambar 15.6. Tata bahasa untuk mengenali bentuk “rumah” adalah G = ( N ,  ∑  , P , S ), yang dalam halini

∑={a  , b  , c  , d   } 

 N  = {S , A1, A2, A3, A4, A5}S  = { S }

dan himpunan aturan produksi P :

S  → d  + A1 

 A1 → c + A2 

 A2 → ~d * A2 

 A3 → a + A4  A4 → b* A5 

 A5 → c 

Page 229: Modul Pengolahan Citra Full Bab

7/25/2019 Modul Pengolahan Citra Full Bab

http://slidepdf.com/reader/full/modul-pengolahan-citra-full-bab 229/229

 

h

h   ht 

d c + (~d) d + (c+(~d))

(a) (b) (c)