Dosen :
Emy Setyaningsih,S.Si., M.Kom.
i
MODUL PRAKTIKUM
PENGOLAHAN CITRA DIGITAL
Disusun Oleh
Emy Setyaningsih, S.Si. M.Kom.
ii
KATA PENGANTAR
iii
DAFTAR ISI
iv
[Pendahuluan] Modul Pengolahan Citra Digital
PENDAHULUAN
A. Deskripsi
Materi dalam modul ini menerangkan bagaimana mengoperasikan aplikasi Matlab
sekaligus membantu menyusun program menggunakan fasilitas M-file dan GUI. Pada bagian
lain, modul ini juga menerangkan tentang bagaimana membuat aplikasi dasar untuk
mengolah operasi citra, perbaikan kualitas citra pada domain spatial dan frekuensi.
Terakhir, modul ini membahas tentang konsep dasar analisis citra dan morfologi yang dapat
digunakan untuk mengembangkan aplikasi pengolahan citra yang lain.
Modul yang disusun ini memiliki keterkaitan dengan modul pada mata kuliah lain
sebagai alat bantu yang memberi kemudahan bagi mahasiswa baik untuk menyelesaikan
tugas sehari-hari maupun mempersiapkan mahasiswa dalam penyusunan tugas akhir.
Setelah mempelajari modul ini, mahasiswa mampu mengimplementasi
pengolahan citra kedalam bentuk perangkat lunak serta mampu melakukan pengolahan dan
analisa citra untuk berbagai bidang aplikasi seperti pemrosesan data, analisis sumber daya
alam, pencitraan diagnostic, pengenalan pola, dsb
B. Prasyarat
Mahasiswa mampu mengoperasikan seperangkat komputer.
Mahasiswa telah mampu menyusun program komputer ( terkait dengan mata kuliah
Pemrograman Komputer).
Mahasiswa disarankan telah mengambil mata kuliah yang berkaitan dengan
pemrograman komputer dasar maupun lanjut
D. Standard Kompetensi
1. Mampu memahami berbagai proses-proses dasar pengolahan citra digital beserta
dengan perbaikannya.
2. Mampu mengimplementasi pengolahan citra kedalam bentuk perangkat lunak.
3. Mampu melakukan pengolahan dan analisa citra untuk berbagai bidang aplikasi
seperti keamanan data citra, pemampatan data citra, dsb
MODUL 1
PENGENALAN APLIKASI MATLAB
I.2. Indikator :
I.2.1. Mengenali lingkungan kerja Matlab
Mampu mengaktifkan lingkungan kerja Matlab
Mampu mengoperasikan masing-masing editor yang terdapat lingkungan kerja
Matlab
Mampu menggunakan variabel dan operator pada aplikasi matlab
I.2.2. Memahami dan mengetahui penggunaan array dan matrik
Mampu melakukan pembentukan array dan matrik
Mampu memanipulasi data array dan matrik untuk mereduksi kerumitan metode
komputasi
I.2.3. Mampu membuat program aplikasi sederhana menggunakan M-file
Mampu memahami penggunaan control statemen
Mampu menulis program sederhana matlab
MATLAB (Matrix Laboratory) adalah bahasa tingkat tinggi dan interaktif yang
memungkinkan untuk melakukan komputasi secara intensif. MATLAB telah berkembang
menjadi sebuah environment pemrograman yang canggih yang berisi fungsi-fungsi builtin
untuk melakukan pengelolahan sinyal, aljabar linear dan kalkulasi matematis lainnya.
MATLAB juga berisi toolbox yang berisi fungsifungsi tambahan untuk aplikasi khusus.
Penggunaan MATLAB meliputi bidang-bidang :
Matematika dan Komputasi
Pembentukan Algorithm Akuisisi Data
Pemodelan, simulasi dan Pembuatan Prototype
Analisis Data, Explorasi, dan Visualisasi Grafik
Keilmuan dan Bidang Rekayasa
A. Memulai MATLAB
Setelah melakukan instalasi MATLAB pada PC, perhatikan icon MATLAB pada tampilan
desktop kemudian doubleclick pada icon tersebut. Selanjutnya akan muncul tampilan
seperti pada gambar 1.1.
Pada tampilan awal MATLAB, terlihat beberapa jendela yang merupakan bagian
penting di dalam MATLAB, antara lain :
1) Jendela perintah (Command Window)
Pada command window, semua perintah matlab dituliskan dan diekskusi. Kita
dapat menuliskan perintah perhitungan sederhana, memanggil fungsi, mencari
informasi tentang sebuah fungsi dengan aturan penulisannya (help), demo
program, dan sebagainya. Setiap penulisan perintah selalu diawali dengan
prompt ‘>>’.
2) Jendela ruang kerja (Workspace)
Jendela ini berisi informasi penggunaan variabel di dalam memori MATLAB.
Maka pada workspace akan menampilkan variable yang sedang digunakan.
untuk skrip terakhir sengaja tidak diberikan tanda (;) titik koma, sehingga anda bisa
langsung melihat hasil akhir dilayar Command Window.
Hasil akhir yaitu
gabungan huruf angka atau tanda garis bawah. Matlab mampu mengenali sampai 31
karakter pertama, selanjutnya diabaikan.
Semua tipe data di matlab memiliki bentuk yang sama, yaitu array. Array minimal
berukuran 0x0 dan dapat bertambah menjadi array n x m dimensi dengan sebarang
ukuran. Matlab mempunyai beberapa tipe data dasar (atau class), yaitu: logical, char,
numeric, cell, structure, java classes, function handles.
Pada matlab, operator diklasifikasikan menjadi tiga bagian, yaitu:
1) Operator Aritmatika
Operator aritmatika digunakan untuk mengerjakan komputasi numerik.
2) Operator Relasional
Operator relasional digunakan untuk membandingkan operand-operand secara
kuantitatif.
3) Operator Logika
OPERATOR KETERANGAN
& Akan menghasilkan nilai 1 jika kedua elemen yang
bersesuaian memiliki nilai true dan 0 untuk lainnya
| Akan bernilai 1 jika salah satu elemennya true
~ Komplen dari elemen yang diinputkan
Xor Akan bernilai 1 jika salah satu dari kedua elemen
memiliki nilai berbeda dan bernilai nol jika sama
mengharuskan pemakai untuk menuliskan data satu per satu. Kumpulan data dengan
deret yang teratur dapat diekspresikan dalam bentuk array, sehingga memungkinkan
pemakai untuk tidak menuliskannya satu per satu.
Matriks adalah array yang dibangun dari kumpulan persamaan linear. Operasi matriks
tidak seperti pada array biasa, melainkan sistem operasi aljabar matriks. Matriks
didefinisikan dengan kurung siku ( [ ] ) dan biasanya dituliskan baris-per-baris. Tanda
koma (,) digunakan untuk memisahkan kolom, dan titik-koma (;) untuk memisahkan
baris.
Berikutnya kita coba contoh berikut untuk mendefinisikan matriks 3×3.
Array dan matriks ditampilkan dalam bentuk yang sama tetapi representasi internalnya
berbeda. Berikut ini adalah perintah untuk membentuk array.
x=m: n, membuat baris dengan elemen awal m, kenaikan 1 dan elemen akhir n atau
sebelum n.
Misal:
Perintah x=1: 10 akan membuat barisan dengan elemen dimulai dari 1,
bertambah 1 dan berakhir pada 10.
x=m: k: n, membuat baris dengan elemen awal m, kenaikan k dan elemen akhir n
atau sebelum n.
Misal:
Perintah x=1:2:20 akan membuat barisan dengan elemen dimulai dari 1,
bertambah 2 dan berakhir pada 19.
x=linspace (m, n, k) , membuat baris dengan elemen awal m dan elemen akhir,
dengan jumlah elemen sebanyak k.
Misal:
Perintah x=linspace (1, 30,10) akan menampilkan baris dengan elemen awal
bernilai 1 dan elemen akhir bernilai 30 dengan jumlah elemen sebanyak 10.
x=logspace (m, n, k) , membuat baris dengan elemen awal m dan elemen akhir n
dengan jumlah elemen sebanyak k dalam skala logaritma.
Misal:
Perintah x=logspace (1, 30,10) akan menampilkan baris dengan elemen awal
bemilai 10 dan elemen akhir bernilai 10 dengan jumlah elemen 10.
Array dapat dinyatakan dalam bentuk matriks dengan memasukkan semua perintah
pada ruas kanan ke dalam kurung komutasi. Misal: array x=m: n dapat dinyatakan dalam
bentuk matriks dengan perintah x= [m: n] .
Di dalam Script M-File, kita dapat menyimpan semua perintah dan menjalankan dengan
menekan tombol / atau mengetikan nama M-File yang kita buat pada command
window.
Variabel semester diisi dengan nilai 8 dan statemen sesudah tanda % di anggap sebuah
komentar Statemen ini berguna untuk mendokumentasikan apa yang sudah dikerjakan.
Tanda titik koma ( ; ) dalam Matlab berguna untuk mencegah menampilkan hasil,
contoh :
semester=8;
B. Fungsi Output
1) Disp
Fungsi disp memungkinkan untuk menampilkan string tanpa menampilkan nama
variabelnya.
Contoh:
A=’Belajar Pengolahan Citra Digital’;
disp(A);
Belajar Pengolahan Citra Digital
disp('Ini contoh citra warna')
Ini contoh citra warna
dapat dilihat bahwa A = statemen telah dihilangkan. Fungsi ini berguna untuk
menampilkan teks bantuan dalam suatu file script
Syarat digunakannya disp , isi didalamnya harus merupakan strings, jadi jika ingin
menampilkan sebuah angka, terlebih dahulu dirubah kedalam bentuk strings dengan
menggunakan function num2str( ).
Contoh :
nim=161071003;
disp(['Nim saya adalah ',num2str(nim)])
Nim saya adalah 161071003
Argumen perintah disp adalah tunggal, sehingga apabila akan memuncukan beberapa
tampilan maka harus dituliskan perintah disp berulang-ulang
2) fprintf
Command ini berfungsi untuk menampilkan output di layar atau menyimpan output
di suatu external file ( sama halnya dengan command fprint di C/C++). Fungsi ini
mempunyai argumen sbb:
fprintf( ' nama file ' ,' format string ' , list)
dimana list adalah nama variabel yang dipisahkan dengan koma. Untuk format string
:
%P.Qe untuk eksponensial
%P.Qf untuk fixed point
/n untuk membuat baris baru
dan lebih detailnya dapat dilihat di help untuk fprintf.
C. Fungsi Input
Fungsi Input digunakan untuk membaca data dari keyboard.
Bentuk Umumnya :
Nama_variabel = input (‘teks’)
Apabila di run akan muncul di layar command window teks dan menunggu inputan dari
user yg diakhiri dengan penekanan tombol enter, apabila langsung dienter maka teks
akan berisi matriks kosong
Contoh Program menggunakan fungsi Input dan Output:
a) Buka editor m-file
b) Ketikkan statement dibawah ini
% Gambar2.m script file untuk masalah konsentrasi asam
citra=input(‘D :\Gambar\lenna.bmp’’);
[b,k,s]=size(citra);
% sesuaikan file tempat menyimpan citra
disp(['ukuran citra: ',num2str(b*k)]);
imshow(citra);
title('Contoh Citra');
c) Simpan dengan nama Gambar2.m
d) Kemudian jalankan program tersebut
D. Control Flow
Untuk mengatur jalannya eksekusi dari statement di dalam script/m-file maka
diperlukan adanya kontrol program. Matlab bisa berlaku seperti bahasa pemrograman C
ataupun pascal yang mempunyai struktur kontrol program, biasanya pemrograman
dengan matlab memerlukan lebih dari satu baris dan memungkinkan untuk
didokumentasikan dalam m-file, kontrol program ini digunakan untuk memperbaiki
tampilan atau membuat tampilan sesuai yang kita inginkan
Matlab menyediakan empat struktur kontrol program, yaitu loop for, loop while,
kontruksi switch-case dan kontruksi if-else-end. Kontruksi-kontruksi tersebut
seringkali melibatkan banyak perintah Matlab, yang oleh karenanya konstruksi ini lebih
banyak terdapat dalam M-file.
1) Loop For
Loop for meungkinkan sekelompok perintah diulang sebanyak suatu jumlah yang
tetap. Bentuk umum dari loop for adalah :
Default dari nilai increment (penambahan nilai setiap perulangan) jika tidak
ditentukan oleh user adalah 1.
Penjelasan :
untuk tiap iterasi, x dan y diisi dengan kolom array berikutnya, yaitu dalam
iterasi ke-k dalam loop, x = array(:,k) dan y = array(:,k).
2) Loop While
loop for mengerjakan sekelompok perintah yang diulang sebanyak suatu sejumlah,
tetapi loop while mengerjakan sekelompok perintah yang diulang secara tidak
terbatas
Bentuk umum loop while adalah :
Perintah yang terdapat diantara statemen while dan end dieksekusi berulang kali
selama semua elemen dalam ekspresi adalah benar. Ada beberapa daftar ekspresi
boolean yang ada dalam MATLAB seperti tabel berikut ini :
4) Switch Case
Bila sederetan perintah harus dikerjakan dengan didasarkan pada penggunaan
berulang-ulang suatu tes dengan argumen yang sama, kontruksi switch – else akan
lebih tepat digunakan. Konstruksi ini mempunyai bentuk:
switch ekspresi
case test ekspresi 1
deret perintah 1 (statement,…,statement)
case {test ekspresi 2, test ekspresi 3, test ekspresi 4}
deret perintah 2 (statement,…,statement)
….
otherwise
deret perintah 3 (statement,…,statement)
end
Expresi harus berupa skalar atau karakter string. Jika ekspresinya adalah skalar,
ekspresi= =test_ekspresi di test oleh statemen case. Jika ekspresi berupa karakter string
maka strcm(ekspresi, test_ekspresi) ditest.
Pada contoh diatas ekspresi dibandingkan dengan dengan test ekspresi 1 pada statemen
case pertama, jika keduanya sama maka deret perintah akan dikerjakan, dan deret
statemen berikutnya yang berada sebelum statemen end diabaikan. Jika pembandingan
pertama tidak memberikan nilai benar maka akan dijalankan deret perintah pada
statemen case yang kedua. Jika semua pembanding dengan case gagal akan dikerjakan
deret perintah 3 yang mengikuti statemen otherwise. Contoh sederhana dari kontruksi
switch-case adalah sebagai berikut :
Contoh Menentukan sebuah bilangan apakah termasuk dalam bilangan
ganjil atau genap
Penyelesaian :
a) Buka editor m-file
b) Ketikkan statement dibawah ini
%File Name:Gambar6.m
bil=input('Masukkan bilangan : ');
x=mod(bil,2);
switch x
case 1
disp(['Bilangan',num2str(bil),' adalah bilangan ganjil'])
case 0
disp(['Bilangan ' ,num2str(bil),' adalah bilangan genap'])
otherwise
disp('Bilangan ini tidak mungkin ada')
end
c) Simpan dengan nama Gambar6.m
Kemudian jalankan program tersebut lewat command window dengan
mengetikkan Gambar6. Bila tidak ada kesalahan dalam penulisan statemen
program, maka akan tampil pada editor command window sebagai berikut :
Fungsi M-file mirip dengan script file dimana keduanya merupakan file teks dengan
ektensi .m . sebagaimana script M-file, fungsi m-file tidak dimasukkan dalam jendela
command window tetapi file tersendiri yang dibuat dengan editor teks.
Aturan dan sifat sifat
Suatu fungsi M-file harus mengikuti beberapa aturan. Fungsi M-file juga mempunyai
sejumlah aturan penting. Aturan aturan tersebut meliputi ;
Nama fungsi dan nama file harus identik. Contoh : fungsi flipud disimpan dalam
file yang bernama flipud.m
Pertama kali matlab mengeksekusi suatu fungsi M file matlab membuka file
fungsi tersebut dan mengkompilasi perintah perintah didalamnya menjadi suatu
representasi internal dalam memori yang mempercepat eksekusi untuk semua
Anda dapat menulis fungsi sendiri dan kemudian ditambahkan pada environment
MATLAB. Fungsi-fungsi ini merupakan jenis lain dari m-file, dan dibuat sebagai
sebuah file ASCII menggunakan editor teks. Kata pertama pada m-file tersebut
haruslah keyword function untuk memberitahukan MATLAB bahwa file tersebut
diperlakukan sebagai sebuah fungsi dengan argumen. Pada baris yang sama juga
berisi calling template yang menyatakan argumen input dan output dari fungsi. Nama
file untuk m-file tersebut haruslah berekstensi .m dan nama fungsi tersebut akan
menjadi nama dari perintah baru pada MATLAB.
function[output1,output2,…]= NamaFunction(input1,input2,..)
disini output1, output2,…adalah barisan nama output yang akan dimunculkan dilayar
command window MATLAB jika NamaFunction dipanggil dengan input argumen
adalah input1,input2,… Input tersebut dipanggil dan dikirim by value yaitu perubahan
nilai input di dalam function tidak akan ditampilkan diluar (perubahannya hanya
lokal. Karenanya jika ingin melakukan assignment fungsi by name, nama output yang
ingin dikirim keluar fungsi diletakkan di sebelah kiri (yang dinamakan output1,
output2,…) Input dan output di atas adalah optional argumen, artinya dimungkinkan
membuat suatu function tanpa input argumen. Jika diberikan tanpa output argumen
maka yang ditampilkan adalah eksekusi dari statement/ekspresi terakhir.
Contoh Ekstrak L buah elemen terakhir dari sebuah vektor.
Penyelesaian :
a) Buka editor m-file
b) Ketikkan statement dibawah ini
c). Bila file ini disimpan dengan nama foo.m, operasi ini dapat dipanggil dari
MATLAB command line dengan cara mengetikkan sbb :
1. Buatlah sebuah program menggunakan m-file atau fungsi m-file untuk menampilkan
4 citra yang ditampilkan dalam satu layar output
2. Buatlah sebuah program untuk menampilkan citra asli dan menampilkan sebagian
data citra sesuai dengan input yang diinginkan oleh user
-oo0oo-
MODUL 2
PENGENALAN PEMROGRAMAN GUI DENGAN MATLAB
(Pendahuluan, Komponen GUI dan Cara Memprogram Komponen GUI)
2.2. Indikator :
2.2.1. Mengenali operasi dasar GUI pada Matlab
Mampu mengaktifkan lembar kerja GUI
Mampu melakukan operasi : create new GUI, open existing GUI.
2.2.2. Memahami dan mengetahui penggunaan komponen GUIDE
Mampu mengidentifikasikan macam-macam komponen GUIDE beserta fungsinya.
Mampu mengatur disain masing-masing komponen GUIDE
2.2.3. Mampu membuat program aplikasi sederhana menggunakan komponen GUIDE
Mampu mengatur layout komponen GUI
Mampu memprogram komponen GUIDE
A. Memulai GUIDE
Untuk memulai penggunaan GUI matlab, kita dapat melakukan dengan dua cara,
yaitu:
Melalui command matlab kita ketikkan >>guide atau
Klik tombol Start Matlab dan pilihlah MATLAB, lalu pilih GUIDE (GUI Builder).
Selanjutnya, kita dibawa ke sebuah kotak dialog pilihan GUIDE Quick Start.
Ada dua buah pilihan, yaitu Create New GUI dan Open Existing GUI.
1) Create New GUI
Kita dapat memilih Create New GUI jika memang belum pemah membuat aplikasi
GUI matlab atau memang ingin membuat sebuah figure baru. Menu Create New
GUI akan memberikan kita beberapa pilihan GUIDE template. Keuntungannya
menggunakan GUIDE template adalah dapat membuat aplikasi Gui menjadi lebih
cepat dan mudah karena sudah tersedia beberapa bentuk GUI. Pada GUIDE
template bisa memilih:
a. BlankGUI (Default)
Align Objects Menu Editor M-File Editor Property Inspector
Komponen
Palette
Figure Rezise
Tab
Gambar 2.3 Menu utama GUIDE
Blank GUI merupakan sebuah GUI dengan figure kosong. Kita dapat mengatur
sendiri komponen yang kita butuhkan sesuai dengan aplikasi yang kita buat.
Blank GUI menrpakan kondisi default dari GUIDE dan dipilih jika kita memang
Dengan GUI with axes and manu, kita lebih mudah membuat plot berbagai
bentuk data yang divisualisasikan dalam sebuah axes.
E. Fitur-fitur GUIDE
Dalam membuat aplikasi GUI, GIJIDE akan membuat kerangka kerja m-file secara
otomatis langsung dari layout kita. K ita dapat menggunakannya untuk membuat kode
aplikasi M-fiIe. Metode ini memberikan beberapa keuntungan, antara lain:
o M-file berisi kode yang mengimplementasikan sejumlah fitur.
o M-file mengadopsi suatu pendekatan efektif yang menangani object handle
dan menjalankan rutin callback.
o M-file menyediakan suatu manajemen data global.
Prototipe sebuah subfungsi secara otomatis akan disisipkan pada rutin callback.
Agar komponen GUI yang berupa user interface control dapat bekerja sesuai dengan
keinginan, kita harus memprogram masing-masing komponen. Kita dapat memprogram
komponen GUI dengan mengatur secara fisik komponen dari properti inspector serta
menambahkan beberapa kode matlab pada m-file.
Langkahnya :
1) Klik tombol Start Matlab dan memilih MATLAB, lalu mengklik GUIDE (GUI Builder),
maka, kita akan mendapatkan sebuah kotak dialog GUIDE Quick Start yang memiliki
beberapa pilihan.
2) Pilihlah Blank GUI (default) agar menampilkan jendela layout figure GUI
3) Buatlah sebuah pushbutton
Untuk menampilkan tulisan yang berada pada pushbutton, kita dapat mengatur
melalui properly inspector dengan mengklik obyek pushbutton pada figure, lalu
mengklik toolbar property inspector atau menggunakan klik kanan dan pilih
property inspector. Selanjutnya atur property pada tab :
a. String diisi dengan label yang kita maksudkan misalnya “Proses”
b. FontNama diisi font yang diinginkan seperti MS Sans Serif, arial black, calibri,
atau lainnya
c. FontSize diisi ukuran font yg diinginkan contoh 14.
d. FontWeight diisi jenis ketebalan huruf yang didinginkan bisa dipilih
contohnya bold.
e. ForegroundColor diisi warna untuk tulisan “proses”
f. HorizontalAlignment diisi sesuai keinginan apakah akan center, rata kiri atau
kanan
6) Simpan figure diatas dengan nama “latihan1”, kemudian akan tampil editor m-file,
selanjutnya tambahkan perintah pada function
pushbutton1_Callback(hObject,eventdata,handles) :
set(handles.text1,’String’,’ Kita akan belajar pemrograman Matlab’);
7) Apabila di running menggunakan tombol running maka akan muncul seperti gambar
dibawah ini
Tombol
Running
Gambar 2.15. Hasil program menggunakan komponen pushbutton dan static text
B. Toggle Button
Toggle button menghasilkan efek yang hampir sama dengan pushbutton. Perbedaannya
adalah saat pushbutton ditekan, maka tombol akan kembali pada posisi semula jika
tombol mouse dilepas. Sebaliknya pada toggle button tombol tidak akan kembali ke
posisi semula, kecuali kita menekannya kembali.
Langkahnya :
1) Klik tombol Start Matlab dan memilih MATLAB, lalu mengklik GUIDE (GUI Builder),
kemudian Pilihlah Blank GUI (default) agar menampilkan jendela layout figure GUI
2) Buatlah disain seperti Gambar 2.17, yang terdiri dari static text 5 buah, edittext 2
buah, pushbutton 1 buah dan radiobutton 3 buah
Static Text1
Edit text1
Static Text2
Static Text3 Edit text2
Radiobutton 1
Radiobutton 2
Radiobutton 3
Pushbutton1
3) Aturlah static text, edit text, dan pushbutton dan radiobutton menggunakan property
inspector seperti pada bagian A
4) Simpan figure diatas dengan nama “CRADIOBUTTON”, kemudian akan tampil editor
m-file, selanjutnya tambahkan perintah sebagai berikut :
a. Untuk Komponen edit text1 tambahkan perintah pada
function edit1_Callback(hObject, eventdata, handles)
A=str2num(get(handles.edit1,'String'));
handles.A=A;
guidata(hObject,handles);
b. Untuk Komponen edit text2 tambahkan perintah pada
function edit2_Callback(hObject, eventdata, handles)
B=str2num(get(handles.edit2,'String'));
handles.B=B;
guidata(hObject,handles);
c. Untuk Komponen radiobutton1 tambahkan perintah pada
function radiobutton1_Callback(hObject, eventdata, handles)
set(handles.radiobutton2,'Value',0);
set(handles.radiobutton3,'Value',0);
rd = 1;
handles.rd=rd;
guidata(hObject,handles);
d. Untuk Komponen radiobutton2 tambahkan perintah pada
function radiobutton2_Callback(hObject, eventdata, handles)
set(handles.radiobutton1,'Value',0);
set(handles.radiobutton3,'Value',0);
rd = 2;
handles.rd=rd;
guidata(hObject,handles);
e. Untuk Komponen radiobutton3 tambahkan perintah pada
function radiobutton3_Callback(hObject, eventdata, handles)
set(handles.radiobutton2,'Value',0);
set(handles.radiobutton1,'Value',0);
rd = 3;
handles.rd=rd;
guidata(hObject,handles);
5) Apabila di running menggunakan tombol running maka akan muncul seperti gambar
dibawah ini
D. Checkboxes
Kontrol checkbox menghasilkan suatu tindakan ketika diklik yaitu berupa tanda atau
status. Checkbox berguna jika kita ingin menyediakan sejumlah pilihan mandiri yang
tidak tergantung pada pilihan lainnya. Untuk menandai apakah sebuah checkbox telah
ditandai atau tidak, kita dapat melihat pada value property,yaitu masing-masing bemilai
1 dan 0. Contoh checkbox adalah ketika kita diminta memilih buah yang disukai. Karena
buah yang disukai umumnya bisa lebih dari satu, kita bisa mengklik lebih dari satu obyek
checkbox, tampilan yang akan muncul adalah apabila buah yang dicheck maka akan
muncul tulisan dipilih jika tidak akan muncul tulisan tidak dipilih.
Langkahnya :
1) Klik tombol Start Matlab dan memilih MATLAB, lalu mengklik GUIDE (GUI Builder),
kemudian Pilihlah Blank GUI (default) agar menampilkan jendela layout figure GUI
2) Buatlah disain seperti Gambar 2.19, yang terdiri dari static text 3 buah dan check box
3 buah
5) Apabila di running menggunakan tombol running maka akan muncul seperti gambar
dibawah ini
E. Slider
Slider merupakan komponen GUI yang dapat bergeser secara horizontal maupun
vertikal. Berbeda dengan bahasa pemrograman lain seperti VB yang memiliki scroll
(penggulung) horizontal dan vertikal secara terpisah, matlab hanya memrliki sebuah
slider. Namun, dengan sebuah slider kita dapat mengatumya menjadi slider horizontal
atau slider vertikal dengan mendrag mouse sesuai dengan keinginan kita. Slider
digunakan jika kita menginginkan inputan yang tidak dilakukan dari keyboard. Dengan
menggunakan slider, kita lebih fleksibel dalam melakukan pemasukan data karena kita
dapat mengatur sendri nilai-nilai maksimum, minimum, atau sliderstep, dan sebagainya
Ada 4 property yang megontrol nilai range dan step pada slider, yaitu :
Value : berisikan nilai slider saat ini
Max : mendefinisikan nilai maksimum slider
Min : mendefinisikan nilai min slider
Slider step : menentukan ukuran step slider.
Langkahnya :
1) Klik tombol Start Matlab dan memilih MATLAB, lalu mengklik GUIDE (GUI Builder),
kemudian Pilihlah Blank GUI (default) agar menampilkan jendela layout figure GUI
2) Buatlah disain seperti Gambar 2.21, yang terdiri dari static text 1 buah, edit text 1
buah dan slider 1 buah
3) Aturlah static text dan edit text menggunakan property inspector seperti pada bagian
A
4) Simpan figure diatas dengan nama “contohslider”, kemudian akan tampil editor m-
file, selanjutnya tambahkan perintah sebagai berikut :
Untuk Komponen slider1 tambahkan perintah pada
function slider1_Callback(hObject, eventdata, handles)
nilai_slider = round(get(handles.slider1,'Value'));
handles.nilai_slider=nilai_slider;
guidata(hObject,handles);
set(handles.edit1,'String',handles.nilai_slider);
Jika slider dijalankan maka nilai slider selalu diupdate ke kotak edit text. Kita juga dapat
menginputkan nilai slider dari kotak edit text.
F. Listboxes
Kontrol listbox menampilkan semua daftar item yang terdapat pada String property dan
membuat kita dapat memilih satu atau lebih item yang ada. Value property berisi indeks
yang dihubungkan dengan daftar item yang dapat dipilih. Jika kita memilih item lebih
dari satu, maka nilai yang dikirimkan merupakan sebuah vektor. indeks-indeks item
sebuah listbox merupakan bilangan bulat, di mana item pertama diberi indeks 0, item
kedua diberi indeks l, dan seterusnya.
Langkahnya :
1) Klik tombol Start Matlab dan memilih MATLAB, lalu mengklik GUIDE (GUI Builder),
kemudian Pilihlah Blank GUI (default) agar menampilkan jendela layout figure GUI
2) Buatlah disain seperti Gambar 2.22, yang terdiri dari static text 1 buah, edit text 1
buah dan listboxes 1 buah
3) Aturlah static text dan edit text menggunakan property inspector seperti pada bagian
A dan list boxes seperti pada Gambar 2.22
4) Simpan figure diatas dengan nama “contohlistbox”, kemudian akan tampil editor m-
file, selanjutnya tambahkan perintah sebagai berikut :
G. PopupMenu
Popup menu mernbuka tampilan daftar pilihan yang didefinisikan pada String Property
ketika kita mengklik tanda panah pada aplikasi. Ketika tidak dibuka, popup menu hanya
akan menampilkan satu item yang menladi pilihan saat ini, yang ditentukan oleh sebuah
indeks berisi Value Properfy. Item pertama pada String Property sebuah popup menu
akan diberi nilai 1, item berikutnya diberi nilai 2, dan begitu seterusnya. Popup menu
sangat bermanfaat ketika kita ingin memberi pemakai sebuah pilihan atau alternatif
tanpa jarak, tidak seperti radio button. Contoh pemakaian popup menu hampir sama
dengan listbox
4) Simpan figure diatas dengan nama “contoh_axes”, kemudian akan tampil editor m-
file, selanjutnya tambahkan perintah sebagai berikut :
Untuk Komponen pushbutton1 tambahkan perintah pada
function pushbutton1_Callback(hObject, eventdata, handles)
min = str2double(get(handles.edit1,'String'));
max = str2double(get(handles.edit2,'String'));
x = min : 0.1 : max;
y = x.^2;
axes(handles.axes1);
plot(x,y);
1. Buat disain untuk menampilkan fungsi trigonometri dengan beberapa pilihan sudut,
amplitudo, dan phase menggunakan komponen GUIDE seperti gambar berikut ini
-oo0oo-
MODUL 3
MEMBACA, MENAMPILKAN DAN MENYIMPAN FILE CITRA
KE MEDIA PENYIMPANAN
3.2. Indikator :
3.2.1. Mampu membuat program untuk membaca dan menapilkan file citra
Mampu mendisain tampilan untuk membaca dan menampilkan file citra
menggunakan komponen GUI
Mampu memprogram untuk membaca dan menampilkan file citra.
3.2.2. Mampu membuat program untuk menyimpan file citra
Mampu mendisain tampilan untuk menyimpan file citra menggunakan komponen
GUI
Mampu memprogram untuk menyimpan file citra.
Yang perlu diperhatikan adalah bahwa indeks matriks pada MATLAB selalu dimulai dengan
anggak 1 sehingga untuk f(0,0) akan sama dengan f(1,1) pada matlab.
Bentuk matrik ini kemudian diolah menurut teori-teori tertentu yang bertujuan untuk
memecahkan masalah tertentu, bentuk matriks adalah perwujudan dari bentuk sinyal digital
sehingga proses pemecahan dan pengolahan matriks dari gambar ini biasanya disebut
dengan digital image processing.
Gambar 3.2 . Tools pada GUI Yang Digunakan Untuk Mendisain Cara Membaca
dan Menampilkan File Citra
axes(handles.axes1);
imshow(image);
set(handles.text3,'String',nama_file1);
[brs,kol,tt]=size(handles.image);
set(handles.text5,'String',brs);
set(handles.text7,'String',kol);
handles.image=image;
guidata(hObject,handles);
end;
Tambahkan deretan perintah untuk menutup aplikasi pada function
Tombol_tutup _Callback
button = questdlg('Tutup Aplikasi ?',...
'Tutup','Ya','Tidak','Ya');
if strcmp(button,'Tidak')
return;
end
delete(handles.figure1);
g) Simpan file aplikasi1.m kemudian running program. Perhatikan hasilnya
handles.data1=data1;
guidata(hObject,handles);
axes(handles.axes1);
imshow(handles.data1);
else
return;
end
-oo0oo-
MODUL 4
TRANSFORMASI CITRA WARNA
4.2. Indikator :
4.2.1. Memahami konsep transformasi citra warna
Mampu mendisain tampilan untuk mentransformasikan citra warna menggunakan
komponen GUI
Mampu memprogram untuk mentransformasikan citra warna.
4.2.2. Mampu mengubah citra warna ke format grayscale
Mampu mendisain tampilan untuk mengubah citra warna ke grayscale menggunakan
komponen GUI
Mampu memprogram untuk mentransformasikan citra warna ke grayscale.
axes(handles.axes3);
imshow(handles.dG);
handles.dB=dB;
guidata(hObject,handles);
axes(handles.axes4);
imshow(handles.dB);
Gambar 4.2. Disain Untuk Menampilkan Hasil konversi Citra Warna ke Gray-scale
4.5. Latihan :
1. Buatlah disain untuk menampilkan sebuah citra dengan format jpg, tiff atau citra
lain
Selanjutnya ubah citra tersebut ke citra BW dan tampilkan dalam satu layar
dengan citra asli.
2. Buatlah fungsi untuk menyimpan citra BW tersebut dengan format jpg atau bmp.
-oo0oo-
MODUL 5
HISTOGRAM CITRA
5.2. Indikator :
Mampu menampilkan histogram dari suatu citra dan memahami konsep dan fungsi
histogram sebagai alat bantu untuk mengolah citra digital.
Mampu mendisain tampilan untuk menampilkan histogram menggunakan
komponen GUI
Mampu memprogram untuk menampilkan histogram untuk masing-masing
komponen warna.
Khusus untuk citra berwarna histogram dibuat untuk setiap kanal RGB. Informasi penting
dari histogram :
Nilai hi menyatakan peluang pixel, P(i) dengan derajad keabuan i. jumlah seluruh h i
sama dengan 1
Puncak histogram menunjukkan intensitas pixel yang menonjol.
Lebar dari puncak menunjukkan rentang kontras dari gambar.
o Citra yang mempunyai kontras terlalu terang atau gelap memiliki histogram
yg sempit, dan hanya menggunakan setengah dari daerah derajad keabuan
o Citra yg baik memiliki histogram yg mengisi darah derajad keabuan secara
penuh dengan distribusi yg merata pada setiap intensitas pixel
MATLAB menyediakan fasilitas untuk menampilkan histogram suatu citra, yaitu dengan
menggunakan perintah :
imhist(nama_file);
if ~isequal(nama_file1, 0)
data1=imread(fullfile(nama_path1,nama_file1));
handles.data1=data1;
guidata(hObject,handles);
axes(handles.axes1);
imshow(handles.data1);
else
return;
end
5.3.3. Latihan :
1. Buatlah disain untuk menampilkan sebuah citra dengan format jpg, tiff atau citra
lain
2. Buatlah fungsi untuk menampilkan histogram dari citra (Perhatian : apabila citra
yang diinputkan adalah citra warna maka buatlah function untuk
menggabungkan ketiga warna ke dalam satu histogram)
-oo0oo-
MODUL 6
IMAGE ENHANCEMENT PADA DOMAIN SPATIAL
MENGGUNAKAN POINT PROCESSING
(Contrast stretching dan Image Negative)
6.2. Indikator :
6.2.1. Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
meningkatkan mutu citra menggunakan metode Contrast stretching
Mampu mendisain tampilan untuk meningkatkan mutu citra menggunakan metode
Contrast stretching menggunakan komponen GUI
Mampu memprogram untuk meningkatkan mutu citra menggunakan metode
Contrast stretching.
6.2.2. Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
mendapatkan negatif pada citra
Mampu mendisain tampilan untuk mendapatkan negatif pada citra menggunakan
komponen GUI
Mampu memprogram untuk mendapatkan negatif pada citra.
Salah satu pemanfaatannya adalah untuk mengkonversikan ke citra biner yang banyak
dimanfaatkan untuk keperluan pattern recognition yang sederhana, seperti :
Pengenalan angka
Pengenalan huruf
Prosesnya dengan mengubah kuantisasi citra dengan menggunakan beberapa cara,
diantaranya :
1. Nilai ambang (threshold) T menggunakan nilai tengah
Untuk citra dengan derajad keabuan 256, maka nilai tengahnya adalah 128 sehingga
untuk mengubahnya menjadi citra biner menggunakan threshold 128.
0 f ( x, y ) 128
f ( x, y )'
1 f ( x, y ) 128
2. Nilai ambang (threshold) T menggunakan nilai rata-rata
Untuk menghasilkan citra biner yg sempurna dapat dilakukan dengan memilih nilai
derajad keabuan yg simetri antara yg dibawah 128 dan yang diatas 128 dengan
menggunakan nilai rata-rata.
Caranya dengan menghitung nilai rata-rata derajad keabuan dan kemudian
ditentukan thresholdingnya.
1 n m
xr xij
m.n i 1 j 1
Jika x < xr maka x = 0, jika tidak x = 255
6.3.2. Latihan :
1. Buatlah disain untuk menampilkan sebuah citra hasil image enhancemenet
menggunakan nilai treshold rata-rata
2. Buatlah fungsi untuk menampilkan sebuah citra hasil image enhancemenet
menggunakan nilai treshold rata-rata.
6.4.2. Latihan :
1. Buatlah disain untuk menampilkan menu pilihan untuk menampilkan hasil image
enhancement atau image negative.
2. Buatlah fungsinya untuk menampilkan sebuah citra hasil image enhancement
menggunakan metode yang anda pilih dan fungsi untuk melakukan negative
image.
-oo0oo-
MODUL 7
HISTOGRAM EQUALIZATION
7.2. Indikator :
7.2.1. Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
meningkatkan mutu citra menggunakan metode Image brightness
Mampu mendisain tampilan untuk meningkatkan mutu citra menggunakan metode
Image brightness menggunakan komponen GUI
Mampu memprogram untuk meningkatkan mutu citra menggunakan metode Image
brightness.
7.2.2. Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
meningkatkan mutu citra menggunakan metode Histogram Equalization
Mampu mendisain tampilan untuk meningkatkan mutu citra menggunakan metode
Histogram Equalization menggunakan komponen GUI
Mampu memprogram untuk meningkatkan mutu citra menggunakan metode
Histogram Equalization.
Tambahkan deretan perintah untuk menyimpan nilai yang diisikan pada tombol
edit text pada function edit1_Callback
x = str2num(get(handles.edit1,'string'));
handles.x = x;
guidata(hObject,handles);
hasil(i,j,s) = 0;
end;
end;
else
hasil(i,j)=image1(i,j) + x;
if hasil(i,j) > 255
hasil(i,j) = 255;
elseif hasil(i,j)< 0
hasil(i,j) = 0;
end;
end;
end;
end;
else
for i = 1:b
for j=1:k
if s==3
for s=1:3
hasil(i,j,s)=image1(i,j,s)-x;
if hasil(i,j,s) > 255
hasil(i,j,s) = 255;
elseif hasil(i,j,s) < 0
hasil(i,j,s) = 0;
end;
end;
else
hasil(i,j)=image1(i,j) - x;
if hasil(i,j) > 255
hasil(i,j) = 255;
elseif hasil(i,j)< 0
hasil(i,j) = 0;
end;
end;
end;
end;
end;
axes(handles.axes2);
hasil=uint8(hasil); %mengubah ke presisi int 8 bit
imshow(hasil);
7.3.2. Kontras
Kontras menyatakan sebaran terang dan gelap di dalam sebuah gambar. Berdasarkan
histogram, maka citra dibagi dalam tiga kategori :
Citra kontras rendah, cirinya sebagian besar komposisiya sebagian terang atau gelap
dengan nilai intensitasnya mengelompokkan atau hanya menempati sebagian kecil
rentang daerah keabuan
Citra kontras tinggi, mempunyai jangkauan keabuan yg lebar tetapi terdapat area yg
lebar yg didominasi oleh warna terang atau gelap
Citra kontras bagus, memperlihatkan jangkauan nilai keabuan yg lebar tanpa ada
suatu nilai kebauan yg mendominasi
Untuk meningkatkan kontras dari suatu citra salah satnya dengan menggunakan metode
histogram equalization. Metode ini melakukan equalization tidak harus pada seluruh bagian,
namun dapat dilakukan pada bagian tertentu saja dari histrogram. Pada prinsipnya
equalization histogram melakukan pemerataan distribusi gray yang ada pada citra.
b=histeq(a);
7.4. Latihan :
1. Tambahkan pada Gambar 7.2 untuk menambahkan disain untuk menampilkan gambar
hasil proses teknik image enhancement melalui operasi titik menggunakan intensity
adjustment. Perintah umum untuk melakukan pemetaan linear tersebut adalah:
J = imadjust(I)
2. Pengukuran keberhasilan prosedur image enhancement secara kuantitatif dapat
dilakukan melalui perhitungan nilai parameter MSE (Mean Squared Error) yang
dirumuskan sebagai berikut:
Tambahkan pula pada gambar 7.2. komponen palete static text atau edit text untuk
menampilkan nilai MSE hasil dari proses histogram equalization dan intensity
adjustment.
-oo0oo-
MODUL 8
MASK PROCESSING
8.2. Indikator :
7.2.1. Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
meningkatkan mutu citra menggunakan Tapis Linier
Mampu mendisain tampilan untuk meningkatkan mutu citra menggunakan metode
mask processing dengan Tapis Low Pass dan High Pass
Mampu memprogram untuk meningkatkan mutu citra menggunakan metode mask
processing dengan Tapis Low Pass dan High Pass.
8.2.2. Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
meningkatkan mutu citra menggunakan Tapis Non Linier
Mampu mendisain tampilan untuk meningkatkan mutu citra menggunakan metode
mask processing dengan Tapis Median
Mampu memprogram untuk meningkatkan mutu citra menggunakan metode mask
processing dengan Tapis Median.
Tapis Median
Langkah-langkah yang dilakukan :
a. Buatlah disain seperti terlihat pada gambar 8.2
8.4. Latihan :
1. Buatlah disain dan program untuk menanpilkan hasil pemrosesan metode image
enhancment menggunakan tapis (filter) yang lain.
2. Kemudian bandingkan hasil tapis yang digunakan dengan menampilkan nilai masing-
masing MSE (Mean Squared Error) yang dirumuskan sebagai berikut:
-oo0oo-
MODUL 9
OPERASI GEOMETRI DAN ARITMETIKA
9.2. Indikator :
9.2.1. Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
mengubah citra menggunakan operasi Geometri
Mampu mendisain tampilan dan membangun program menggunakan Matlab untuk
mengubah citra menggunakan operasi translasi
Mampu mendisain tampilan dan membangun program menggunakan Matlab untuk
mengubah citra menggunakan operasi rotasi.
9.2.2. Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
mengubah citra menggunakan operasi Aritmatika
Mampu mendisain tampilan dan membuat program untuk mengubah citra
menggunakan operasi pengurangan
Mampu mendisain tampilan dan membuat program untuk mengubah citra
menggunakan operasi penambahan.
Method adalah
4) Affine transformation
Metode ini menggabungkan proses dasar seperti : translasi, rotasi, penskalaan ke
dalam satu proses untuk mendapatkan citra output yg diinginkan.
Rumus transformasi Affine x x
2
A 1 B
y2 y1
Untuk menggambarkan proses rotasi maka nilai A dan B diganti dengan
cos( ) sin( ) 0
A dan B
sin( ) cos( ) 0
Operasi Geometrik
Langkah-langkah yang dilakukan :
a. Buatlah disain seperti terlihat pada gambar 9.1
b. Pengurangan
Rumus :
O( x, y) u1 ( x, y) u2 ( x, y)
Proses pengurangan juga dapat digunakan untuk mencari perbedaan absolut dari citra.
Rumus :
O( x, y ) u1 ( x, y ) u2 ( x, y )
Rumus
O( x, y) u1 ( x, y) * u2 ( x, y)
Teknik perkalian citra biasanya memanfaatkan sebuah citra biner. Citra biner tsb
berfungsi sebagai filter karena hanya mengandung nilai 0 dan 1.
Perbedaan terlihat apabila perkalian menggunakan nilai konstanta.
Apabila nilai konstanta >1 akan ada peningkatan nilai intensitas
Apabila nilai konstanta negatif maka akan ada penurunan intensitas.
Rumus
O ( x, y ) u ( x, y ) * K
d. Pembagian
Operasi pembagian dapat dilakukan terhadap2 citra input atau sebuah citra input
dengan suatu konstanta. Hasil pembagian terhadap dua citra akan menghasilkan suatu
citra yang memperlihatkan letak perbedaan antara kedua citra tsb yg menampilkan
suatu citra rasio perbedaan
Rumus : O ( x, y ) u1 ( x, y )
u2 ( x, y )
Pembagian dengan menggunakan konstanta K akan menunjukan nilai penurunan pixel
citra seperti yg dihasilkan dengan proses pengurangan citra
Rumus
u ( x, y )
O ( x, y )
K
Operasi Aritmatik
Langkah-langkah yang dilakukan :
a. Buatlah disain seperti terlihat pada gambar 9.2
3. Static text
Nama Komponen String Property Tag Properti
Static Text 1 CONTOH OPERASI
ARITMATIK text1
Static Text 2 Citra Asli 1 text2
Static Text 3 Citra Asli 2 text3
Static Text 4 Citra Hasil text4
4. Tombol Panel
Nama Komponen String Property Tag Properti
Panel 1 Pilihan Brightness Menu_Pilihan
5. Radio Button
Nama Komponen String Property Tag Properti
Radio Button 1 Penjumlahan Citra jumlah
Radio Button 2 Pengurangan Citra kurang
'Tutup','Ya','Tidak','Ya');
if strcmp(button,'Tidak')
return;
end
delete(handles.figure1);
end;
if nr<=0
nr(i,j)=0;
elseif nr>=255
nr(i,j)=255;
end;
if ng<=0
ng(i,j)=0;
elseif ng>=255
ng(i,j)=255;
end;
if nb<=0
nb(i,j)=0;
elseif nb>=255
nb(i,j)=255;
end;
end;
end;
newcitra(:,:,1)=uint8(nr);
newcitra(:,:,2)=uint8(ng);
newcitra(:,:,3)=uint8(nb);
end;
axes(handles.axes3);
imshow(newcitra);
else
errordlg('Ukuran Citra 1 dan Citra2 Tidak Sama,Ulangi Inputkan !','Citra Input
Error');
end
9.4. Latihan :
1. Buatlah disain dan program untuk menanpilkan hasil pemrosesan menggunakan operasi
geometrik yang lain
2. Buatlah disain dan program untuk menanpilkan hasil pemrosesan menggunakan operasi
Aritmatik yang lain
-oo0oo-
MODUL 10
IMAGE ENHANCEMENT PADA DOMAIN FREKUENSI
10.2. Indikator :
Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
mengubah citra menggunakan basis transformasi
Mampu mendisain tampilan dan membangun program menggunakan Matlab untuk
mengubah citra menggunakan DCT (Discrete Cosinus Transform)
Mampu mendisain tampilan dan membangun program menggunakan Matlab untuk
mengubah citra menggunakan DFT (Discrete Fourier Transform)
Mampu mendisain tampilan dan membangun program menggunakan Matlab untuk
mengubah citra menggunakan FFT (Fast Fourier Transform)
b=data(:,:,3);
rr=dct2(r);
gg=dct2(g);
bb=dct2(b);
data1(:,:,1)=rr;
data1(:,:,2)=gg;
data1(:,:,3)=bb;
r2=fft2(r);
g2=fft2(g);
b2=fft2(b);
data2(:,:,1)=r2;
data2(:,:,2)=g2;
data2(:,:,3)=b2;
else
data1=dct2(data);
data2=fft2(data);
end;
axes(handles.axes1);
imshow(data);
axes(handles.axes2);
imshow(data1);
axes(handles.axes3);
imshow(data2);
10.4. Latihan :
Buatlah disain dan program untuk menanpilkan hasil pemrosesan menggunakan
tranformasi wavelet
-oo0oo-
MODUL 11
ANALISIS CITRA
11.2. Indikator :
Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
melakukan analisis terhadap citra menggunakan teknik deteksi tepi turunan pertama
dan kedua
Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
melakukan analisis terhadap citra menggunakan teknik deteksi garis
Perubahan Intensitas
= arah tepi
Deteksi tepi (Edge Detection) pada suatu citra adalah suatu proses yang menghasilkan
tepi-tepi dari objek-objek gambar. Suatu titik (x,y) Dikatakan sebagai tepi dari suatu citra
bila titik tersebut mempunyai perbedaan yang tinggi dengan tetangganya. Berdasarkan
prinsip-prinsip filter pada citra maka tepi suatu gambar dapat diperoleh menggunakan High
Pass Filter (HPF), yang mempunyai Karakteristik :
∑ ∑ H(x,y) = 0
y x
Yang penting diperhatikan pada deteksi tepi bahwa hanya dapat dilakukan menggunakan
citra
grayscale atau citra 2-D.
Teknik yang digunakan untuk pendeteksian tepi antara lain :
Operator turunan pertama ( differential gradient )
Deteksi tepi menggunakan turunan pertama menghasilkan tepian berupa garis yang
tebal. Macam-macam metode untuk proses deteksi tepi turunan pertama, antara lain :
◦ Metode Robert
◦ Metode Prewitt
◦ Metode Sobel
Operator turunan kedua ( Laplacian )
Idealnya operator deteksi harus dapat menampilkan pusat tepian, yaitu menghasilkan
tepian yang sempit. Oleh karena itu diperlukan proses thining untuk mengurangi lebar
tepian menjadi 1 pixel. Dengan deteksi tepian turunan ke dua akan menghasilkan tepian
yang lebih tipis. Salah satu operatornya adalah Laplacian of Gaussian
Deteksi Tepi
Langkah-langkah yang dilakukan :
a. Buatlah disain seperti terlihat pada gambar 11.1
Citra ditapis dengan setiap kernel diatas, kemudian citra hasil diperoleh dengan
melakukan operasi maksimal terhadap keempat citra yang dihasilkan dari keempat kernel
tersebut.
Deteksi Garis
Langkah-langkah yang dilakukan :
a. Buatlah disain seperti terlihat pada gambar 11.2
11.4. Latihan :
Buatlah disain dan program untuk menampilkan hasil pemrosesan menggunakan
operator turunan kedua.
-oo0oo-
MODUL 12
MORFOLOGI
12.2. Indikator :
Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
melakukan proses erosi dan dilasi
Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
melakukan proses closing dan opening
Mampu merancang dan membangun program yang dapat dimanfaatkan untuk
melakukan proses pelabelan dan pewarnaan pada setiap objek
Gambar 12.1. Disain Untuk Menampilkan Hasil Proses Erosi dan Dilasi
case 9
MN =[3 5];
SE = strel('rectangle', MN);
case 10
SE = strel('square',11);
end;
handles.SE=SE;
guidata(hObject,handles);
Gambar 12.2. Disain Untuk Menampilkan Hasil Operasi Opening dan Closing
Gambar 12.3. Disain Untuk Menampilkan Hasil Operasi Labeling dan Pewarnaan
b. Atur property dari masing-masing tombol pada langkah 1, yaitu:
1) Tombol Pushbutton
Nama Komponen String Property Tag Properti
Pushbutton 1 OPEN CITRA Tombol_buka
Pushbutton 2 PROSES Tombol_proses
Pushbutton 3 KELUAR Tombol_tutup
2) Tombol Axes
Nama Komponen XTick Property YTick Properti
Axes 1 Kosongkan Kosongkan
Axes 2 Kosongkan Kosongkan
Axes 3 Kosongkan Kosongkan
5) Static text
Nama Komponen String Property Tag Properti
Static Text 1 PELABELAN DAN
PEWARNAAN text1
Static Text 2 Citra Asli text2
Static Text 3 Citra Grayscale text3
Static Text 4 Citra Hasil text4
12.4. Latihan
1. Tambahkan function/statemen untuk menampilkan hasil operasi dilasi pada Gambar 12.1
2. Tambahkan function/statemen untuk menampilkan hasil operasi closing pada Gambar
12.2
-oo0oo-