PCD 0
PCD 0
DilengkapiCD
berisiprogram
programcontoh,
filefilelatihan,dan
Octave
AbdulKadir
AdhiSusanto
Pepatah Cina
ii
Prakata
Aplikasi pengolahan citra telah memberikan sumbangan yang sangat berarti dalam berbagai
aspek.Paraperancangdesaingrafistelahmerasakanbetapanikmatnyamenggunakansoftware
semacam Adobe Photoshop untuk mengerjakan berbagai tugas mereka. Pemakai Microsoft
Word bisa memberikan ilustrasi gambar yang dipoles dengan teknik tertentu, misalnya
memungkinkan gambar seolaholah dibuat dengan goresan kapur. Robot seperti AIBO dapat
membaca mimik si pemiliknya dan melakukan aksi untuk menghibur. Mesin inspeksi mampu
mendeteksiprodukyangcacat.Perangkatpresensidapatmengenalisidikjariparamahasiswa
yang akan mengikuti kuliah. Pintu pun terbuka setelah retina mata si pegawai dipindai oleh
pembaca retina mata. Halhal tersebut menunjukkan beberapa contoh yang melibatkan
pengolahancitra.
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 rumusrumus 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
bentukprogram.
ContohprogramdiwujudkandenganmenggunakanOctave.OctaveadalahFreeSoftwareyang
kompatibel dengan MATLAB. Perangkat lunak ini dapat diunduh secara gratis. Informasi
pengunduhannya dapat dilihat di http://www.gnu.org/software/octave/download.html. Versi
OctaveyangdigunakanuntukmengimplementasikanprogramadalahOctave3.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, contohcontoh program yang diberikan sangat mudah
untukdikonversikankebentukbahasapemrogramanyanglainsepertiJavaataupunC++.Kode
kodepentinguntukmewujudkanprogramtelahdiusahakanagartidakbergantungsepenuhnya
padafungsifungsiyangdisediakanolehOctave.
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
dalammempelajaridanmempraktikkandasarOctavesecaracepat.
iii
Materididalambukuinitelahdisusunsedemikianrupasehinggamempermudahbagipembaca
yang baru saja belajar pengolahan citra. Oleh karena itu, sebaiknya babbab yang terdapat
dalam buku ini dibaca secara berurutan. Namun, apabila pembaca telah memiliki dasar
pengolahan citra, membaca secara langsung ke babbab 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.BerbagaioperasipemrosesancitrayangberbasispikselmulaidibahasdalamBab
3.Dasarhistogramjugadibahasdalambabini.Bab4mulaimembahaspengolahancitrayang
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
untukmengubahcitra.Bab6membahasalihragamFourieruntukmelakukanpengolahancitra
padakawasanfrekuensi.Bab7mulaimembicarakanberbagaioperasimorfologisepertierosi,
dilasi, opening, closing, dan transformasi TopHat. Bab 8 membahas berbagai operasi yang
dilaksanakanpadacitrabiner,misalnyauntukmemperolehtepiobjek,rantaikode,perimeter,
danluasobjek.Beberapafituryangdapatdiperolehpadacitrabinermulaidiperkenalkan.Bab9
membahassecarakhususpemrosesancitradenganmelibatkanunsurwarna.Bab10mengupas
berbagai teknik untuk kepentingan segmentasi, misalnya deteksi tepi dan pengambangan
adaptif. Bab 11 membahas secara rinci berbagai metode untuk melaksanakan restorasi citra.
BerbagaifiturbentukdankonturdibicarakandalamBab12.DeskriptorFourier,momenZernike,
momen invariant, Polar Fourier Transform, dan convex hull dibahas dalam bab ini. Bab 13
secarakhususmembahasfiturtekstur.Bab14membahasaplikasitemukembalicitra.
Untuk mempermudah dalam mempraktikkan pengolahan citra, seluruh materi praktik yang
dibahasdidalambukuinidikemasdidalamsebuahCDyangdisertakanbersamabukuini.CD
jugaberisiperangkatlunakOctave.
Tidak lupa, penulis mengucapkan terima kasih kepada Direktorat Penelitian dan Pengabdian
kepadaMasyarakat,DirektoratJenderalPendidikanTinggi,yangtelahmemberikandanahibah
penulisan buku teks tahun 2012 dan pendampingan untuk penyelesaian naskah ini. Banyak
masukanberhargayangtelahmewarnaikoreksiterhadapnaskahbukuini.
Penulis menyadari sepenuhnya, Tak ada gading yang tak retak. Walaupun usaha yang
maksimum telah dilakukan, tetap saja terdapat kemungkinan kesalahan dan kekurangan di
dalampenyusunanbukuini.Olehkarenaitu,sarandaripembacasangatpenulisharapkanagar
materi buku ini senantiasa dapat disempurnakan. Akhir kata, semoga buku ini dapat
memberikan manfaat yang nyata dan menjadi sumber inspirasi bagi pembaca dalam
mengembangkankaryakaryainovatif.
Yogyakarta,Juni2012
Penulis
iv
DAFTARISI
BAB1PENGANTARPENGOLAHANCITRA..................................................................................................1
1.1PengertianPengolahanCitraDigital.......................................................................................2
1.2AplikasiPengolahanCitra........................................................................................................3
1.3PrinsipDasardalamPengolahanCitra....................................................................................7
1.3.1PeningkatanKecerahandanKontras......................................................................7
1.3.2PenghilanganDerau................................................................................................8
1.3.3PencarianBentukObjek..........................................................................................8
BAB2PENGENALANDASARCITRA.........................................................................................................11
2.1RepresentasiCitraDigital......................................................................................................12
2.2KuantisasiCitra......................................................................................................................15
2.3KualitasCitra.........................................................................................................................18
2.4MembacaCitra......................................................................................................................20
2.5MengetahuiUkuranCitra.....................................................................................................22
2.6MenampilkanCitra................................................................................................................23
2.7MengenalJenisCitra.............................................................................................................26
2.7.1CitraBerwarna......................................................................................................26
2.7.2CitraBerskalaKeabuan.........................................................................................30
2.7.3CitraBiner.............................................................................................................31
2.8MengonversiJenisCitra........................................................................................................32
2.9MenyimpanCitra..................................................................................................................40
BAB3OPERASIPIKSELDANHISTOGRAM...............................................................................................43
3.1OperasiPiksel........................................................................................................................44
3.2MenggunakanHistogramCitra.............................................................................................44
3.3MeningkatkanKecerahan.....................................................................................................50
3.4MeregangkanKontras...........................................................................................................53
3.5KombinasiKecerahandanKontras.......................................................................................55
3.6MembalikCitra......................................................................................................................56
3.7PemetaanNonlinear.............................................................................................................57
3.8PemotonganArasKeabuan...................................................................................................59
3.9EkualisasiHistogram.............................................................................................................63
BAB4OPERASIKETETANGGAANPIKSEL..................................................................................................71
4.1PengertianOperasiKetetanggaanPiksel..............................................................................72
4.2PengertianKetetanggaanPiksel...........................................................................................72
4.3AplikasiKetetanggaanPikselpadaFilter..............................................................................73
4.3.1FilterBatas............................................................................................................74
4.3.2FilterPererataan...................................................................................................77
4.3.3FilterMedian.........................................................................................................80
4.4PengertianKonvolusi............................................................................................................83
4.5ProblempadaKonvolusi.......................................................................................................92
4.6MempercepatKomputasipadaKonvolusi............................................................................98
4.7PengertianFrekuensi..........................................................................................................103
4.8FilterLolosRendah.............................................................................................................105
4.9FilterLolosTinggi................................................................................................................112
vi
4.10FilterHighBoost...............................................................................................................116
4.11EfekEmboss......................................................................................................................118
4.12PengklasifikasianFilterLineardanNonlinear...................................................................121
4.13FilterGaussian..................................................................................................................122
BAB5OPERASIGEOMETRIK..................................................................................................................121
5.1PengantarOperasiGeometrik............................................................................................122
5.2MenggeserCitra..................................................................................................................123
5.3MemutarCitra.....................................................................................................................125
5.4InterpolasiPiksel.................................................................................................................129
5.5MemutarBerdasarkanSebarangKoordinat.......................................................................134
5.6MemutarCitraSecaraUtuh................................................................................................137
5.7MemperbesarCitra.............................................................................................................140
5.8MemperkecilCitra...............................................................................................................145
5.9PerbesarandenganSkalaVertikaldanHorizontalBerbeda...............................................146
5.10PencerminanCitra............................................................................................................146
5.11TransformasiAffine...........................................................................................................151
5.12EfekRipple.........................................................................................................................154
5.13EfekTwirl...........................................................................................................................157
5.14TransformasiSpherical......................................................................................................159
5.15Transformasibilinear........................................................................................................162
BAB6PENGOLAHANCITRADIKAWASANFREKUENSI..........................................................................161
6.1PengolahanCitradiKawasanSpasialdanKawasanFrekuensi...........................................168
6.2AlihragamFourier................................................................................................................169
6.3Fourier1D..........................................................................................................................170
6.4Fourier2D..........................................................................................................................176
6.5FastFourierTransform........................................................................................................178
6.6VisualisasiPemrosesanFFT.................................................................................................179
6.7PenapisanpadaKawasanFrekuensi...................................................................................184
6.8FilterLolosRendah.............................................................................................................190
6.9FilterLolosTinggi................................................................................................................200
6.10PemfilterandenganPendekatanHighFrequencyEmphasis............................................203
BAB7MORFOLOGIUNTUKPENGOLAHANCITRA.................................................................................209
7.1PengertianOperasiMorfologi............................................................................................210
7.2MatematikayangMelatarbelakangi...................................................................................212
7.2.1TeoriHimpunan...............................................................................................................212
7.2.2OperasiNalar...................................................................................................................218
7.3OperasiDilasi......................................................................................................................221
7.4OperasiErosi.......................................................................................................................229
7.5BentukdanUkuranElemenPenstruktur............................................................................236
7.6OperasiOpening.................................................................................................................242
7.7OperasiClosing...................................................................................................................245
7.8TransformasiHitorMiss....................................................................................................248
7.9Skeleton...............................................................................................................................255
7.10Thickening.........................................................................................................................263
7.11ConvexHull........................................................................................................................265
vii
7.12MorfologiArasKeabuan...................................................................................................270
7.12.1DilasiBerarasKeabuan.....................................................................................271
7.12.2ErosiBerarasKeabuan......................................................................................274
7.12.3OpeningdanClosing.........................................................................................279
7.13TransformasiTopHat.......................................................................................................281
7.14TransformasiBottomHat.................................................................................................283
BAB8OPERASIPADACITRABINER........................................................................................................287
8.1PengantarOperasiBiner.....................................................................................................288
8.2RepresentasiBentuk...........................................................................................................288
8.3EkstraksiTepiObjek............................................................................................................288
8.4MengikutiKontur................................................................................................................292
8.5KonturInternal....................................................................................................................300
8.6RantaiKode.........................................................................................................................305
8.7Perimeter............................................................................................................................309
8.8Luas.....................................................................................................................................313
8.9Diameter.............................................................................................................................317
8.10FiturMenggunakanPerimeter,Luas,danDiameter........................................................325
8.11PusatMassadanFiturMenggunakanPusatMassa..........................................................329
8.12FiturDispersi.....................................................................................................................333
8.13PelabelanObjek................................................................................................................335
BAB9PENGOLAHANCITRABERWARNA...............................................................................................349
9.1DasarWarna.......................................................................................................................350
9.2RuangWarna.......................................................................................................................350
9.2.1RuangWarnaRGB...............................................................................................350
9.2.2RuangWarnaCMY/CMYK...................................................................................352
9.2.3RuangWarnaYIQ................................................................................................356
9.2.4RuangWarnaYCbCr............................................................................................358
9.2.5RuangWarnaHSI,HSV,danHSL.........................................................................360
9.2.6RuangWarnaCIELAB..........................................................................................374
9.3MemperolehStatistikaWarna............................................................................................378
9.4MengaturKecerahandanKontras......................................................................................382
9.5MenghitungJumlahWarna.................................................................................................384
9.6AplikasiPencarianCitraBerdasarkanWarnaDominan......................................................386
BAB10SEGMENTASICITRA...................................................................................................................401
10.1PengantarSegmentasiCitra..............................................................................................402
10.2DeteksiGaris.....................................................................................................................405
10.3DeteksiTepi.......................................................................................................................410
10.3.1OperatorRoberts..............................................................................................415
10.3.2OperatorPrewitt...............................................................................................417
10.3.3OperatorSobel..................................................................................................420
10.3.4OperatorFreiChen...........................................................................................422
10.3.5OperatorLaplacian...........................................................................................425
10.3.6OperatorLaplacianofGaussian.......................................................................427
10.3.7OperatorDifferenceofGaussian......................................................................433
10.3.9OperatorCanny.................................................................................................435
viii
10.3.10OperatorZeroCrossing...................................................................................444
10.3.11OperatorGradienKompas..............................................................................450
10.4PengambanganDwiAras.................................................................................................454
10.5PengambanganGlobalVs.Lokal.....................................................................................459
10.6PengambanganArasjamak.............................................................................................460
10.7PengambangandenganMetodeOtsu.............................................................................463
10.8PengambanganAdaptif...................................................................................................467
10.9PengambanganBerdasarkanEntropi..............................................................................478
10.10SegmentasiWarna..........................................................................................................485
BAB11RESTORASICITRA.......................................................................................................................497
11.1PengantarRestorasiCitra.................................................................................................498
11.2DeraudalamCitra.............................................................................................................498
11.3JenisDerau........................................................................................................................500
11.3.1DerauGaussian.................................................................................................500
11.3.2DerauGaramdanMerica(Salt&PepperNoise)..............................................505
11.3.3DerauEksponensial...........................................................................................508
11.3.4DerauGamma...................................................................................................511
11.3.4DerauRayleigh..................................................................................................514
11.3.6DerauUniform..................................................................................................517
11.3.7DerauPeriodis...................................................................................................520
11.4PenghilanganDerau..........................................................................................................523
11.4.1FilterLolosRendah...........................................................................................523
11.4.2FilterRerataAritmetik......................................................................................526
11.4.3FilterRerataHarmonik......................................................................................530
11.4.4FilterRerataKontraharmonik...........................................................................534
11.4.5FilterRerataYp.................................................................................................538
11.4.6FilterMedian.....................................................................................................540
11.4.7FilterMax..........................................................................................................545
11.4.8FilterMin...........................................................................................................550
11.4.9FilterTitikTengah.............................................................................................553
11.5PenghilanganDeraudiKawasanFrekuensi......................................................................555
11.6FilterInversi......................................................................................................................563
11.7FilterWiener.....................................................................................................................567
11.8UkuranKeberhasilanPenghilanganDerau.......................................................................570
BAB12EKSTRAKSIFITURBENTUKDANKONTUR..................................................................................575
12.1PengantarEkstraksiFitur..................................................................................................576
12.2TandaTanganKontur.......................................................................................................577
12.3DeskriptorFourier.............................................................................................................581
12.4SifatBundar.......................................................................................................................590
12.5ConvexHulldanSoliditas..................................................................................................593
12.6Proyeksi.............................................................................................................................608
12.7MomenSpasialdanMomenPusat...................................................................................610
12.8MomenInvariant..............................................................................................................613
12.9MomenJarakkePusat......................................................................................................616
12.10MomenZernike...............................................................................................................620
12.11PolarFourierTransform..................................................................................................634
ix
12.12KotakPembatas..............................................................................................................640
BAB13EKSTRAKSIFITURTEKSTUR........................................................................................................649
13.1PengantarFiturTekstur....................................................................................................650
13.2KategoriTekstur................................................................................................................651
13.3TeksturBerbasisHistogram..............................................................................................653
13.4TeksturLaws.....................................................................................................................660
13.5Lacunarity.........................................................................................................................667
13.6GLCM.................................................................................................................................672
BAB14APLIKASITEMUKEMBALICITRA...............................................................................................685
14.1PengantarAplikasiTemuKembaliCitra............................................................................686
14.2PerhitunganJarakAntaraDuaCitra..................................................................................687
14.2.1JarakEuclidean..................................................................................................687
14.2.2JarakCityBlock.................................................................................................688
14.2.3JarakKotakCatur..............................................................................................689
14.2.4JarakMinkowski................................................................................................689
14.2.5JarakCanberra..................................................................................................690
14.2.6JarakBrayCurtis................................................................................................690
14.2.7DivergensiKullbackLeibler...............................................................................691
14.2.8DivergensiJensenShannon...............................................................................691
14.3ContohPenerapanJarak...................................................................................................692
14.4PengembanganLebihLanjut.............................................................................................694
LAMPIRAN:PANDUANOCTAVE............................................................................................................701
L.1MenginstalasidanMenjalankanOctave.............................................................................701
L.2PerintahOctave...................................................................................................................702
L.3Operator..............................................................................................................................703
L.4VariabeldalamOctave........................................................................................................705
L.5AkhiranTitikKomadanPemisahanPernyataan.................................................................706
L.6MengenalMemoriuntukVariabel......................................................................................707
L.7TipeData.............................................................................................................................708
L.8MengenalFasilitasHelp.......................................................................................................709
L.9BilanganKompleks..............................................................................................................709
L.10FungsiMatematika............................................................................................................710
L.11PrioritasOperatordalamOctave......................................................................................714
L.12MengakhiriOctave............................................................................................................714
L.13StringKarakter...................................................................................................................714
L.14Menampilkandengandisp................................................................................................715
L.15Larik...................................................................................................................................715
L.16Notasi:untukMenyatakanJangkauan.............................................................................717
L.17OperasiTranspos...............................................................................................................718
L.18MembentukMatriks..........................................................................................................718
L.19OperasiSkalarterhadapLarik...........................................................................................719
L.20OperasiMatematikaAntarlarik.........................................................................................720
L.21MengaksesLarik................................................................................................................723
L.22MemperolehUkuranLarik................................................................................................727
L.23MengenalSejumlahFungsiLarik.......................................................................................728
x
L.24BerkasSkrip.......................................................................................................................730
L.25MenambahkanKomentar.................................................................................................731
L.26MenuliskanSebuahPerintahpadaBeberapaBaris..........................................................732
L.27OperatorRelasionaldanLogika........................................................................................733
L.27.1OperatorRelasional........................................................................................................733
L.27.2OperatorLogika..............................................................................................................734
L.28Pernyataanif.....................................................................................................................736
L.29Pernyataanif..elseif...........................................................................................................738
L.30Pernyataanswitch.............................................................................................................738
L.31Pernyataanwhile...............................................................................................................739
L.32Pernyataanfor...................................................................................................................740
L.33Pernyataanbreak..............................................................................................................741
L.34Pernyataancontinue.........................................................................................................742
DAFTARPUSTAKA
GLOSARIUM
INDEKS
743
751
757
xi
Pengantarpengolahancitra
Pengenalandasarcitra
Operasipikseldanhistogram
Operasiketetanggaanpiksel
Operasigeometrik
Pengolahancitradikawasanfrekuensi
Morfologiuntukpengolahancitra
Operasipadacitrabiner
Pengolahancitraberwarna
Segmentasicitra
Restorasicitra
Ekstraksifiturbentukdankontur
Ekstraksifiturtekstur
Aplikasitemukembalicitra
PanduanOctave
Bukuinisangatcocokdipakai
olehmahasiswaTeknologi
Informasi,TeknikInformatika,
TeknikElektro,danjurusanteknik
lainyangsedangatauhendak
mempelajaripengolahancitra
untukberbagaikepentingan.
Semuacontohmudahdipraktikkan
denganmenggunakanOctave
ataupunMATLAB.Algoritmadan
kodeyangdisajikantidakmenutup
kemungkinanuntukdikonversikan
kedalambahasapemrograman
lain.
xii