• Tidak ada hasil yang ditemukan

Pengolahan Citra Digital

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pengolahan Citra Digital"

Copied!
719
0
0

Teks penuh

(1)

Dilengkapi CD beris program-program cont file-file latihan, dan Oct

i

Teori dan Aplikasi

Abd

AdhiS

erisi contoh, Octave

Abdul Kadir

dhiSusanto

(2)

ii

Ceritakan kepada saya, maka saya lupa.

Tunjukkan kepada saya,maka saya ingat.

Biarkan saya mengerjakannya, maka saya paham.

(3)

iii

Aplikasi pengolahan citra telah memberikan sumbangan yang sangat berarti dalam berbagai aspek. Para perancang desain grafis telah merasakan betapa nikmatnya menggunakansoftware semacam Adobe Photoshop untuk mengerjakan berbagai tugas mereka. Pemakai Microsoft Word bisa memberikan ilustrasi gambar yang dipoles dengan teknik tertentu, misalnya memungkinkan gambar seolah-olah dibuat dengan goresan kapur. Robot seperti AIBO dapat membaca mimik si pemiliknya dan melakukan aksi untuk menghibur. Mesin inspeksi mampu mendeteksi produk yang cacat. Perangkat presensi dapat mengenali sidik jari para mahasiswa yang akan mengikuti kuliah. Pintu pun terbuka setelah retina mata si pegawai dipindai oleh pembaca retina mata. Hal-haltersebutmenunjukkan beberapa contoh yang melibatkan pengolahan citra.

Buku ini mengupas sejumlah fondasi dalam pengolahan citra hingga ke aplikasinya. Berbeda dengan buku lain yang umumnya hanya menekankan pada aspek teori, buku ini mengombinasikan teori dan praktik. Buku ini membahas berbagai rumus matematika dan sekaligus mewujudkannya ke dalam bentuk program. Dengan perkataan lain, buku ini menunjukkan bahwa rumus-rumus matematika yang kadang dirasakan sulit untuk dimengerti dapat diterjemahkan ke dalam program dengan cara yang mudah. Oleh karena itu, buku ini sangat berguna bagi mahasiswa Teknologi Informasi, Teknik Informatika, atau Teknik Elektro yang sedang mengambil matakuliah Pengolahan Citra ataupun matakuliah lain yang memerlukan dasar pengolahan citra. Materi yang disampaikan tidak hanya terbatas pada pendekatan teori tetapi juga sekaligus disertai dengan algoritma dan penyelesaian dalam bentuk program.

Contoh program diwujudkan dengan menggunakan Octave. Octave adalah Free Software yang kompatibel dengan MATLAB. Perangkat lunak ini dapat diunduh secara gratis. Informasi pengunduhannya dapat dilihat di http://www.gnu.org/software/octave/download.html. Versi Octave yang digunakan untuk mengimplementasikan program adalah Octave 3.4.3, sedangkan paket Image Processing yang digunakan adalah versi 1.0.15. Paket ini bisa diunduh di http://octave.sourceforge.net/image/index.html.

Meskipun diwujudkan dengan Octave, contoh-contoh program yang diberikan sangat mudah untuk dikonversikanke bentukbahasa pemrograman yang lain seperti Java ataupun C++. Kode-kode penting untuk mewujudkan program telah diusahakan agar tidak bergantung sepenuhnya pada fungsi-fungsi yang disediakan oleh Octave.

Agar pembaca bisa menyerap materi yang disajikan dalam buku ini, dianjurkan untuk menguasai dasar pemrograman Octave terlebih dulu. Pada bagian Lampiran, ringkasan mengenai dasar Octave diberikan. Materi tersebut diharapkan dapat membantu pembaca dalam mempelajari dan mempraktikkan dasar Octave secara cepat.

(4)

iv

pengolahan citra, membaca secara langsung ke bab-bab tertentu yang diperlukan juga dimungkinkan.

Bab 1 memperkenalkan dasar pengolahan citra dan aplikasinya. Bab 2 membahas dasar pengolahan citra melalui software. Berbagai jenis citra diperkenalkan di dalam bab ini. Cara membaca citra dari berkas, mengonversi citra, dan menyimpan citra ke dalam berkas mulai diperkenalkan. Berbagai operasi pemrosesan citra yang berbasis piksel mulai dibahas dalam Bab 3. Dasar histogram juga dibahas dalam bab ini. Bab 4 mulai membahas pengolahan citra yang mempertimbangkan piksel tetangga. Pada bab inilah konvolusi mulai dibahas. Berbagai filter mulai diperkenalkan dalam bab ini. Bab 5 membicarakan operasi geometrik seperti penggeseran citra, pemutaran citra, pembesaran/pengecilan citra, dan berbagai transformasi untuk mengubah citra. Bab 6 membahas alihragam Fourier untuk melakukan pengolahan citra pada kawasan frekuensi. Bab 7 mulai membicarakan berbagai operasi morfologi seperti erosi, dilasi, opening, closing, dan transformasi Top-Hat. Bab 8 membahas berbagai operasi yang dilaksanakan pada citra biner, misalnya untuk memperoleh tepi objek, rantai kode, perimeter, dan luas objek. Beberapa fitur yang dapat diperoleh pada citra biner mulai diperkenalkan. Bab 9 membahas secara khusus pemrosesan citra dengan melibatkan unsur warna. Bab 10 mengupas berbagai teknik untuk kepentingan segmentasi, misalnya deteksi tepi dan peng-ambangan adaptif. Bab 11 membahas secara rinci berbagai metode untuk melaksanakan restorasi citra. Berbagai fitur bentuk dan kontur dibicarakan dalam Bab 12. Deskriptor Fourier, momen Zernike, momen invariant, Polar Fourier Transform, dan convex hull dibahas dalam bab ini. Bab 13 secara khusus membahas fitur tekstur. Bab 14 membahas aplikasi temu kembali citra.

Untuk mempermudah dalam mempraktikkan pengolahan citra, seluruh materipraktik yang dibahas di dalam buku ini dikemas di dalam sebuah CD yang disertakan bersama buku ini.CD juga berisi perangkat lunak Octave.

Tidak lupa, penulis mengucapkan terima kasih kepada Direktorat Penelitian dan Pengabdian kepada Masyarakat, Direktorat Jenderal Pendidikan Tinggi, yang telah memberikan dana hibah penulisan buku teks tahun 2012 dan pendampingan untuk penyelesaian naskah ini. Banyak masukan berharga yang telah mewarnai koreksi terhadap naskah buku ini.

Penulis menyadari sepenuhnya, “Tak ada gading yang tak retak”. Walaupun usaha yang maksimum telah dilakukan, tetap saja terdapat kemungkinan kesalahan dan kekurangan di dalam penyusunan buku ini. Oleh karena itu, saran dari pembaca sangat penulis harapkan agarmateri buku ini senantiasa dapat disempurnakan. Akhir kata, semoga buku ini dapat memberikan manfaat yang nyata dan menjadi sumber inspirasi bagi pembaca dalam mengembangkan karya-karya inovatif.

Yogyakarta, Juni 2012 Penulis

(5)
(6)

vi

1.1 Pengertian Pengolahan Citra Digital ... 2

1.2 Aplikasi Pengolahan Citra ... 3

1.3 Prinsip Dasar dalam Pengolahan Citra ... 7

1.3.1 Peningkatan Kecerahan dan Kontras ... 7

1.3.2 Penghilangan Derau ... 8

1.3.3 Pencarian Bentuk Objek ... 8

BAB 2 PENGENALAN DASAR CITRA ... 11

2.1 Representasi Citra Digital ... 12

2.2 Kuantisasi Citra ... 15

2.3 Kualitas Citra ... 18

2.4 Membaca Citra ... 20

2.5 Mengetahui Ukuran Citra ... 22

2.6 Menampilkan Citra ... 23

2.7 Mengenal Jenis Citra ... 26

2.7.1 Citra Berwarna ... 26

2.7.2 Citra Berskala Keabuan ... 30

2.7.3 Citra Biner... 31

2.8 Mengonversi Jenis Citra ... 32

2.9 Menyimpan Citra ... 40

BAB 3 OPERASI PIKSEL DAN HISTOGRAM ... 43

3.1 Operasi Piksel ... 44

3.2 Menggunakan Histogram Citra ... 44

3.3 Meningkatkan Kecerahan ... 50

3.4 Meregangkan Kontras ... 53

3.5 Kombinasi Kecerahan dan Kontras ... 55

3.6 Membalik Citra ... 56

3.7 Pemetaan Nonlinear ... 57

3.8 Pemotongan Aras Keabuan ... 59

3.9 Ekualisasi Histogram... 63

BAB 4 OPERASI KETETANGGAAN PIKSEL ... 71

4.1 Pengertian Operasi Ketetanggaan Piksel ... 72

4.2 Pengertian Ketetanggaan Piksel ... 72

4.3 Aplikasi Ketetanggaan Piksel pada Filter ... 73

4.3.1 Filter Batas... 74

4.3.2 Filter Pererataan ... 77

4.3.3 Filter Median ... 80

4.4 Pengertian Konvolusi ... 83

4.5 Problem pada Konvolusi ... 92

4.6 Mempercepat Komputasi pada Konvolusi ... 98

4.7 Pengertian Frekuensi ... 103

4.8 Filter Lolos-Rendah ... 105

(7)

vii

4.13 Filter Gaussian ... 122

BAB 5 OPERASI GEOMETRIK ... 121

5.1 Pengantar Operasi Geometrik ... 122

5.2 Menggeser Citra ... 123

5.3 Memutar Citra ... 125

5.4 Interpolasi Piksel ... 129

5.5 Memutar Berdasarkan Sebarang Koordinat ... 134

5.6 Memutar Citra Secara Utuh ... 137

5.7 Memperbesar Citra ... 140

5.8 Memperkecil Citra ... 145

5.9 Perbesaran dengan Skala Vertikal dan Horizontal Berbeda ... 146

5.10 Pencerminan Citra ... 146 5.11 Transformasi Affine ... 151 5.12 Efek Ripple ... 154 5.13 Efek Twirl ... 157 5.14 Transformasi Spherical ... 159 5.15 Transformasi bilinear ... 162

BAB 6PENGOLAHAN CITRA DI KAWASAN FREKUENSI ... 161

6.1 Pengolahan Citra di Kawasan Spasial dan Kawasan Frekuensi ... 168

6.2 Alihragam Fourier ... 169

6.3 Fourier 1-D ... 170

6.4 Fourier 2-D ... 176

6.5 Fast Fourier Transform ... 178

6.6 Visualisasi Pemrosesan FFT ... 179

6.7 Penapisan pada Kawasan Frekuensi ... 184

6.8 Filter Lolos-Rendah ... 190

6.9 Filter Lolos-Tinggi ... 200

6.10 Pemfilteran dengan Pendekatan High Frequency Emphasis ... 203

BAB 7 MORFOLOGI UNTUK PENGOLAHAN CITRA ... 209

7.1 Pengertian Operasi Morfologi ... 210

7.2 Matematika yang Melatarbelakangi ... 212

7.2.1 Teori Himpunan ... 212

7.2.2 Operasi Nalar ... 218

7.3 Operasi Dilasi ... 221

7.4 Operasi Erosi ... 229

7.5 Bentuk dan Ukuran Elemen Penstruktur ... 236

7.6 Operasi Opening ... 242 7.7 Operasi Closing ... 245 7.8 Transformasi Hit-or-Miss ... 248 7.9 Skeleton ... 255 7.10 Thickening ... 263 7.11 Convex Hull ... 265

(8)

viii

7.12.3 Opening dan Closing ... 279

7.13 Transformasi Top-Hat ... 281

7.14 Transformasi Bottom-Hat ... 283

BAB 8OPERASI PADA CITRA BINER ... 287

8.1 Pengantar Operasi Biner ... 288

8.2 Representasi Bentuk ... 288

8.3 Ekstraksi Tepi Objek ... 288

8.4 Mengikuti Kontur ... 292 8.5 Kontur Internal ... 300 8.6 Rantai Kode ... 305 8.7 Perimeter ... 309 8.8 Luas ... 313 8.9 Diameter ... 317

8.10 Fitur Menggunakan Perimeter, Luas, dan Diameter ... 325

8.11 Pusat Massa dan Fitur Menggunakan Pusat Massa ... 329

8.12 Fitur Dispersi ... 333

8.13 Pelabelan Objek ... 335

BAB 9 PENGOLAHAN CITRA BERWARNA ... 349

9.1 Dasar Warna ... 350

9.2 Ruang Warna ... 350

9.2.1 Ruang Warna RGB... 350

9.2.2 Ruang Warna CMY/CMYK ... 352

9.2.3 Ruang Warna YIQ ... 356

9.2.4 Ruang Warna YCbCr ... 358

9.2.5 Ruang Warna HSI, HSV, dan HSL ... 360

9.2.6 Ruang Warna CIELAB ... 374

9.3 Memperoleh Statistika Warna ... 378

9.4 Mengatur Kecerahan dan Kontras ... 382

9.5 Menghitung Jumlah Warna ... 384

9.6 Aplikasi Pencarian Citra Berdasarkan Warna Dominan ... 386

BAB 10 SEGMENTASI CITRA ... 401

10.1 Pengantar Segmentasi Citra ... 402

10.2 Deteksi Garis ... 405 10.3 Deteksi Tepi ... 410 10.3.1 Operator Roberts ... 415 10.3.2 Operator Prewitt ... 417 10.3.3 Operator Sobel ... 420 10.3.4 Operator Frei-Chen ... 422 10.3.5 Operator Laplacian ... 425

10.3.6 Operator Laplacian of Gaussian ... 427

10.3.7 Operator Difference of Gaussian ... 433

(9)

ix

10.5 Peng-ambangan Global Vs. Lokal ... 459

10.6 Peng-ambangan Aras-jamak ... 460

10.7 Peng-ambangan dengan Metode Otsu ... 463

10.8 Peng-ambangan Adaptif ... 467

10.9 Peng-ambangan Berdasarkan Entropi ... 478

10.10 Segmentasi Warna ... 485

BAB 11 RESTORASI CITRA ... 497

11.1 Pengantar Restorasi Citra ... 498

11.2 Derau dalam Citra ... 498

11.3 Jenis Derau ... 500

11.3.1 Derau Gaussian ... 500

11.3.2 Derau Garam dan Merica (Salt & Pepper Noise) ... 505

11.3.3 Derau Eksponensial ... 508 11.3.4 Derau Gamma ... 511 11.3.4 Derau Rayleigh ... 514 11.3.6 Derau Uniform ... 517 11.3.7 Derau Periodis ... 520 11.4 Penghilangan Derau ... 523 11.4.1 Filter Lolos-Rendah ... 523

11.4.2 Filter Rerata Aritmetik ... 526

11.4.3 Filter Rerata Harmonik ... 530

11.4.4 Filter Rerata Kontraharmonik ... 534

11.4.5 Filter Rerata Yp ... 538

11.4.6 Filter Median ... 540

11.4.7 Filter Max ... 545

11.4.8 Filter Min ... 550

11.4.9 Filter Titik-Tengah ... 553

11.5 Penghilangan Derau di Kawasan Frekuensi ... 555

11.6 Filter Inversi ... 563

11.7 Filter Wiener ... 567

11.8 Ukuran Keberhasilan Penghilangan Derau ... 570

BAB 12EKSTRAKSI FITUR BENTUK DAN KONTUR ... 575

12.1 Pengantar Ekstraksi Fitur ... 576

12.2 Tanda-Tangan Kontur ... 577

12.3 Deskriptor Fourier ... 581

12.4 Sifat Bundar ... 590

12.5 Convex Hull dan Soliditas ... 593

12.6 Proyeksi ... 608

12.7 Momen Spasial dan Momen Pusat ... 610

12.8 Momen Invariant ... 613

12.9 Momen Jarak ke Pusat ... 616

12.10 Momen Zernike ... 620

(10)

x

13.1 Pengantar Fitur Tekstur ... 650

13.2 Kategori Tekstur ... 651

13.3 Tekstur Berbasis Histogram ... 653

13.4 Tekstur Laws ... 660

13.5 Lacunarity ... 667

13.6 GLCM ... 672

BAB 14 APLIKASI TEMU KEMBALI CITRA ... 685

14.1 Pengantar Aplikasi Temu Kembali Citra ... 686

14.2 Perhitungan Jarak Antara Dua Citra ... 687

14.2.1 Jarak Euclidean ... 687

14.2.2 Jarak City-Block ... 688

14.2.3 Jarak Kotak Catur ... 689

14.2.4 Jarak Minkowski ... 689

14.2.5 Jarak Canberra ... 690

14.2.6 Jarak Bray Curtis ... 690

14.2.7 Divergensi Kullback Leibler ... 691

14.2.8 Divergensi Jensen Shannon ... 691

14.3 Contoh Penerapan Jarak ... 692

14.4 Pengembangan Lebih Lanjut... 694

LAMPIRAN : PANDUAN OCTAVE ... 701

L.1 Menginstalasi dan Menjalankan Octave ... 701

L.2 Perintah Octave ... 702

L.3 Operator ... 703

L.4 Variabel dalam Octave ... 705

L.5 Akhiran Titik Koma dan Pemisahan Pernyataan ... 706

L.6 Mengenal Memori untuk Variabel ... 707

L.7 Tipe Data ... 708

L.8 Mengenal Fasilitas Help ... 709

L.9 Bilangan Kompleks ... 709

L.10 Fungsi Matematika ... 710

L.11 Prioritas Operator dalam Octave ... 714

L.12 Mengakhiri Octave ... 714

L.13 String Karakter ... 714

L.14 Menampilkan dengan disp ... 715

L.15 Larik ... 715

L.16 Notasi : untuk Menyatakan Jangkauan ... 717

L.17 Operasi Transpos ... 718

L.18 Membentuk Matriks ... 718

L.19 Operasi Skalar terhadap Larik ... 719

L.20 Operasi Matematika Antarlarik ... 720

L.21 Mengakses Larik ... 723

L.22 Memperoleh Ukuran Larik ... 727

(11)

xi

L.27 Operator Relasional dan Logika ... 733

L.27.1 Operator Relasional ... 733 L.27.2 Operator Logika ... 734 L.28 Pernyataan if ... 736 L.29 Pernyataan if..elseif ... 738 L.30 Pernyataan switch ... 738 L.31 Pernyataan while ... 739 L.32 Pernyataan for ... 740 L.33 Pernyataan break ... 741 L.34 Pernyataan continue ... 742 DAFTAR PUSTAKA 743 GLOSARIUM 751 INDEKS 757

(12)

xii Pengantar pengolahan citra

Pengenalan dasar citra Operasi piksel dan histogram Operasi ketetanggaan piksel Operasi geometrik

Pengolahan citra di kawasan frekuensi Morfologi untuk pengolahan citra Operasi pada citra biner

Pengolahan citra berwarna Segmentasi citra

Restorasi citra

Ekstraksi fitur bentuk dan kontur Ekstraksi fitur tekstur

Aplikasi temu kembali citra Panduan Octave

Teori dan Aplikasi

Buku ini sangat cocok dipakai oleh mahasiswa Teknologi Informasi,Teknik Informatika, Teknik Elektro, dan jurusan teknik lainyang sedang atau hendak mempelajari pengolahan citra untuk berbagai kepentingan.

Semua contoh mudah dipraktikkandengan menggunakan Octave ataupun MATLAB.Algoritma dan kode yang disajikan tidak menutup kemungkinan untukdikonversikan ke dalam bahasa pemrograman lain. “Buku yang menggabungkan teori dan aplikasi pengolahan citra yang mudah dipahami. Contoh kode sumber yang diberikan merupakan pelengkap yang sangat berharga.”

Widyawan, S.T., M.Sc., Ph.D. – Ketua Program Studi Teknologi Informasi UGM “Buku yang menjembatani teori matematis dengan penerapan langsung menggunakan pemrograman sehingga lebih mudah dicerna oleh praktisi, mahasiswa, dan bahkan pengajar. Sangat bermanfaat!”

Noor Ahmad Setiawan, S.T., M.T., Ph.D. – Dosen JTETI FT UGM “Buku yang secara rinci membahas proses pengolahan citra. Disajikan dengan contoh-contoh nyata dan disertai dengan program-program aplikasi yang sangat menarik untuk diikuti.”

(13)

BAB 1

Pengantar

Pengolahan Citra

Setelah membaca bab ini, diharapkan pembaca

memperoleh wawasan tentang:

pengertian pengolahan citra digital;

aplikasi pengolahan citra digital;

(14)

1.1 Pengertian Pengolahan Citra Digital

Istilah citra digital sangat populer pada masa kini. Banyak peralatan

elektronik yang menghasilkan citra digital; misalnya

scanner,

kamera digital,

mikroskop digital, dan

fingerprint reader

(pembaca sidik jari). Perangkat lunak

untuk mengolah citra digital juga sangat populer digunakan oleh pengguna untuk

mengolah foto atau untuk berbagai keperluan lain. Sebagai contoh,

Adobe

Photoshop

dan GIMP (

GNU Image Manipulation Program

) menyajikan berbagai

fitur untuk memanipulasi citra digital.

(a) Kamera digital (b) Kamera CCTV

(c) Pemindai (Scanner) (d) Pembaca Sidik Jari

Gambar 1.1Empat contoh alat yang menghasilkan citra digital

Lalu, apa sebenarnya yang dimaksud dengan pengolahan citra

digital?Secara umum, istilah pengolahan citra digital menyatakan “pemrosesan

gambar berdimensi-dua melalui komputer digital” (Jain, 1989).Menurut Efford

(2000), pengolahan citra adalah istilah umum untuk berbagai teknik yang

keberadaannya untuk memanipulasi dan memodifikasi citra dengan berbagai

cara. Foto adalah contoh gambar berdimensi dua yang bisa diolah dengan

(15)

mudah.Setiap foto dalam bentuk citra digital (misalnya berasal dari kamera

digital) dapat diolah melalui perangkat-lunak tertentu.Sebagai contoh, apabila

hasil bidikan kamera terlihat agak gelap, citra dapat diolah agar menjadi lebih

terang.Dimungkinkan

pula

untuk

memisahkan

foto

orang

dari

latarbelakangnya.Gambaran tersebut menunjukkan hal sederhana yang dapat

dilakukan melalui pengolahan citra digital. Tentu saja, banyak hal lain yang lebih

pelik yang dapat dilakukan melalui pengolahan citra digital.

Untuk

penyederhanaan

penyebutan

pada

pembicaraan

selanjutnya, istilah “pengolahan citra digital” akan dinyatakan

dengan “pengolahan citra” saja.

Selain citra digital,terdapat citra analog. Foto yang ditempelkan

pada kartu mahasiswa adalah contoh citra analog. Agar foto

tersebut bisa diproses oleh komputer maka harus didigitalkan

melalui alat pemindai.

1.2 Aplikasi Pengolahan Citra

Pengolahan citra merupakan bagian penting yang mendasari berbagai

aplikasi nyata, seperti pengenalan pola, penginderaan jarak-jauh melalui satelit

atau pesawat udara, dan

machine vision

. Pada pengenalan pola, pengolahan citra

antara lain berperan untuk memisahkan objek dari latarbelakang secara otomatis.

Selanjutnya, objek akan diproses oleh pengklasifikasi pola. Sebagai contoh,

sebuah objek buah bisa dikenali sebagai jeruk, apel, atau pepaya.Pada

penginderaan jarak jauh, tekstur atau warna pada citra dapat dipakai untuk

mengidentifikasi objek-objek yang terdapat di dalam citra. Pada

machine vision

(sistem yang dapat“melihat” dan “memahami” yang dilihatnya), pengolahan citra

berperan

dalam

mengenali

bentuk-bentuk

khusus

yang

dilihat

oleh

mesin.Penggunaan kamera pemantau ruangan merupakan contoh bagian

aplikasipemrosesan citra.Perubahan gerakan yang ditangkap melalui citra dapat

menjadi dasar untuk melakukan pelaporan situasi yang terekam.

(16)

Pengolahan

dikartunkan.Sebagai

memungkinkan pem

Perangkat lunak sep

gambar yang memun

hasil goresan pensil,

Gambar 1.3.

Gambar 1.2Aplika

citra

juga

memungkinkan

waja

i contoh ditunjukkan pada Gambar 1.2.Apli

mbuatan kartun yang didasarkan pada obj

eperti Microsoft Word 2010 menyertakan fa

ungkinkan setiap gambar asli diubah menjadi

il, kapur, pastel, dan lain-lain, sebagaimana d

ikasi pengolahan citra untuk mengartunkan

ajah

seseorang

plikasi seperti itu

bjek-objek nyata.

asilitas pengolah

di gambar seperti

ditunjukkan pada

(17)

Gambar 1.3Penggunaan efek gambar pada Microsoft Word 2010

memanfaatkan pengolahan citra

Aplikasi pengolahan citra memang makinmeluas.Di dunia kedokteran,

pengolahan citra mempunyai peran yang sangat besar.

CT Scan

(

Computed

Tomography Scan

) atau kadang disebut

CAT Scan

(

Computerized Axial

Tomography Scan

) merupakan suatu contoh aplikasi pengolahan citra, yang dapat

dipakai untuk melihat potongan atau penampang bagian tubuh manusia.

Tomografi adalah proses untuk menghasilkan citra berdimensi dua dari potongan

objek berdimensi tiga dari sejumlah hasil pemindaian satu-dimensi. Gambar 1.4

memperlihatkan contoh

CT Scan

dan hasilnya.

(18)

(a)

CT Scan

(Sumber:

http://www.dxhealthcorp.com)

(b) Contoh hasil

CT Scan

(Sumber:

http://www.thirdage.com/)

Gambar 1.4

CT Scan

Pengolahan citra juga dapat dimanfaatkan, misalnya, untuk kepentingan

penentuan jenis tanaman hias melalui ciri-ciri citra daun. Seseorang yang ingin

tahu mengenai suatu tanaman cukup memasukkan citra daun yang ia miliki dan

kemudian memunggahkan ke sistem berbasis web. Selanjutnya, sistem

web

dapat

mencarikan informasi yang sesuai dengan citra tersebut.Gambar 1.5

memperlihatkan contoh hasil pencarian jenis tanaman hias.

Gambar 1.5Masukan citra dapat digunakan sebagai dasar

pencarianjenis tanaman hias

Berbagai aplikasi pengolahan citra juga telah dilakukan di

Indonesia.Beberapa contoh ditunjukkan berikut ini.

(19)

Pencarian

database

orang melalui foto orang (Aribowo, 2009)

Identifikasi kematangan buah tomat (Noor dan Hariadi, 2009)

Identifikasi penyakit

Diabetes mellitus

melalui citra kelopak mata (Rachmad,

2009)

Ekstraksi fitur motif batik (Mulaab, 2010)

Identifikasi telapak tangan (Putra dan Erdiawan, 2010)

1.3Prinsip Dasar dalam Pengolahan Citra

Hal-hal yang diutarakan pada Subbab 1.2 merupakan contoh-contoh

aplikasi kegiatan pengolahan citra.Aplikasi-aplikasi seperti itu sesungguhnya

menggunakan prinsip dasar dalam pengolahan citra seperti peningkatan kecerahan

dan kontras, penghilangan derau pada citra, dan pencarian bentuk objek.Beberapa

contoh diberikan berikut ini.

1.3.1 Peningkatan Kecerahan dan Kontras

Seringkali dijumpai citra yang tidak jelas akibat sinar yang kurang ketika

objek dibidikmelalui kamera digital.Dengan menggunakan pengolahan citra, citra

seperti itu bisa diperbaiki melalui peningkatan kecerahan dan kontras.Gambar 1.3

menunjukkan contoh citra yang kurang cerah dan kurang kontras menjadi citra

yang lebih kontras.

(a) Citra dengan kontras

rendah

(b) Citra dengan kontras yang

telah ditingkatkan

Gambar 1.6Pengolahan citra memungkinkan

(20)

Gambar 1.6(a) kurang jelas, tetapi melalui pengolahan citra yang tepat diperoleh

hasil yang jauh lebih jelas (Gambar 1.6(b)).

1.3.2 Penghilangan Derau

Citra yang akan diproses seringkali dalam keadaan terdistorsi atau

mengandung derau. Untuk kepentingan tertentu, derau tersebut perlu dibersihkan

terlebih dulu.Dalam pengolahan citra, terdapat beberapa metode yang bisa dipakai

untuk keperluan tersebut. Salah satu caradilaksanakan melalui filter

notch

. Efek

filter tersebut dapat dilihat pada Gambar 1.7.

(a) Citra dengan derau berbentuk kotak-kotak (b) Citra dengan derau telah dihilangkan

Gambar 1.7Pengolahan citra memungkinkan

untukmenghilangkanderau pada citra

Terlihat bahwa derau berbentuk kotak pada Gambar 1.7(a) bisa dihilangkan dan

hasilnya seperti yang terlihat pada Gambar 1.7(b).

1.3.3 Pencarian Bentuk Objek

Untuk kepentingan mengenali suatu objek di dalam citra, objek perlu

dipisahkan terlebih dulu dari latarbelakangnya. Salah satu pendekatan yang umum

dipakai untuk keperluan ini adalah penemuan batas objek.Dalam hal ini, batas

objek berupa bagian tepi objek. Setelah tepiobjek diketahui, pencarian ciri

terhadap objek bisa dilaksanakan, misalnya berdasar perbandingan panjang dan

(21)

lebar daun. Objek daun dan batas daun yang didapatkan melalui pengolahan citra

diperlihatkan pada Gambar 1.8.Adapun Gambar 1.9 memperlihatkan tahapan

penentuan panjang dan lebar daun diperoleh melalui komputasi oleh komputer.

Pemisahan objek dalam citra terhadap latarbelakang dikenal dengan

sebutan segmentasi.

(a) Citra asli (b) Citra dengan hanya bagian luar yang digambar

Gambar 1.8Pengolahan citra memungkinkan untuk

mendapatkan bentuk objek

(22)

Gambar 1.9Penentuan panjang dan lebar daun

berdasarkan tepi daun

1.

Jelaskan pengertian pengolahan citra digital!

2.

Berikan contoh aplikasi pengolahan citra yang Anda ketahui.

3.

Apa yang dimaksud dengan Tomografi?

4.

Apaperan filter median?

5.

Apa yang dimaksud batas objek? Apa kegunaannya?

6.

Jelaskan pengertian segmentasi.

(23)

BAB 2

Pengenalan Dasar

Citra

Setelah bab ini berakhir, diharapkan pembaca memahami

hal-hal berikut beserta contoh penerapannya.

Representasi citra digital

Kuantisasi citra

Kualitas citra

Cara membaca citra

Cara mendapatkan ukuran citra

Cara menampilkan citra

Pemahaman jenis citra

Konversi jenis citra

(24)

2.1 Representasi Citra Digital

Citra digital dibentuk oleh kumpulan titik yang dinamakan piksel (

pixel

atau

“picture element”).Setiap piksel digambarkan sebagai satu kotak kecil.Setiap

piksel mempunyai koordinat posisi.Sistem koordinat yang dipakai untuk

menyatakan citra digital ditunjukkan pada Gambar 2.1.

0 N-1

M-1 0

x

y

Posisi sebuah piksel

Gambar 2.1Sistem koordinat citra berukuran MxN

(M baris dan N kolom)

Dengan sistem koordinat yang mengikuti asas pemindaian pada layar TV

standar itu, sebuah piksel mempunyai koordinat berupa

(x, y)

Dalam hal ini,

x menyatakan posisi kolom;

y menyatakan posisi baris;

(25)

piksel pojok kiri-atas mempunyai koordinat (0, 0) dan piksel pada pojok

kanan-bawah mempunyai koordinat (N-1, M-1).

Dalam praktik, penggunaan koordinat pada sistem tertentu

mempunyai sedikit perbedaan. Misalnya, pada

Octave

dan

MATLAB

,

piksel pojok kanan-atas tidak mempunyai koordinat (0, 0)

melainkan (1, 1). Selain itu, setiap piksel pada

Octave

dan

MATLAB

diakses melalui notasi (baris, kolom). Mengingat buku ini

menggunakan contoh dengan

Octave

dan

MATLAB

, maka notasi

yang digunakan disesuaikan dengan

Octave

dan

MATLAB

. Sebagai

contoh, koordinat piksel akan ditulis dengan (y, x) dan koordinat

pojok kanan-atas akan dinyatakan dengan (1, 1).

Dengan menggunakan notasi pada

Octave

dan

MATLAB

, citra dinyatakan

dengan

f(y, x)

Sebagai contoh, citra yang berukuran 12x12 yang terdapat pada Gambar 2.2(a)

memiliki susunan data seperti terlihat pada Gambar 2.2(b).Adapun Gambar 2.3

menunjukkan contoh penotasian f(y,x). Berdasarkan gambar tersebut maka:

f(2,1) bernilai 6

f(4,7) bernilai 237

(26)

(a) Citra berukuran 12 x 12

6 6 6 6 6 6 6 89 237 237 237 237 6 6 89 237 237 237 6 6 89 237 237 237 6 6 89 237 237 237 237 6 6 89 237 237 6 6 89 237 237 237 237 6 6 89 237 237 6 6 89 237 237 237 237 6 6 89 237 237 6 6 89 237 237 237 6 6 89 237 237 237 6 6 6 6 6 6 6 89 237 237 237 237 6 6 6 6 6 6 89 237 237 237 237 237 6 6 89 237 237 6 6 89 237 237 237 237 6 6 89 237 237 237 6 6 89 237 237 237 6 6 89 237 237 237 237 6 6 89 237 237 6 6 89 237 237 237 237 237 6 6 89 237

(b) Data penyusun citra 12 x 12

Gambar 2.2Citra dan nilai penyusun piksel

f(4,7) = 237

6 6 6 6 6 6 6 89 237 237 237 237 6 6 89 237 237 237 6 6 89 237 237 237 6 6 89 237 237 237 237 6 6 89 237 237 6 6 89 237 237 237 237 6 6 89 237 237 6 6 89 237 237 237 237 6 6 89 237 237 6 6 89 237 237 237 6 6 89 237 237 237 6 6 6 6 6 6 6 89 237 237 237 237 6 6 6 6 6 6 89 237 237 237 237 237 6 6 89 237 237 6 6 89 237 237 237 237 6 6 89 237 237 237 6 6 89 237 237 237 6 6 89 237 237 237 237 6 6 89 237 237 6 6 89 237 237 237 237 237 6 6 89 237 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12

f(2,1) = 6

(27)

2.2 Kuantisasi Citra

Citra digital sesungguhnya dibentuk melalui pendekatan yang dinamakan

kuantisasi.Kuantisasi adalah prosedur yang dipakai untuk membuat suatu isyarat

yang bersifat kontinu ke dalam bentuk diskret.Untuk mempermudah pemahaman

konsep ini, lihatlah Gambar 2.4.Gambar 2.4(a) menyatakan isyarat analog

menurut perjalanan waktu t, sedangkan Gambar 2.4(b) menyatakan isyarat diskret.

(a)

Isyarat analog

(b)

Isyarat diskret

t t

Gambar 2.4 Perbandingan isyarat analog dan isyarat diskret

Pada isyarat digital, nilai intensitas citra dibuat diskret atau terkuantisasi

dalam sejumlah nilai bulat. Gambar 2.5(a) menunjukkan contoh citra biner dua

nilai intensitas berupa 0 (hitam) dan 1 (putih).Selanjutnya, gambar tersebut

ditumpangkan pada grid 8x8 seperti yang diperlihatkan pada Gambar

2.5(b).Bagian gambar yang jatuh pada kotak kecil dengan luaslebih kecil

dibanding warna putih latarbelakang, seluruh isi kotak dibuat putih.Sebaliknya,

jika mayoritas hitam, isi kotak seluruhnya dibuat hitam.Hasil pengubahan ke citra

digital tampak pada Gambar 2.5(c).Adapun Gambar 2.5(d) memperlihatkan

bilangan yang mewakili warna hitam (0) dan putih (1).Dengan demikian, citra

digital akan lebih baik (lebih sesuai aslinya) apabila ukuran piksel diperkecil atau

jumlah piksel diperbanyak.

(28)

(a)Citra yang akan dinyatakan dalam isyarat digital

(b)Citra ditumpangkan pada grid

1 1 1 1 1 0 1 1

1 1 1 1 0 1 1 1

1 0 0 0 0 0 1 1

1 0 0 0 0 0 0 1

0 0 0 0 0 0 0 1

1 0 0 0 0 0 0 1

1 0 0 0 0 0 0 1

1 1 1 1 0 1 1 1

Gambar 2.5Digitalisasi citra biner 8x8 piksel

untuk memperlihatkan bentuk piksel ideal

Bagaimana halnya kalau gambar mengandung unsur warna (tidak sekadar

hitam dan putih)? Prinsipnya sama saja, tetapi sebagai pengecualian,warna hitam

diberikan tiga unsur warna dasar, yaitu merah (R =

red

), hijau (G =

green

), dan

biru (B =

blue

). Seperti halnya pada citra monokrom (hitam-putih) standar,

dengan variasi intensitas dari 0 hingga 255, pada citra berwarna terdapat

16.777.216 variasi warna apabila setiap komponen R, G, dan B mengandung 256

aras intensitas. Namun, kepekaan mata manusia untuk membedakan macam

warna sangat terbatas, yakni jauh di bawah enam belas juta lebih tersebut.

Untuk beberapa keperluan tertentu, jumlah gradasi intensitas saling berbeda.

Tabel 2.1 memberikan lima contoh untuk citra beraras keabuan dan Tabel 2.2

menunjukkan empat contoh penggunaan citra berwarna (RGB). Perhatikan bahwa

(29)

jumlah gradasi juga bisa dinyatakan dalam jumlah digit biner atau bit 0 dan 1

sebagai sandi digital per piksel.

Tabel 2.1Jangkauan nilai pada citra keabuan

Komponen

warna

Bit per

Piksel

Jangkauan Penggunaan

1

1

0-1

Citra

biner:

dokumen

faksimili

8

0-255

Umum:

foto

dan

hasil

pemindai

12

0-4095

Kualitas tinggi: foto dan

hasil pemindai

14

0-16383

Kualitas profesional: foto

dan hasil pemindai

16

0-65535

Kualitas

tertinggi:

citra

kedokteran dan astronomi

Tabel 2.2Jangkauan nilai pada citra berwarna

Komponen

Warna

Bit per

Piksel

Jangkauan Penggunaan

3

24

0-1

RGB umum

36

0-4095

RGB kualitas tinggi

42

0-16383

RGB kualitas profesional

4

32

0-255

CMYK (cetakan digital)

Dalam pengolahan citra, kuantisasi aras intensitas menentukan kecermatan

hasilnya. Dalam praktik, jumlah aras intensitas piksel dapatdinyatakan

dengankurang dari 8 bit. Contoh pada Gambar 2.6 menunjukkan citra yang

dikuantisasi dengan menggunakan 8, 5, 4, 3, 2, dan 1 bit.

(30)

(a) 8 bit (b) 5 bit (c) 4 bit

(d) 3 bit (e) 2 bit (f) 1 bit

Gambar 2.6Kuantisasi citra dengan menggunakan berbagai bit

Pada kuantisasi dengan 1 bit, jumlah level sebanyak 2 (2

1

).Oleh karena itu,

warna yang muncul berupa hitam dan putih saja. Perlu diketahui, penurunan

jumlah aras pada tingkat tertentu membuat mata manusia masih bisa menerima

citra dengan baik. Sebagai contoh, citra dengan 4 bit (Gambar 2.6(c)) dan citra

dengan 8 bit (Gambar 2.6(a)) praktisterlihat sama. Hal seperti itulah yang

mendasari gagasan pemampatan data citra, mengingat citra dengan jumlah bit

lebih rendah tentu akan membutuhkan tempat dan transmisi yang lebih hemat.

2.3 Kualitas Citra

Di samping cacah intensitas kecerahan, jumlah piksel yang digunakan untuk

menyusun suatu citra mempengaruhi kualitas citra. Istilah resolusicitrabiasa

dinyatakan jumlah piksel pada arah lebar dan tinggi. Resolusi piksel biasa

dinyatakan dengan notasi m x n, dengan m menyatakan tinggi dan n menyatakan

(31)

lebardalam jumlah piksel. Contoh pada Gambar 2.5 menunjukkan bahwa kalau

gambar apel hanya dinyatakan dalam 8 x 8 piksel,citra yang terbentuk sangat

berbeda dengan aslinya.Seandainya jumlah piksel yang digunakan lebih banyak,

tentu akan lebih mendekati dengan gambar aslinya. Contoh pada Gambar 2.6

memperlihatkan efek resolusi piksel untuk menampilkan gambar yang sama.

(a)Citra berukuran 512 x 512 piksel

(b)Citra berukuran 256 x 256 piksel

(c) Citra berukuran 128 x 128 piksel (d) Citra berukuran 64 x 64 piksel

Gambar 2.7Efek resolusi berdasar jumlah piksel pada citra

ketika gambar disajikan dengan ukuran yang sama

Terlihat bahwa pada resolusi tertentu citra menjadi kabur kalau dinyatakan dengan

jumlah piksel yang makinsedikit.

(32)

Resolusi spasial ditentukan oleh jumlah piksel per satuan panjang. Istilah

seperti dpi (

dot per inch

) menyatakan jumlah piksel per inci. Misalnya, citra 300

dpi menyatakan bahwa citraakan dicetak dengan jumlah piksel sebanyak 300

sepanjang satu inci. Berdasarkan hal itu, maka citra dengan resolusi ruang spasial

sebesar 300 dpi dicetak di kertas dengan ukuran lebih kecil daripada yang

mempunyai resolusi ruang sebesar 150 dpi, meskipun kedua gambar memiliki

resolusi piksel yang sama.

2.4 Membaca Citra

Untuk kepentingan memudahkan dalam memahami hasil proses pengolahan

citra, Anda perlu mengenal perintah yang berguna untuk membaca citra yang

tersimpan dalam bentuk

file.Octave

menyediakan fungsi bernama

imread

. Bentuk

pemanggilannya:

Img

= imread(

nama_file_citra

)

Dalam hal ini,

nama_file_citra

menyatakan nama

file

citra yang hendak dibaca dan

Img

menyatakan larik (

array

) yang menampung data citra yang dibaca.Perlu

diketahui, format-format gambar yang bisa dibaca oleh

imread

ditunjukkan pada

Tabel 2.3.

Tabel 2.3Daftar formatfile gambar yang bisa dibaca oleh imread

Format

Gambar

Ekstensi

Keterangan

TIFF

.tif, .tiff

Tagged

Image

File

Format

merupakan format citra yang

mula-mula dibuat boleh Aldus.

Kemudian, dikembangkan oleh

Microsoft

dan

terakhir

oleh

Adobe

.

JPEG

.jpg, .jpeg

Joint

Photographics

Expert

Group

adalah format citra yang

dirancang

agar

bisa

(33)

Format

Gambar

Ekstensi

Keterangan

1:16.

GIF

.gif

Graphics

Interface

Format

merupakan

format

yang

memungkinkan pemampatan data

hingga 50%. Cocok untuk citra

yang memiliki area yang cukup

besar dengan warna yang sama.

BMP

.bmp

Windows

Bitmap

merupakan

format bitmap pada Windows.

PNG

.png

Portable Network Graphics

biasa

dibaca ‘ping’. Asal mulanya

dikembangkan sebagai pengganti

format

GIF

karena

adanya

penerapan

lisensi

GIF.

Mendukung pemampatan data

tanpa menghilangkan informasi

aslinya.

XWD

.xwd

XWindow Dump

Daftar

file

citra pada Tabel 2.3 berlaku untuk

MATLAB.

Saat buku ini ditulis,

Octave

hanya mampu

membaca

file

citra berformat PNG. Format lain

hanya bisa dibaca dengan melibatkan utilitas lain

seperti ImageMagick. Itulah sebabnya, seluruh

contoh

file

citra dalam buku ini menggunakan

format PNG.

(34)

Contoh berikut digunakan untuk membaca

file

citra bernama mandrill.png

yang terdapat pada folder C:\Image.

>>Img = imread(’C:\Image\mandrill.png’); >>

Dengan cara seperti itu, data citra pada

file

mandrill.png

disimpan di

Img

. Dalam hal ini, Img berupa larikyang

mengandung M baris dan N baris. Mengingat

file

tersebut

berisi data citra berskala keabuan, maka nilai pada setiap

elemen dalam matriks menyatakan intensitas piksel. Nilai

intensitas itu berupa bilangan bulat antara 0 sampai dengan

255.

Berbagai jenis citra (antara lain yang berskala keabuan) akan

segera dibahas.

imread

juga mendukung pembacaan citra 16 bit. Namun,

pembahasan di buku ini menggunakan semua

file

citra

berukuran 8 bit (tipe

uint8

).

2.5 Mengetahui Ukuran Citra

Secara umum, ukuran matriks Imgadalah M x N. Untuk mengetahui nilai M

dan N yang sesungguhnya, dapatdigunakan fungsi pada

Octave

yang bernama

size

. Contoh untuk mengetahui dimensi pada matriks

Img

:

>>Ukuran = size(Img) Ukuran =

512 512

>>

Dengan cara seperti itu, terlihat bahwa Imgberisi512 baris dan 512 kolom piksel.

Untuk mendapatkan jumlah baris dan jumlah kolom secara tersendiri, perlu

diberikan perintah seperti berikut:

(35)

>> jum_baris = Ukuran(1); >> jum_kolom = Ukuran(2); >>

Angka 1 dan 2 pada ukuran menyatakan indeks. Dengan cara seperti itu,

jum_baris

berisi jumlah baris padalarik

Img

dan

jum_kolom

berisi jumlah

kolom pada larik

Img

.

Sebagai alternatif, dapat ditulis perintah seperti berikut:

>> [jum_baris, jum_kolom] = size(Img);

Dengan cara seperti itu,

jum_baris

berisi jumlah baris pada larik

Img

dan

jum_kolom

berisi jumlah kolom pada larik

Img

.

2.6 Menampilkan Citra

Citra dapat ditampilkan dengan mudah melalui fungsi

imshow

. Contoh

berikut digunakan untuk menampilkan citra yang terdapat di

Img

:

>>imshow(Img); >>

Hasilnya berupa jendela yang menampilkan citra pada

Img

, seperti terlihat pada

Gambar 2.8.

(36)

Gambar 2.8Contoh penampilan gambar pada Img

Apabila dikehendaki untuk menampilkan dua citradi dua

jendelamasing-masing, fungsi

figure

perlu dipanggil terlebih dulu sebelum memanggil

imshow

.

Contoh:

>> Sungai = imread('C:\Image\innsbruck.png'); >> Bangunan = imread('C:\Image\altstadt.png'); >>figure(1); imshow(Sungai);

>>figure(2); imshow(Bangunan);

Hasilnya,

gambar

sungai

ditampilkan

di

jendela

1

dan

gambar

bangunandiletakkan di jendela 2.Gambar 2.9 memperlihatkan keadaan pada kedua

jendela, yaitu kebetulan sebagian jendela 2 menutup jendela 1.

(37)

Gambar 2.9Menampilkan dua citradi jendela masing-masing

Octave menyediakan fasilitas yang memungkinkan dua buah citra diletakkan

dalam satu jendela. Berdasarkan larik

Sungai

dan

Bangunan

di depan, dapat

dicobauntuk memberikan perintah berikut:

>> close all;

>>subplot(1,2,1); imshow(Sungai); >>subplot(1,2,2); imshow(Bangunan);

(38)

Gambar 2.10Contoh pemakaian subplot

Perintah

close all

digunakan untuk menutup semua jendela. Adapun pada

subplot

, argumen pertama menyatakan jumlah baris citra dan argumen kedua

menyatakan jumlah kolom citra dalam jendela.Argumen ketiga menyatakan

indeks citra dalam jendela yang bernilai antara 1 sampai dengan jumlah baris x

jumlah kolom.

2.7 Mengenal Jenis Citra

Ada tiga jenis citra yang umum digunakan dalam pemrosesan citra.Ketiga

jenis citra tersebut yaitu citra berwarna, citra berskala keabuan, dan citra biner.

2.7.1 Citra Berwarna

Citra berwarna, atau biasa dinamakan citra RGB, merupakan jenis citra yang

menyajikan warna dalam bentuk komponen R (merah), G (hijau), dan B

(biru).Setiap komponen warna menggunakan 8 bit (nilainya berkisar antara 0

sampai dengan 255). Dengan demikian, kemungkinan warna yang bisa disajikan

(39)

mencapai 255 x 255 x 255 atau 16.581.375 warna. Tabel 2.4 menunjukkan contoh

warna dan nilai R,G, dan B.

Tabel 2.4 Warna dan nilai penyusun warna

Warna

R

G

B

Merah

255

0

0

Hijau

0

255

0

Biru

0

0

255

Hitam

0

0

0

Putih

255

255

255

Kuning

0

255

255

Gambar 2.12 menunjukkan pemetaan warna dalam ruang tiga dimensi.Adapun

Gambar 2.13 menunjukkan keadaan suatu citra dan representasi warnanya.

R

B

G

0

Putih

Cyan

Biru

255

255

255

Hitam

Merah

Kuning

Hijau

Magenta

(40)

Gambar 2.13Citra berwarna dan representasi warnanya.

Setiap piksel dinyatakan dengan nilai R, G, dan B

Perlu diketahui, sebuah warna tidak hanya dinyatakan dengan

komposisi R, G, dan B tunggal. Pada Tabel 2.4 terlihat bahwa

warna merah mempunyai R=255, G=0, dan B=0. Namun,

komposisi R=254, G=1, B=1 juga berwarna merah.

Citra berwarna pun dibaca melalui

imread

. Contoh:

>> Kota = imread('C:\Image\innsbruckcity.png');

Nah, sekarang dapatdicoba untuk mengenakan

size

pada

Kota

:

>>size(Kota) ans =

(41)

>>

Hasilnya menunjukkan bahwa

Kota

berupa larikberdimensi tiga, dengan dimensi

ketiga berisi tiga buah nilai.Hal inilah yang membedakan dengan citra berskala

keabuan.Secara umum, larik hasil pembacaan citra berwarna dapat digambarkan

seperti berikut.

1 M 1 N 1 2 3 Komponen B Komponen G Komponen R 2 2 M-1 N-1

Gambar 2.14Hasil pembacaan citra berwarna

Dimensi ketiga menyatakan komponen R, G, B. Indeks pertama menyatakan

komponen R, indeks kedua menyatakan komponen G, dan indeks ketiga

menyatakan komponen B.

Berikut adalah cara untuk mendapatkan komponen R, G, dan B pada

larik

Kota

di depan:

>> R = Kota(:,:,1); >> G = Kota(:,:,2); >> B = Kota(:,:,3);

(42)

Untuk menampilkan gambar berwarna,

imshow

bisa digunakan seperti kalau

mau menampilkan gambar berskala keabuan. Contoh:

>>figure(1); >>imshow(Kota);

Hasilnya seperti berikut.

Gambar 2.15Citra berwarna

2.7.2 Citra Berskala Keabuan

Sesuai dengan nama yang melekat, citra jenis ini menangani gradasi warna

hitam dan putih, yang tentu saja menghasilkan efek warna abu-abu.Pada jenis

gambar ini, warna dinyatakan dengan intensitas.Dalam hal ini, intensitas berkisar

(43)

antara 0 sampai dengan 255.Nilai 0 menyatakan hitam dan nilai 255 menyatakan

putih.Contoh citra berskala keabuan telah dibahas pada Subbab 2.5.

2.7.3 Citra Biner

Citra biner adalah citra dengan setiap piksel hanya dinyatakan dengan sebuah

nilai dari dua buah kemungkinan (yaitu nilai 0 dan 1).Nilai 0 menyatakan warna

hitam dan nilai 1 menyatakan warna putih.Citra jenis ini banyak dipakai dalam

pemrosesan citra, misalnya untuk kepentingan memperoleh tepi bentuk suatu

objek.Sebagai contoh, perhatikan Gambar 2.16.Bagian kiri menyatakan citra

beraras keabuan, sedangkan bagian kanan adalah hasil konversi ke citra biner.

(a) Citra daun berskala keabuan

(b) Citra biner

Gambar 2.16Citra di kanan menyatakan bentuk citra di kiri

dengan mengabaikan komposisi warna

Contoh berikut menunjukkan cara membaca dan menampilkan citra biner.

>>Img = imread('c:\Image\daun_bin.png'); >>imshow(Img);

>>

(44)

Gambar 2.17Tampilan citra biner

2.8 Mengonversi Jenis Citra

Dalam praktik, seringkali diperlukan utuk mengonversi citra berwarna ke

dalam bentuk citra berskala keabuan mengingat banyak pemrosesan citra yang

bekerja pada skala keabuan.Namun, terkadang citra berskala keabuan pun perlu

dikonversikan ke citra biner, mengingat beberapa operasi dalam pemrosesan citra

berjalan pada citra biner.

Bagaimana cara mengubah citra berwarna ke dalam citra berskala keabuan?

Secara umum citra berwarna dapat dikonversikan ke citra berskala keabuan

melalui rumus:

= + + , + + = 1

(2.1)

dengan R menyatakan nilai komponen merah, G menyatakan nilai komponen

hijau, dan B menyatakan nilai komponen biru. Misalnya, sebuah piksel

mempunyai komponen R, G,B sebagai berikut:

(45)

R = 50

G = 70

B = 61

Jika a, b, dan c pada Persamaan 2.1 dibuat sama, akan diperoleh hasil seperti

berikut:

I = (50 + 70 + 60) / 3 = 60

Salah satu contoh rumus yang biasa dipakai untuk mengubah ke skala

keabuan yaitu:

= 0,2989 + 0,5870 + 0,1141

(2.2)

Contoh berikut menunjukkan cara melakukan konversi dari citra berwarna ke citra

biner.

>>Img = imread('C:\Image\innsbruckcity.png'); >> Abu=uint8(0.2989 * double(Img(:,:,1)) + ... 0.5870*double(Img(:,:,2)) + ... 0.1141 * double(Img(:,:,3))); >>imshow(Abu);

Tanda … menyatakan bahwa perintah pada baris

tersebut masih mempunyai lanjutan pada baris

berikutnya.

Tanda : berarti semua nilai.

double

dipakai untuk melakukan konversi dari

tipe bilangan bulat 8 bit (uint8) ke tipe

double

(yang memungkinkan pemrosesan bilangan real

berpresisi ganda).

uint8

berguna untuk mengonversi dari tipe

double

ke

uint8

(tipe bilangan bulat 8 bit).

(46)

Ga

Bagaimana halny

keabuan ke citra bine

yang dikenal sebaga

menentukan suatu int

matematis, konversi d

= 0,

1,

Contoh berikut m

keabuan ke dalam citr

Program

% KEBINER Digunak

ambar 2.18Hasil konversi citra berwarna

ke citra berskala keabuan

lnya kalau dikehendaki untuk mengonversika

ner?Strategi yang dipakai yaitu dengan menera

gai nilai ambang (

threshold

). Nilai tersebut

ntensitas akan dikonversikan menjadi 0 atau m

i dinyatakan dengan rumus:

t menunjukkan cara melakukan konversi dar

itra biner.

: kebiner.m

kan untuk mengonversi file

kan citra berskala

rapkan suatu nilai

ut dipakai untuk

menjadi 1. Secara

(2.3)

ari citra berskala

(47)

% daun_gray.png ke citra biner

Img = imread('c:\Image\daun_gray.png'); [tinggi, lebar] = size(Img);

ambang = 210; % Nilai ini bisa diubah-ubah biner = zeros(tinggi, lebar);

for baris=1 : tinggi for kolom=1 : lebar

if Img(baris, kolom) >= ambang Biner(baris, kolom) = 0; else Biner(baris, kolom) = 1; end end end imshow(Biner);

Akhir Program

Sebelum mencoba program di atas, akan dibahas dulu kode yang mendasari

program. Tanda % mengawali komentar.Semua tulisan dimulai dari tanda tersebut

hingga akhir baris tidak dianggap sebagai perintah, melainkan sebagai penjelas

bagi pembaca program. Kode

Img= imread('c:\Image\daun_gray.png');

merupakan perintah untuk membaca citra daun_gray.png. Hasilnya disimpan

di

Img

. Lalu,

[tinggi, lebar] = size(Img);

berguna untuk mendapatkan lebar dan tinggi citra.

Pernyataan

ambang = 210;

digunakan untuk menentukan nilai ambang bagi penentuan konversi suatu piksel

menjadi 0 atau 1. Nilai ambang berkisar antara 0 sampai dengan 255.

Pernyataan

for baris=1 : tinggi for kolom=1 : lebar

(48)

ifImg(baris, kolom) >= ambang Biner(baris, kolom) = 0; else Biner(baris, kolom) = 1; end end end

menangani penentuan nilai 0 atau 1 pada citra biner untuk semua piksel dalam

citra (ditangani dengan dua buah

for

). Penentuan dilakukan melalui pernyataan

if

.

Dalam hal ini,

Img(baris, kolom)

menyatakan nilai intensitas piksel pada (baris, kolom).

Setelah

for baris=1 : tinggi

berakhir, maka

Biner

berisi citra biner. Selanjutnya, citra ditampilkan melalui

imshow(Biner);

Untuk menjalankan program di depan, berikan perintah

>>kebiner;

(49)

Gambar 2.19Hasil konversi daun_gray.png ke bentuk biner

Gambar 2.20 memperlihatkan berbagai bentuk hasil konversi citra dengan

menggunakan berbagai nilai ambang.

(50)

Ambang = 210 Ambang = 160 Ambang = 130

Ambang = 110 Ambang = 100 Ambang = 70

Gambar 2.20Hasil konversi ke citra biner

dengan berbagai nilai ambang

Contoh-contoh yang telah dibahas memberikan gambaran tentang cara

mewujudkan sendiri konversi antarjenis citra. Hal tersebut tentu saja penting

untuk dipahami agar memudahkan di dalam mewujudkan sendiri penulisan

program seandainya menggunakan bahasa pemrograman yang lain.Namun,

sebagai penambah wawasan, sesungguhnya

Octave

menyediakan beberapa fungsi

untuk kepentingan konversi citra.Tabel 2.5 memperlihatkan dua fungsi penting

yang terkait dengan konversi citra.

(51)

Tabel 2.5Fungsi yang disediakan

Octave

untuk kepentingan konversi ke aras keabuan

Fungsi

Kegunaan

im2bw(

I, level

)

im2bw(

RGB, level

)

Berguna untuk mengonversikan citra berskala

keabuan (I) ataupun berwarna (RGB) ke

dalam citra biner dengan menggunakan

level

sebagai ambang konversi. Di

MATLAB

, jika

argumen kedua (yaitu

level

) tidak disertakan,

nilai 0,5 secara bawaan digunakan sebagai

ambang konversi. Pada

Octave

, argumen

kedua harus disertakan. Nilai balik fungsi ini

berupa citra biner

rgb2gray(

RGB

)

Berguna untuk mengonversi citra berwarna

(RGB) ke citra berskala keabuan. Nilai balik

fungsi ini berupa citra berskala keabuan

Pada beberapa contoh yang akan dibahas pada bab-bab selanjutnya, dua fungsi

pada Tabel 2.5 akan digunakan dengan tujuan untuk menyederhanakan

permasalahan dalam menuliskan kode.

Agar terbiasa dengan kedua fungsi tersebut, berikut disajikan contoh

penggunaannya. Contoh pertama:

>>Img= imread('C:\Image\daun_gray.png'); >> BW = im2bw(Img, 0.6);

>>imshow(BW);

(52)

Gambar 2.21Hasil pembentukan citra biner melalui im2bw

Adapun contoh pemakaian

rgb2gray

:

>> RGB = imread('C:\Image\innsbruckcity.png'); >> Abu = rgb2gray(RGB);

>>imshow(Abu);

(53)

Gambar 2.22 Hasil pembentukan citra berskala keabuan

melalui rgb2gray

2.9 Menyimpan Citra

Untuk kepentingan menyimpan citra ke dalam

file

, fungsi

imwrite

pada

Octave

dapat digunakan. Pemakaiannya:

imwrite(

A

,

nama_file

)

A

dapat berupa larik dua dimensi (citra berskala keabuan) ataupunlarik berdimensi

tiga (citra RGB).

Contoh:

>>Img = imread('C:\Image\daun_gray.png'); >>X = 255 – Img;

(54)

Perlu diketahui,

X = 255 – Img;

digunakan untuk memperoleh citra negatif dari citra daun_gray.png. Setelah

imwrite

dieksekusi,akan terbentuk negatif_daun.png pada folder kerja. Hasilnya

diperlihatkan pada Gambar 2.23.

Gambar 2.23Hasil penyimpanan citra negatif_daun.png

1.

Jelaskan mengenai koordinat citra.

2.

Apa yang dimaksud dengan kuantisasi citra?

3.

Jelaskan hubungan jumlah bit dalam kuantisasi citra dengan kompresi

data.

4.

Jelaskan makna kualitas citra.

5.

Jelaskan pengertian :

a)

citra berwarna

(55)

b)

citra berskala keabuan

c)

citra biner

6.

Jelaskan mekanisme untuk mengubah citra berwarna ke dalam citra

berskala keabuan.

7.

Bagaimana prinsip untuk mengubah citra berskala keabuan ke citra biner?

8.

Ubahlah innsbruckcity.png ke citra berskala keabuan dan kemudian

simpan dengan nama inns_gray.png.

9.

Buatlah program untuk memproses citra daun_gray.png agar diperoleh

hasil seperti berikut.

10.

Gunakanlah fungsi im2bw untuk mengonversikan citra innsbruckcity.png

ke dalam bentuk citra biner dengan menggunakan level sebesar 0,7, 0,5,

dan 0,3.Bagaimana kesan Anda mengenai hasil-hasil yang diperoleh?

11.

Buatlah program untuk menguantisasi citra daun_gray.png dengan 2 bit.

Tampilkan hasilnya. Apakah hasilnya masih terlihat seperti aslinya? Bila

tidak, dengan menggunakan berapa bit agar gambar tersebut terlihat sesuai

dengan aslinya?

(56)

BAB 3

Operasi Piksel

dan Histogram

Setelah bab ini berakhir, diharapkan pembaca memahami

berbagai bahasan berikut.

Operasi piksel

Menggunakan histogram citra

Meningkatkan kecerahan

Meregangkan kontras

Kombinasi kecerahan dan kontras

Membalik citra

Pemetaan nonlinear

Pemotongan aras keabuan

Ekualisasi histogram

(57)

3.1 Operasi Piksel

Pada pengolahan citra terdapat istilah operasi piksel atau kadang disebut

operasi piksel-ke-piksel.Operasi piksel adalah operasi pengolahan citra yang

memetakan hubungan setiap piksel yang bergantung pada piksel itu sendiri. Jika

f(y, x) menyatakan nilai sebuah piksel pada citra f dan g(y, x) menyatakan piksel

hasil pengolahan dari f(y, x), hubungannya dapat dinyatakan dengan

, =

,

(3.1)

Dalam hal ini, T menyatakan fungsi atau macam operasi yang dikenakan terhadap

piksel f(y, x). Model operasi inilah yang akan dibahas di bab ini,termasuk

pembahasan pengolahan citra berbasis histogram.

3.2 Menggunakan Histogram Citra

Histogram citra merupakan diagram yang menggambarkan frekuensi

setiapnilai intensitas yang muncul di seluruh piksel citra.Nilai yang besar

menyatakan bahwa piksel-piksel yang mempunyai intensitas tersebut sangat

banyak.

Pada citra berskala keabuan, jumlah aras keabuan (biasa disimbolkan dengan

L) sebanyak 256. Nilai aras dimulai dari 0 hingga 255. Adapun histogram untuk

suatu aras dinyatakan dengan

hist(k+1)

dengan k menyatakan nilai aras (0

sampai dengan L-1). Jadi,

hist(k+1)

menyatakan jumlah piksel yang bernilai k.

Penggunaan k+1 pada

hist

diperlukan mengingat dalam

Octave

dan

MATLAB

tidak ada indeks nol atau

hist(0)

. Cara menghitung

hist(k+1)

ditunjukkan

pada algoritma berikut.

ALGORITMA 3.1 – Menghitung histogram citra aras keabuan

Masukan:

f(M, N) : citra berukuran M baris dan N kolom

L : jumlah aras keabuan

1.

Buatlah larikhist sebanyak 2

L

elemen dan isi dengan nol.

2.

FOR i

1 TO M

(58)

FOR j

1 TO

hist(f(M, N

END-FO

END-FOR

Contoh berikut m

Program

functionhisto(Img % HISTO Digunakan [jum_baris, jum_k Img = double(Img) Histog = zeros(25 for baris=1 : jum for kolom=1 : jum Histog(Img(baris, Histog(Img(baris, end end % Tampilkan dalam Horis = (0:255)'; bar(Horis, Histog

Akhir Skrip

Perlu diketahui, (0:25

dengan 255. Dengan

belakang (0:255) me

berukuran 256x1. Per

O N

, N)+1)

hist(f(M, N)+1) + 1

FOR

R

menunjukkan cara membuat histogram citra in

: histo.m

g)

n sebagai contoh pembuatan histogram

kolom] = size(Img); ); 56, 1); m_baris m_kolom , kolom)+1) = ... , kolom)+1) + 1;

m bentuk diagram batang ;

g);

255) untuk membentuk nilai dari 0,1,2, dan se

an kata lain, (0:255) membentuk larik 1 x 2

enyatakan operasi transpos, sehingga hasiln

erintah

bar

digunakan untuk membuat diagram

innsbruck.png.

seterusnya sampai

256. Tanda ‘ di

ilnya berupa larik

am batang.

(59)

Misaln

dilakuk

1. Hasi

0

10

8

5

20

Dengan memang

>>Img = imread >>histo(Img);

diperoleh hasil sepert

yang cukup panjang

berwarna hitam.Ada

menyatakan warna d

warna putih.

Gamba

lnya, B berisi 0, 10, 8, …, 5, 20 (berukuran

ukan operasi transpos (B’), diperoleh matriks

asilnya seperti berikut:

ggil

d('C:\Image\innsbruck.png');

erti terlihat pada Gambar 3.1.Perhatikan keber

g di posisi intensitas nol, yang berasal dari ba

dapun puncak histogram di posisi intensi

dominan abu-abu.Garis panjang di sisi kan

bar 3.1Citrainnsbruck.png dan histogramny

an 1 x 256). Bila

s berukuran 256 x

eradaan satu garis

bagian citra yang

nsitas sekitar 90

anan menyatakan

(60)

Untuk kemudahan dalam mengamati histogram, fungsi bawaan bernama

imhist

dapat dimanfaatkan. Contoh penggunaannya:

>>Img=imread('C:\Image\innsbruck.png'); >>imhist(Img);

Hasilnya ditunjukkan pada Gambar 3.2.

Gambar 3.2Hasil histogram dengan imhist

Untuk mengetahui nilai histogram, diperlukan perintah seperti berikut:

>> [Histog, aras] = imhist(Img);

Dengan cara seperti itu,

Histog

berupa larik yang berisi jumlah piksel setiap

nilai aras dalam argumen

aras

. Namun, diagram tidak dibuat.

Sayangnya fungsi

imhist

pada

Octave

saat buku ini ditulis

masih menyisakan

bug

.

Pada pengolahan citra terkadang dijumpai istilah histogram

ternormalisasi. Artinya, nilai histogram dibagi dengan jumlah

piksel dalam citra, sehingga menjadi angka-angka pecahan

bernilai kurang dari satu dan jumlah totalnya satu.

Gambar

Gambar 1.2Aplika
Gambar 1.3Penggunaan efek gambar pada Microsoft Word 2010  memanfaatkan pengolahan citra
Gambar 2.5Digitalisasi citra biner 8x8 piksel   untuk memperlihatkan bentuk piksel ideal
Tabel 2.3Daftar formatfile gambar yang bisa dibaca oleh imread  Format
+7

Referensi

Dokumen terkait

contoh gambar berdimensi dua yang bisa diolah dengan mudah.Setiap foto dalam... Pengantar Pengolahan

Elemen (i,j) dalam matriks menyatakan rata-rata intensitas cahaya pada area citra yang direpresentasikan oleh pixel. Resolusi (derajat rincian yang dapat dilihat) citra

Tidak.. d) Proses Menjadikan ke citra biner. Kemudian untuk tahap pra-proses yang terakhir adalah memproses hasil deteksi sobel tadi menjadi citra berupa biner. Karena

– Citra digital merupakan fungsi intensitas cahaya f(x,y), dimana harga x dan y merupakan koordinat spasial dan harga fungsi tersebut pada setiap titik (x,y) merupakan

beberapa variasi lampu neon tetapi tidak dapat dihasilkan citra yang dapat digunakan untuk analisis gait, karena menggunakan citra biner yang mengubah semua nilai antara

Pencarian letak plat nomor dilakukan dengan mengubah citra menjadi citra biner (hitam putih) dan menghapus intensitas citra putih yang luasnya lebih besar dari nilai

Citra vektor/gambar vektor merupakan gambar digitalyang berdasarkan persamaan matematis. Gambar Vektor terdiri dari penggabungan koordinat-.. Citra vektor adalah gambar

beberapa variasi lampu neon tetapi tidak dapat dihasilkan citra yang dapat digunakan untuk analisis gait, karena menggunakan citra biner yang mengubah semua nilai antara