Anda di halaman 1dari 101

LAPORAN PRAKTIKUM

PENGOLAHAN CITRA DIGITAL


SEMESTER GANJIL TAHUN AKADEMIK 2018/2019

Disusun oleh :
Nama : Marvelina Gracia Hernoko
NIM : 1718040
Jurusan : Teknik Informatika S-1
Kelompok : 9

PROGRAM STUDI TEKNIK INFORMATIKA S-1


FAKULTAS TEKNOLOGI INDUSTRI
INSTITUT TEKNOLOGI NASIONAL MALANG
2018
LEMBAR PERSETUJUAN
PRAKTIKUM PENGOLAHAN CITRA DIGITAL
SEMESTER GANJIL TAHUN AKADEMIK 2018/2019

Disusun Oleh
NAMA : Marvelina Gracia Hernoko
NIM : 1718040
PRODI : Teknik Informatika S-1

Mengetahui, Menyetujui,
Kepala Laboratorium Dosen Pembimbing
Pengolahan Citra & Multimedia

(Febriana Santi W, S.Kom, M.Kom) (Ali Mahmudi, B.Eng, P.Hd)


NIP.P.1031000425 NIP.P.1031000429

PROGRAM STUDI TEKNIK INFORMATIKA S-1


FAKULTAS TEKNOLOGI INDUSTRI
INSTITUT TEKNOLOGI NASIONAL MALANG
2018
KATA PENGANTAR

Dengan memanjatkan puji syukur kehadirat Tuhan Yang Maha Esa, karena
atas berkah rahmat dan karunia-Nya sehingga kami dapat menyelesaikan Laporan
Praktikum Mata Kuliah, guna persyaratan dalam menempuh mata kuliah.
Laporan ini disusun berdasarkan percobaan dan teori dasar yang ada dalam
buku panduan praktikum ,teori yang diperoleh praktikan dari perkuliahan, dan tidak
lupa yaitu Internet sehingga praktikan dapat menambah tidak hanya menguasai
teori saja namun juga memahami serta mengaplikasikannya.
Terwujudnya laporan ini, tentunya tidak lepas dari bantuan-bantuan yang
telah kami terima. Pada kesempatan ini, kami menyampaikan terima kasih yang
sebesar-besarnya kepada yang terhormat:
1. Bapak Ali Mahmudi, B.Eng, P.Hd selaku dosen pembimbing Praktikum
Pengolahan citra digital.
2. Ibu Nurlaily Vendyansyah, ST selaku dosen mata kuliah Pengolahan Citra
Digital.
3. Ibu Febriana Santi W, S.Kom, M.Kom selaku Ketua Lab. Pengolahan
Citra dan Multimedia JurusanTeknik Informatika ITN Malang.
4. Instruktur Lab. Nama Laboratorium Teknik Informatika yang telah memberi
petunjuk kepada kami selama pelaksanaan praktikum.
5. Rekan-rekan yang telah membantu dalam pelaksanaan dan penyelesaian
laporan ini.
Dalam menyusun laporan ini kami menyadar ibahwa laporan ini masih
memiliki kekurangan, karena itu segala kritik dan saran yang membangunakan
kami nanti demi perbaikan penyusunan laporan selanjutnya.
Harapan kami laporan praktikum i
ni bermanfaat bagi penulis sendiri maupun pembaca sekalian.

Malang, Desember 2018

Penulis

i
DAFTAR ISI

LEMBAR PENGESAHAN
KATA PENGANTAR ............................................................................................. i
DAFTAR ISI ........................................................................................................... ii
DAFTAR GAMBAR ............................................................................................. v
DAFTAR TABEL ................................................................................................. vii
PRAKTIKUM PENGOLAHAN CITRA DIGITAL .............................................. 1
PERTEMUAN : 1 ................................................................................................... 1
1. Pengenalan Citra ............................................................................................. 1
1.1. Langkah-langkah Membuat Tugas .................................................................. 4
1.2 Alat dan Bahan ................................................................................................. 7
1.3 Tujuan .............................................................................................................. 7
1.4 Kesimpulan ....................................................................................................... 7
PRAKTIKUM PENGOLAHAN CITRA DIGITAL .............................................. 8
PERTEMUAN : 2 ................................................................................................... 8
2. Pengenalan Matlab .......................................................................................... 8
2.1 Langkah-langkah Membuat Tugas ................................................................ 11
2.2 Alat dan Bahan ................................................................................................ 16
2.3 Tujuan ............................................................................................................. 16
2.4 Kesimpulan ..................................................................................................... 16
PRAKTIKUM PENGOLAHAN CITRA DIGITAL ............................................ 18
PERTEMUAN : 3 ................................................................................................. 18
3. Operasi Titik & Aritmatika Pada Pengolahan Citra ...................................... 18
3.1 Langkah-langkah Membuat Tugas .................................................................. 20
3.2 Alat dan Bahan ................................................................................................ 25
3.3 Tujuan ............................................................................................................. 25
3.4 Kesimpulan .................................................................................................... 25
PRAKTIKUM PENGOLAHAN CITRA DIGITAL ............................................ 26
PERTEMUAN : 4 ................................................................................................. 26

ii
4. Macam- macam operasi pengolahan citra ..................................................... 26
4.1 Langkah-langkah Membuat Tugas .................................................................. 29
4.2 Alat dan Bahan ............................................................................................... 34
4.3 Tujuan ............................................................................................................. 34
4.4 Kesimpulan ..................................................................................................... 35
PRAKTIKUM PENGOLAHAN CITRA DIGITAL ............................................ 36
PERTEMUAN : 5 ................................................................................................. 36
5. Operasi Konvulusi & Segmentasi Citra ......................................................... 36
5.1 Langkah-langkah Membuat Tugas .................................................................. 39
5.2 Alat dan Bahan ................................................................................................ 45
5.3 Tujuan ............................................................................................................. 45
5.4 Kesimpulan ..................................................................................................... 45
PRAKTIKUM PENGOLAHAN CITRA DIGITAL ............................................ 46
PERTEMUAN : 6 ................................................................................................. 46
6. Filter Spasial Non-Linier.............................................................................. 46
6.1 Langkah-langkah Membuat Tugas .................................................................. 50
6.2 Alat dan Bahan ................................................................................................ 56
6.3 Tujuan ............................................................................................................. 56
6.4 Kesimpulan ..................................................................................................... 57
PRAKTIKUM PENGOLAHAN CITRA DIGITAL ............................................ 58
PERTEMUAN : 7 ................................................................................................. 58
7. Pendeteksian Tepi (Edge Detection) ............................................................ 58
7.1 Langkah-langkah Membuat Tugas .................................................................. 61
7.2 Alat dan Bahan ................................................................................................ 71
7.3 Tujuan ............................................................................................................. 72
7.4 Kesimpulan ..................................................................................................... 72
TUGAS PRAKTIKUM PENGOLAHAN CITRA DIGITAL .............................. 73
PERTEMUAN : 8 ................................................................................................. 73
8. Pemampatan Citra ........................................................................................ 73
8.1 Langkah-langkah Membuat Tugas .................................................................. 74
8.2 Alat dan Bahan ................................................................................................ 77
8.4 Tujuan ............................................................................................................. 77

iii
8.5 Kesimpulan ..................................................................................................... 77
PRAKTIKUM PENGOLAHAN CITRA DIGITAL ............................................ 78
PERTEMUAN : 9 ................................................................................................. 78
9. Watermark Citra ............................................................................................ 78
9.1 Langkah-langkah Membuat Tugas ................................................................ 79
9.2 Alat dan Bahan ................................................................................................ 83
9.3 Tujuan ............................................................................................................. 83
9.4 Kesimpulan ..................................................................................................... 84
TUGAS PRAKTIKUM PENGOLAHAN CITRA DIGITAL .............................. 85
PERTEMUAN : 10 ............................................................................................... 85
10. Histogram Citra................................................................................... 85
10.1Langkah-langkah Membuat Tugas ................................................................ 85
10.2Alat dan Bahan ............................................................................................... 88
10.3Tujuan ............................................................................................................ 89
10.4Kesimpulan .................................................................................................... 89
PENUTUP ............................................................................................................. 90
Kesimpulan ........................................................................................................... 90
Saran ...................................................................................................................... 90
DAFTAR PUSTAKA ........................................................................................... 91

iv
DAFTAR GAMBAR

Gambar 1.1 Contoh citra true color ........................................................................ 3


Gambar 1.2 Contoh citra grayscale ........................................................................ 3
Gambar 1.3 Contoh citra biner ................................................................................ 4
Gambar 1.4 Command window ............................................................................... 5
Gambar 1.5 Current directory ................................................................................. 6
Gambar 2.1 Command window ............................................................................... 9
Gambar 2.2 Workspace ........................................................................................... 9
Gambar 2.3 Current directory............................................................................... 10
Gambar 2.4 Command history .............................................................................. 10
Gambar 2.5 Perintah guide.................................................................................... 14
Gambar 2.6 Membuat GUI baru ........................................................................... 14
Gambar 2.7 Membuat axes ................................................................................... 15
Gambar 2.8 perintah callback ............................................................................... 15
Gambar 2.9 Hasil tampilan program. .................................................................... 16
Gambar 3.6 Perintah guide .................................................................................... 21
Gambar 3.8 Membuat axes ................................................................................... 22
Gambar 3.9 Perintah callback ............................................................................... 22
Gambar 3.10 Tampilan program ........................................................................... 24
Gambar 4.1 Operasi AND pada citra ..................................................................... 26
Gambar 4.2 Operasi OR pada citra ....................................................................... 27
Gambar 4.3 Operasi XOR pada citra ..................................................................... 27
Gambar 4.4 Perintah guide .................................................................................... 31
Gambar 4.5 Membuat GUI baru ........................................................................... 31
Gambar 4.6 Membuat axes ................................................................................... 32
Gambar 4.7 Perintah callback ............................................................................... 32
Gambar 4.8 Tampilan GUI ................................................................................... 34
Gambar 5.2 Permasalahan padding pada batas citra ............................................. 38
Gambar 5.3 Ilustrasi penerapan zero padding ....................................................... 38
Gambar 5.4 (a) Citra sebelum dilakukan konvolusi, (b) Hasil konvolusi dengan
kernel 3×3 ............................................................................................................. 38
Gambar 5.5 Operasi pengambangan pada citra..................................................... 39
Gambar 5.6 Perintah guide.................................................................................... 42
Gambar 5.7 Membuat GUI baru ........................................................................... 42
Gambar 5.8 membuat axes .................................................................................... 42
Gambar 5.9 Perintah callback ............................................................................... 43
Gambar 5.9 Tampilan Hasil .................................................................................. 45
Gambar 6.1 Citra yang mengalami gangguan (noise) ........................................... 47
Gambar 6.2 (a) Citra yang mengandung noise, (b) Hasil pelembutan dengan kernel
3×3 ........................................................................................................................ 48

v
Gambar 6.3 (a) Citra sebelum dikenai operasi penajaman, (b) Citra setelah dikenai
operasi penajaman ................................................................................................. 48
Gambar 6.4 (a) Citra ‘cameraman.tif’ sebelum dikenai operasi penajaman, (b) Citra
setelah dikenai penajaman..................................................................................... 49
Gambar 6.5 Piksel bernilai 35 terkena derau ........................................................ 50
Gambar 6.6 (a) Citra yang mengandung noise, (b) Hasil pelembutan dengan median
filtering .................................................................................................................. 50
Gambar 6.7 Perintah guide .................................................................................... 53
Gambar 6.8 Membuat GUI baru ........................................................................... 53
Gambar 6.9 membuat axes .................................................................................... 54
Gambar 6.10 Perintah callback ............................................................................. 54
Gambar 6.10 Tampilan Hasil ................................................................................ 56
Gambar 7.1 Perintah guide .................................................................................... 69
Gambar 7.2 Membuat GUI baru ........................................................................... 69
Gambar 7.3 membuat axes .................................................................................... 69
Gambar 7.4 Perintah callback ............................................................................... 70
Gambar 7.5 Tampilan Hasil .................................................................................. 71
Gambar 8.1 Perintah guide .................................................................................... 74
Gambar 8.2 Membuat GUI baru ........................................................................... 75
Gambar 8.3 membuat panel .................................................................................. 75
Gambar 8.4 Perintah callback ............................................................................... 75
Gambar 8.5 Tampilan Hasil .................................................................................. 76
Gambar 9.1 Perintah guide .................................................................................... 81
Gambar 9.2 Membuat GUI baru ........................................................................... 81
Gambar 9.3 membuat axes .................................................................................... 81
Gambar 9.4 Perintah callback ............................................................................... 81
Gambar 9.5 Tampilan Hasil .................................................................................. 83
Gambar 10.1 Grafik Histogram............................................................................. 86
Gambar 10.2 Perintah guide .................................................................................. 87
Gambar 10.3 Membuat GUI baru ......................................................................... 87
Gambar 10.4 membuat axes .................................................................................. 87
Gambar 10.5 Perintah callback ............................................................................. 87
Gambar 10.6 Tampilan Hasil ................................................................................ 88

vi
DAFTAR TABEL
Tabel 4.1 Operasi AND ......................................................................................... 26
Tabel 4.2 Operasi OR ............................................................................................ 26
Tabel 4.4 Operasi XOR ......................................................................................... 27
Table 9.1 Kode ASCII........................................................................................... 79
Table 9.2 Citra Input G ......................................................................................... 79
Table 9.3 Citra Input r ........................................................................................... 79
Table 9.4 Citra Input A ......................................................................................... 80
Table 9.5 Citra Input c .......................................................................................... 80
Table 10.1 Perhitungan Histogram Citra .............................................................. 86

vii
PRAKTIKUM PENGOLAHAN CITRA DIGITAL
PERTEMUAN : 1
NIM : 1718040
NAMA : Marvelina Gracia Hernoko
MATERI : 1. Pengenalan Citra
TUGAS : 1. Apa yang anda ketahui tentang Pengolahan Citra
Digital?
2. Jelaskan Penggunaan matlab dalam matematika dan
komputasi?
3. Jelaskan Penggunaan matlab dalam permodelan,
simulasi, dan pembuatan prototype?
4. Jelaskan penggunaan matlab dalam analisa data,
explorasi, dan visualisai?
5. Jelaskan penggunaan matlab dalam grafik keilmuan dan
bidang rekayasa?
6. Jelaskan penggunaan matlab dalam pengolahan citra
digital?
7. Jelaskan yang anda ketahui tentang lembar kerja pada
matlab meliputi common window, workspace, common
history, current directory, dan figure?

1. Pengenalan Citra
Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari
suatu objek. Citra sebagai keluaran atau sistem perekaman data dapat bersifat
optik berupa foto, bersifat analog berupa sinyal – sinyal video seperti gambar
pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada
suatu media penyimpan.

A. Definisi Citra Analog


Citra analog adalah citra yang bersifat kontinu. Citra analog tidak
dapat direpersentasikan dalam computer sehingga tidak bisa diproses oleh
computer secara langsung. Oleh sebab itu, agar citra ini dapat diproses di
komputer,proses konversi analog ke digital harus dilakukan terlebih
dahulu. Citra analog dihasilkan dari alat – alat analog, seperti video kamera
analog, kamera foto analog, WebCam, CT scan, sensor rontgen untuk foto

1
thorax, sensor gelombang pendek pada sistem radar, sensor ultrasound
pada sistem USG, dan lain – lain.
B. Definisi Citra Digital
Citra digital adalah citra yang terbentuk dari sinyal diskrit dan dapat
diolah oleh computer. Citra digital merupakan fungsi intensitas cahaya
f(x,y), dimana harga x dan harga y adalah koordinat spasial. Harga fungsi
tersebut di setiap titik (x,y) merupakan tingkat kecemerlangan citra pada
titik tersebut. Citra digital merupakan suatu matriks dimana indeks baris
dan kolomnya menyatakan suatu titik pada citra tersebut dan elemen
matriksnya (yang disebut sebagai elemen gambar/ pixel/ piksel/ pels/
picture element) menyatakan tingkat keabuan pada titik tersebut.
C. Jenis – Jenis Citra
Ada banyak cara untuk menyimpan citra digital di dalam memori.
Cara penyimpanan menentukan jenis citra digital yang terbentuk.
Beberapa jenis citra digital yang sering digunakan adalah citra warna (true
color), citra grayscale (skala keabuan), dan citra biner (monokrom).

1. Citra Warna (True Color)


Setiap piksel pada citra warna mewakili warna yang merupakan
kombinasi dari tiga warna dasar (RGB = Red Gren Blue). Setiap warna
dasar menggunakan penyimpanan 8 bit = 1 byte, yang berarti setiap warna
menyimpan gradasi sebanyak 255 warna. Itulah sebabnya format ini
dinamakan true color karena mempunyai jumlah warna yang cukup besar
sehingga bisa dikatakan hampir mencakup semua warna di alam.
Penyimpanan citra true color di dalam memori berbeda dengan citra
grayscale. Setiap piksel dari citra grayscale 256 gradasi warna diwakili
oleh 1 byte. Sedangkan 1 piksel citra true color diwakili oleh 3 byte,
dimana masing – masing byte merpresentasikan warna merah (red), hijau
(green), dan biru (blue).

2
Gambar 1.1 Contoh citra true color
2. Citra Grayscale (Skala Keabuan)
Citra grayscale merupakan citra digital yang hanya memiliki satu
nilai kanal pada setiap pikselnya, artinya nilai dari Red = Green = Blue.
Nilai-nilai tersebut digunakan untuk menunjukkan intensitas warna.
Citra yang ditampilkan dari citra jenis ini terdiri atas warna abu-abu,
bervariasi pada warna hitam pada bagian yang intensitas terlemah dan
warna putih pada intensitas terkuat. Citra grayscale berbeda dengan
citra ”hitamputih”, Dimana pada konteks komputer, citra hitam putih
hanya terdiri atas 2 warna saja yaitu ”hitam” dan ”putih” saja.

Gambar 1.2 Contoh citra grayscale

3. Citra Biner (Monokrom)


Citra biner (binary image) adalah citra digital yang hanya memiliki
2 kemungkinan warna, yaitu hitam dan putih. Citra biner disebut juga
dengan citra W & B (White & Black) atau citra monokrom. Hanya
dibutuhkan 1 bit untuk mewakili nilai setiap piksel dari citra biner.
Pembentukan citra biner memerlukan nilai ambang batas keabuan

3
yang akan digunakan sebagai nilai patokan. Piksel dengan derajat
keabuan lebih besar dari nilai ambang batas akan diberi nilai 1 dan
sebaliknya piksel dengan derajat keabuan lebih kecil dari nilai ambang
batas akan diberi nilai 0.
Citra biner sering sekali muncul sebagai hasil dari proses
pengolahan, seperti segmentasi, pengambangan, morfologi ataupun
dithering. Fungsi dari binerisasi sendiri adalah untuk mempermudah
proses pengenalan pola, karena pola akan lebih mudah terdeteksi pada
citra yang mengandung lebih sedikit warna. Persamaan untuk binerisasi
dapat dilihat pada rumus dibawah ini.

𝑓𝑖𝑛 𝑚𝑎𝑥 + 𝑓𝑖𝑛 𝑚𝑖𝑛


𝑇=
2

0, 𝑓𝑖𝑛 (𝑥, 𝑦) < 𝑇


Fout(x,y)={
1, 𝑓𝑖𝑛 (𝑥, 𝑦) ≥ 𝑇

Keterangan :
T = Treshold / Nilai Ambang Batas.

Gambar 1.3 Contoh citra biner

1.1. Langkah-langkah Membuat Tugas


1. Pengolahan citra digital merupakan proses pengolahan dan analisis
citra yang melibatkan persepsi visual. Informasi input dan output data
berbentuk citra dan sebagai pemrosesan citra dua dimensi.
2. Matlab adalah sebuah lingkungan komputasi numerical dan bahasa
pemrograman yang digunakan untuk manipulasi matriks, membagi

4
fungsi dan data. Matlab mempunyai keunggulan dalam pengolahan
grafik, yaitu mampu menampilkan dan mengolah grafik.
3. Matlab dalam permodelan digunakan untuk menggambarkan sistem
fisik atau model. Matlab dalam simulasi bertujuan untuk menganalisa
lebih awal terhadap sistem yang akan dibuat sehingga mengurangi
resiko kegagalan. Setelah melakukan permodelan dan simulasi maka
bisa mengembangkan konsep awal yang akan dibuat.
4. Matlab digunakan untuk analisa data agar mengetahui apa saja yang
dibutuhkan dan dapat menentukan nilai maksimum dan minimum dari
suatu data. Kemudian akan melakukan pencarian dengan tujuan
menemukan data yang dibutuhkan dan di visualisasikan dalam bentuk
static.
5. Matlab digunakan untuk mempermudah pengolahan grafik sehingga
tidak perlu kesulitan untuk melihat respon sistem. Dan dalam bidang
rekayasa dapat menyusun sebuah program sederhanea.
6. Matlab digunakan untuk pembacaan image, ekstraksi nilai piksel, dan
mengkonversi gambar.
7. Lembar kerja pada matlab :
a. Common window: digunakan untuk menulis perintah sederhana
dan menjalankan seluruh fungsi yang disediakan.

Gambar 1.4 Command window


b. Workspace: berfungsi sebagai navigator bagi pemakai dalam
penyediaan informasi tentang variabel yang sedang dipakai dan
menyimpan perintah yang pernah digunakan selama penggunaan
matlab.

5
Gambar 1.5 Workspace
c. Common history : berfungsi menyimpan perintah yang perlah
ditulis pada common window.

Gambar 2.4 Command history


d. Current directory:berfungsi untuk memilih direktori yang akan
digunakan selama penggunaan matlab berlangsung.

Gambar 1.5 Current directory


e. Figure :digunakan untuk menciptakan objek grafis.

6
1.2 Alat dan Bahan
1. Laptop
2. Matlab 2015a
3. Modul Pengolahan Citra Digital 2018

1.3 Tujuan
1. Praktikan untuk memproses analisa citra
2. Praktikan untuk menggambar sistem fisik atau model
3. Praktikan untuk analisa data
4. Praktikan untuk membuat simulasi dari prototype.
5. Praktikan dapat menyelesaikan perhitungan complex

1.4 Kesimpulan
1. Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari
suatu objek.
2. Pengolahan citra digital merupakan proses pengolahan dan analisis citra
yang melibatkan persepsi visual.
3. Matlab adalah sebuah lingkungan komputasi numerical dan bahasa
pemrograman yang digunakan untuk manipulasi matriks, membagi fungsi
dan data.
4. Matlab mempunyai keunggulan dalam pengolahan grafik, yaitu mampu
menampilkan dan mengolah grafik.
5. Matlab digunakan untuk analisa data agar mengetahui apa saja yang
dibutuhkan dan dapat menentukan nilai maksimum dan minimum

Tanggal Asistensi Instruktur Laboratorium Nilai

Diyona Amelia
1618050

7
PRAKTIKUM PENGOLAHAN CITRA DIGITAL
PERTEMUAN : 2
NIM : 1718040
NAMA : Marvelina Gracia Hernoko
MATERI : 1. Pengenalan Matlab
TUGAS : 1. Perhitungan
2. GUI Program

2. Pengenalan Matlab
MATLAB (Matrik Labority) merupakan perangkat lunak produksi dari The
Math Work, Inc. MATLAB adalah sebuah bahasa dengan (hight-performance)
kinerja tinggi untuk komputasi masalah teknik. Matlab mengintegrasikan
komputasi, visualisasi, dan pemrograman dalam suatu model yang sangat
mudah untuk pakai dimana masalah-masalah dan penyelesaiannya
diekspresikan dalam notasi matematika yang familiar.
Penggunaan Matlab meliputi bidang–bidang:
1. Matematika dan komputasi
2. Pembentukan Algorithm
3. Pemodelan, simulasi, dan pembutan prototype
4. Analisa data, explorasi, dan visualisasi
5. Grafik keilmuan dan bidang rekayasa
6. Pengolahan Citra Digital

Matlab digunakan sebagai platform untuk menganalisis data dan visualisasi


yang dirancang untuk membuat manipulasi matriks sesedehana mungkin.
Matlab memiliki banyak fitur-fitur yang sudah dikembangkan, dan lebih
dikenal dengan nama toolbox, yang merupakan kumpulam dari fungsi-fungsi
MATLAB (M-Files) yang telah dikembangkan ke suatu lingkungan kerja
Matlab untuk memecahkan masalah dalam kelas particular. Struktur data dasar
MATLAB adalah matriks. Pada MATLAB sebuah variable tunggal adalah
matriks 1 x 1, string adalah sebuah 1 x n matriks dari karakter. Gambar adalah
n x m matriks dari pixel. Pixel adalah elemen citra, elemen terkecil citra digital
yang dapat dilihat mata.

8
MATLAB IDE memiliki lima komponen, yaitu Command Window,
Workspace Browser, Current Directory Browser, Command History Window
dan kosong atau banyak Figure Windows yang aktif untuk menampilkan obyek
grafik.

1. Command window digunakan untuk menjalankan fungsi-fungsi Matlab,


(untuk mengetikkan perintah dan ekspresi serta menampilkan hasil).

Gambar 2.1 Command window


2. Workspace berisi kumpulan variable-variable yang terbentuk sepanjang
sesi Matlab dan disimpan di memory.

Gambar 2.2 Workspace


3. Current directory browser adalah operasi Matlab file menggunakan
current directory dan search patch sebagai referensi. File yang akan
dijalankan harus berada di current directory atau ada pada serach path.

9
Gambar 2.3 Current directory
4. Command history digunakan untuk menyimpan baris-baris perintah yang
telah diketikkan di command window. Kita dapat melihat ungsi-fungsi
yang digunakan sebelumnya, mengcopy, dan menjalankan kembali dari
command history.

Gambar 2.4 Command history


5. Figure adalah jendela untuk menampilkan gambar grafik seperti perintah
plot dan sejenisnya. Gambar pada jendela figure ini dapat disimpan ke
dalam sebuah file yang sewaktu-waktu dapat dipanggil kembali.

10
2.1 Langkah-langkah Membuat Tugas
1. Menghitung
R = 21 R = 73 R = 98 R = 11 R = 27 R = 42 R = 61 R = 48 R = 12 R = 43
G = 40 G=9 G = 67 G = 31 G = 77 G = 80 G = 29 G = 72 G = 16 G = 66
B = 12 B = 34 B = 54 B = 69 B = 23 B = 33 B = 82 B = 19 B = 73 B = 41
R = 22 R = 42 R = 10 R = 65 R = 42 R=1 R = 88 R = 87 R = 65 R = 33
G=4 G= 23 G = 70 G = 76 G = 76 G = 99 G = 97 G = 30 G = 21 G = 22
B = 98 B = 31 B = 91 B = 20 B = 48 B = 97 B = 45 B = 44 B=2 B = 11
R = 13 R = 86 R = 42 R = 78 R = 50 R = 11 R = 44 R = 39 R = 10 R = 51
G = 84 G= 67 G=7 G = 93 G = 41 G = 77 G = 31 G = 92 G = 23 G = 11
B = 39 B = 54 B = 55 B=8 B = 62 B = 89 B=3 B = 41 B = 16 B = 20
R = 28 R = 43 R = 65 R = 20 R = 37 R = 18 R = 32 R = 16 R = 43 R = 15
G = 64 G= 76 G = 23 G = 24 G = 17 G = 23 G = 10 G = 37 G=8 G = 20
B = 38 B = 53 B = 60 B = 87 B = 26 B = 33 B = 19 B = 62 B = 13 B = 65
R = 15 R = 32 R = 30 R = 12 R = 34 R = 32 R = 43 R = 14 R = 73 R=9
G = 87 G= 56 G = 52 G = 82 G = 23 G = 71 G = 29 G = 37 G = 23 G = 51
B = 43 B = 10 B = 43 B = 38 B = 76 B = 50 B = 12 B = 40 B = 80 B = 34
R = 26 R = 20 R = 70 R=3 R = 21 R = 10 R = 13 R = 18 R = 53 R = 82
G = 19 G= 51 G = 82 G = 26 G = 23 G = 25 G = 76 G = 18 G = 39 G = 21
B = 15 B = 67 B = 12 B = 81 B = 22 B = 15 B = 46 B = 50 B = 62 B = 52
R = 82 R = 34 R = 20 R = 28 R = 24 R = 30 R = 21 R = 14 R = 92 R = 11
G = 30 G= 21 G = 77 G = 67 G = 92 G = 71 G = 13 G = 72 G = 28 G = 87
B = 72 B = 76 B = 36 B = 93 B = 34 B = 93 B = 19 B = 34 B = 73 B = 34
R = 35 R = 32 R = 29 R = 33 R = 72 R = 34 R = 35 R = 20 R = 13 R = 56
G = 29 G= 22 G = 96 G = 67 G = 89 G = 62 G = 39 G = 51 G = 37 G = 36
B = 18 B = 90 B = 53 B = 45 B=6 B = 77 B = 54 B = 15 B = 28 B = 93
R = 37 R = 37 R = 27 R = 10 R = 21 R = 28 R = 23 R = 18 R = 32 R = 81
G = 58 G= 79 G = 53 G = 63 G = 10 G = 62 G = 31 G = 29 G = 11 G = 69
B = 89 B=4 B = 72 B = 70 B = 36 B = 81 B = 16 B = 67 B = 73 B = 84
R = 38 R = 10 R = 32 R = 16 R = 87 R = 20 R = 38 R=9 R = 66 R = 73
G = 48 G= 10 G = 39 G = 34 G = 53 G = 12 G = 29 G=8 G = 90 G = 40
B = 52 B = 76 B = 15 B = 79 B = 37 B = 19 B = 80 B = 31 B = 32 B = 26

Penyelesaian :

a. True color to grayscale

21 + 40 + 12 22 + 4 + 98
𝐹𝑜𝑢𝑡(1,1) = = 24 𝐹𝑜𝑢𝑡(2,1) = = 41
3 3
73 + 9 + 34 42 + 23 + 31
𝐹𝑜𝑢𝑡(1,2) = = 39 𝐹𝑜𝑢𝑡(2,2) = = 26
3 3
98 + 67 + 54 10 + 70 + 90
𝐹𝑜𝑢𝑡(1,3) = = 73 𝐹𝑜𝑢𝑡(2,3) = = 57
3 3
11+31+69 65 + 76 + 20
𝐹𝑜𝑢𝑡(1,4) = = 37 𝐹𝑜𝑢𝑡(2,4) = = 54
3 3
27 + 77 + 23 42 + 76 + 48
𝐹𝑜𝑢𝑡(1,5) = = 41 𝐹𝑜𝑢𝑡(2,5) = = 55
3 3
42 + 80 + 33 1 + 99 + 97
𝐹𝑜𝑢𝑡(1,6) = = 52 𝐹𝑜𝑢𝑡(2,6) = = 46
3 3
61 + 29 + 82 88 + 97 + 45
𝐹𝑜𝑢𝑡(1,7) = = 57 𝐹𝑜𝑢𝑡(2,7) = = 77
3 3
48 + 72 + 19 87 + 30 + 44
𝐹𝑜𝑢𝑡(1,8) = = 46 𝐹𝑜𝑢𝑡(2,8) = = 54
3 3
12 + 16 + 73 5 + 21 + 2
𝐹𝑜𝑢𝑡(1,9) = = 34 𝐹𝑜𝑢𝑡(2,9) =
3 3
= 9

11
43 + 66 + 41 33 + 22 + 11
𝐹𝑜𝑢𝑡(1,10) = = 50 𝐹𝑜𝑢𝑡(2,10) = = 22
3 3

13 + 84 + 39 28 + 64 + 38
𝐹𝑜𝑢𝑡(3,1) = = 45 𝐹𝑜𝑢𝑡(4,1) = = 43
3 3
86 + 67 + 54 43 + 76 + 53
𝐹𝑜𝑢𝑡(3,2) = = 69 𝐹𝑜𝑢𝑡(4,2) = = 57
3 3
42 + 7 + 55 65 + 23 + 60
𝐹𝑜𝑢𝑡(3,3) = = 35 𝐹𝑜𝑢𝑡(4,3) = = 49
3 3
78 + 93 + 8 20 + 24 + 87
𝐹𝑜𝑢𝑡(3,4) = = 60 𝐹𝑜𝑢𝑡(4,4) = = 44
3 3
50 + 41 + 62 37 + 17 + 26
𝐹𝑜𝑢𝑡(3,5) = = 51 𝐹𝑜𝑢𝑡(4,5) = = 27
3 3
11 + 77 + 89 18 + 23 + 33
𝐹𝑜𝑢𝑡(3,6) = = 59 𝐹𝑜𝑢𝑡(4,6) = = 25
3 3
44 + 31 + 3 32 + 10 + 19
𝐹𝑜𝑢𝑡(3,7) = = 26 𝐹𝑜𝑢𝑡(4,7) = = 20
3 3
39 + 92 + 41 16 + 37 + 62
𝐹𝑜𝑢𝑡(3,8) = = 57 𝐹𝑜𝑢𝑡(4,8) = = 38
3 3
10 + 23 + 16 43 + 8 + 13
𝐹𝑜𝑢𝑡(3,9) = = 16 𝐹𝑜𝑢𝑡(4,9) = = 21
3 3
51 + 11 + 20 15 + 20 + 65
𝐹𝑜𝑢𝑡(3,10) = = 27 𝐹𝑜𝑢𝑡(4,10) = = 33
3 3

15 + 87 + 43 26 + 19 + 15
𝐹𝑜𝑢𝑡(5,1) = = 48 𝐹𝑜𝑢𝑡(6,1) = = 20
3 3
32 + 56 + 10 20 + 51 + 67
𝐹𝑜𝑢𝑡(5,2) = = 33 𝐹𝑜𝑢𝑡(6,2) = = 46
3 3
30 + 52 + 43 70 + 82 + 12
𝐹𝑜𝑢𝑡(5,3) = = 42 𝐹𝑜𝑢𝑡(6,3) = = 55
3 3
12 + 82 + 38 3 + 26 + 81
𝐹𝑜𝑢𝑡(5,4) = = 44 𝐹𝑜𝑢𝑡(6,4) = = 37
3 3
34 + 23 + 76 21 + 23 + 22
𝐹𝑜𝑢𝑡(5,5) = = 44 𝐹𝑜𝑢𝑡(6,5) = = 22
3 3
32 + 71 + 50 10 + 25 + 15
𝐹𝑜𝑢𝑡(5,6) = = 51 𝐹𝑜𝑢𝑡(6,6) = = 17
3 3
43 + 29 + 12 13 + 76 + 46
𝐹𝑜𝑢𝑡(5,7) = = 28 𝐹𝑜𝑢𝑡(6,7) = = 45
3 3
14 + 37 + 40 18 + 18 + 50
𝐹𝑜𝑢𝑡(5,8) = = 30 𝐹𝑜𝑢𝑡(6,8) = = 29
3 3
73 + 23 + 80 53 + 39 + 62
𝐹𝑜𝑢𝑡(5,9) = = 57 𝐹𝑜𝑢𝑡(6,9) = = 51
3 3
9 + 51 + 34 82 + 21 + 52
𝐹𝑜𝑢𝑡(5,10) = = 31 𝐹𝑜𝑢𝑡(6,10) = = 52
3 3
82 + 30 + 72 35 + 29 + 18
𝐹𝑜𝑢𝑡(7,1) = = 61 𝐹𝑜𝑢𝑡(8,1) = = 27
3 3
34 + 21 + 76 32 + 22 + 90
𝐹𝑜𝑢𝑡(7,2) = = 44 𝐹𝑜𝑢𝑡(8,2) = = 48
3 3
20 + 77 + 36 29 + 96 + 53
𝐹𝑜𝑢𝑡(7,3) = = 44 𝐹𝑜𝑢𝑡(8,3) = = 59
3 3
28 + 67 + 93 33 + 67 + 45
𝐹𝑜𝑢𝑡(7,4) = = 68 𝐹𝑜𝑢𝑡(8,4) = = 48
3 3
24 + 92 + 34 72 + 89 + 6
𝐹𝑜𝑢𝑡(7,5) = = 50 𝐹𝑜𝑢𝑡(8,5) = = 57
3 3

12
30 + 71 + 93 34 + 62 + 77
𝐹𝑜𝑢𝑡(7,6) = = 65 𝐹𝑜𝑢𝑡(8,6) = = 58
3 3
21 + 13 + 19 35 + 39 + 54
𝐹𝑜𝑢𝑡(7,7) = = 18 𝐹𝑜𝑢𝑡(8,7) = = 31
3 3
14 + 72 + 34 20 + 51 + 15
𝐹𝑜𝑢𝑡(7,8) = = 40 𝐹𝑜𝑢𝑡(8,8) = = 29
3 3
92 + 28 + 73 13 + 37 + 29
𝐹𝑜𝑢𝑡(7,9) = = 64 𝐹𝑜𝑢𝑡(8,9) = = 26
3 3
11 + 87 + 34 56 + 36 + 93
𝐹𝑜𝑢𝑡(7,10) = = 44 𝐹𝑜𝑢𝑡(8,10) = = 62
3 3
37 + 58 + 89 38 + 48 + 52
𝐹𝑜𝑢𝑡(9,1) = = 61 𝐹𝑜𝑢𝑡(10,1) = = 46
3 3
37 + 79 + 4 10 + 10 + 76
𝐹𝑜𝑢𝑡(9,2) = = 40 𝐹𝑜𝑢𝑡(10,2) = = 32
3 3
27 + 53 + 72 32 + 39 + 15
𝐹𝑜𝑢𝑡(9,3) = = 51 𝐹𝑜𝑢𝑡(10,3) = = 29
3 3
10 + 63 + 70 16 + 24 + 79
𝐹𝑜𝑢𝑡(9,4) = = 48 𝐹𝑜𝑢𝑡(10,4) = = 40
3 3
21 + 10 + 36 87 + 53 + 37
𝐹𝑜𝑢𝑡(9,5) = = 22 𝐹𝑜𝑢𝑡(10,5) = = 56
3 3
28 + 62 + 81 20 + 12 + 19
𝐹𝑜𝑢𝑡(9,6) = = 57 𝐹𝑜𝑢𝑡(10,6) = = 17
3 3
23 + 31 + 16 38 + 29 + 80
𝐹𝑜𝑢𝑡(9,7) = = 23 𝐹𝑜𝑢𝑡(10,7) = = 49
3 3
18 + 29 + 67 9 + 8 + 31
𝐹𝑜𝑢𝑡(9,8) = = 38 𝐹𝑜𝑢𝑡(10,8) = = 16
3 3
32 + 11 + 73 66 + 90 + 32
𝐹𝑜𝑢𝑡(9,9) = = 39 𝐹𝑜𝑢𝑡(10,9) = = 63
3 3
81 + 69 + 84 73 + 40 + 26
𝐹𝑜𝑢𝑡(9,10) = = 78 𝐹𝑜𝑢𝑡(10,10) = = 46
3 3

Citra hasil grayscale


24 39 73 37 41 52 57 46 34 50
41 26 57 54 55 46 77 54 9 22
45 69 35 60 51 59 26 57 16 27
43 57 49 44 27 25 20 38 21 33
48 33 42 44 44 51 28 30 57 37
20 26 55 37 22 17 45 29 51 52
61 44 44 68 50 65 18 40 64 44
27 48 59 48 57 58 31 29 26 62
61 40 51 48 22 57 23 38 29 78
46 32 29 40 56 17 49 16 63 46

b. Grayscale to biner
𝑓𝑖𝑛 𝑚𝑎𝑥 + 𝑓𝑖𝑛 𝑚𝑖𝑛 78 + 9 0, 𝑓𝑖𝑛 (𝑥, 𝑦) < 44
𝑇= 𝑇= = 44 Fout(x,y)={
2 2 1, 𝑓𝑖𝑛 (𝑥, 𝑦) ≥ 44

13
Citra hasil Biner :

0 0 1 0 0 1 1 1 0 1
0 0 1 1 1 1 1 1 0 0
1 1 0 1 1 1 0 1 0 0
0 1 1 1 0 0 0 0 0 0
1 0 0 1 1 1 0 0 1 0
0 0 1 0 0 0 1 0 1 1
1 1 1 1 1 1 0 0 1 1
0 1 1 1 1 1 0 0 0 1
1 0 1 1 0 1 0 0 0 1
1 0 0 0 1 0 1 0 1 1

2. Membuat GUI Operasi Aritmatika


a. Pertama melalui Command Window Matlab ketikan : guide.

Gambar 2.5 Perintah guide


b. Lalu pilih Blank GUI (Default), dan klik OK

Gambar 2.6 Membuat GUI baru


c. Setelah itu buat GUI baru dengan 3 axes , 3 button , dan 3 static text.

14
Gambar 2.7 Membuat axes
d. Kemudian klik kanan pada button, setelah itu pilih view callbacks
> callback.

Gambar 2.8 perintah callback


e. Masukkan script GUI pada button OPEN :

function pushbutton1_Callback(hObject, eventdata,


handles)
open=guidata(gcbo);
[gambar,direktori]=uigetfile({'*.jpg;*.bmp;*.tif'},'o
penimage');
A=imread(gambar);
set(open.figure1,'CurrentAxes',open.axes1);
set(imagesc(A));colormap('gray');
set(open.axes1,'Userdata',A);

f. Masukkan script grayscale pada button Grayscale:


function pushbutton2_Callback(hObject, eventdata,
handles)
open=guidata(gcbo);
G=get(open.axes1,'Userdata');
a = rgb2gray(G);
set(open.figure1,'CurrentAxes',open.axes2);
set(imagesc(a));colormap('gray');
set(open.axes2,'Userdata',a);

15
g. Masukkan script black&white pada button Black&White :

function pushbutton3_Callback(hObject,
eventdata, handles)
open=guidata(gcbo);
I=get(open.axes2,'Userdata');
B = graythresh(I);
C = im2bw(I,B);
set(open.figure1,'CurrentAxes',open.axes3);
set(imagesc(C));colormap('gray');
set(open.axes3,'Userdata',C);

Tampilan Program :

Gambar 2.9 Hasil tampilan program.

2.2 Alat dan Bahan


1. Laptop
2. Matlab 2015a
3. Modul Pengolahan Citra Digital 2018

2.3 Tujuan
1. Praktikan dapat memahami penggunaan Matlab
2. Praktikan dapat memahami perintah pada Matlab
3. Praktikan mengimplementasikan penggunaan GUI dalam Matlab

2.4 Kesimpulan
1. MATLAB (Matrik Labority) merupakan perangkat lunak produksi dari
The Math Work, Inc. MATLAB adalah sebuah bahasa dengan (hight-
performance) kinerja tinggi untuk komputasi masalah teknik.
2. MATLAB IDE memiliki lima komponen, yaitu Command Window,
Workspace Browser, Current Directory Browser, Command History

16
Window dan kosong atau banyak Figure Windows yang aktif untuk
menampilkan obyek grafik.
3. GUIDE atau GUI builder merupakan sebuah graphical user interface (GUI)
yang dibangun dengan obyek grafik seperti tombol (button), kotak teks, slider,
menu dan lain - lain.
4. Matlab digunakan sebagai platform untuk menganalisis data dan
visualisasi yang dirancang untuk membuat manipulasi matriks sesedehana
mungkin.

Tanggal Asistensi Instruktur Laboratorium Nilai

Diyona Amelia
1618050

17
PRAKTIKUM PENGOLAHAN CITRA DIGITAL
PERTEMUAN : 3
NIM : 1718040
NAMA : Marvelina Gracia Hernoko
MATERI : 1. Operasi Titik Dan Aritmatika
TUGAS : 1. Perhitungan
2. Membuat Gui Operasi Aritmatika

3. Operasi Titik & Aritmatika Pada Pengolahan Citra


Citra digital direpresentasikan dengan matriks. Operasi pada citra digital pada
dasarnya adalah memanipulasi elemen-elemen matriks.

A. Operasi Titik
Operasi titik, yaitu operasi yang dilakukan terhadap setiap piksel pada
citra yang keluarannya hanya ditentukan oleh nilai piksel itu sendiri.
1. Operasi Negasi atau Negatif
Operasi negatif bertujuan untuk mendapatkan citra negatif
dengan cara mengurangi nilai intensitas piksel dari nilai keabuan
maksimum. Secara umum persamaannya adalah sebagai berikut :
f (x,y)’ = 255 – f(x,y)
2. Operasi Clipping
Yang dimaksud operasi clipping adalah operasi pemotongan jika
nilai intensitas piksel hasil suatu operasi pengolahan citra terletak di
bawah nilai intensitas minimum atau di atas nilai intensitas
maksimum.

𝟐𝟓𝟓, 𝒇(𝒙, 𝒚) > 𝟐𝟓𝟓


𝑭(𝒙, 𝒚) = {𝒇(𝒙, 𝒚), 𝟎 ≤ 𝒇(𝒙, 𝒚) ≤ 𝟐𝟓𝟓
𝟎, (𝒙, 𝒚) < 𝟎 Source
B. Operasi Aritmatika
Image Arithmatic merupakan proses pengolahan citra dengan
memanfaatkan operator aritmatika terhadap dua atau lebih citra input.
Proses image arithmetic diterakan dengan melakukan pengolahan pixel
per pixel. Setiap pixel citra output tergantung dari nilai pixel citra input

18
pada posisi yang sama. Oleh sebab itu proses ini sebaiknya dilakukan
terhadap citra dengan ukuran dan resolusi yang sama.
1. Penjumlahan citra
Proses penjumlahan pixel sangat sederhana. Pixel citra hasil
merupakan hasil penjumlahan nilai pixel pada citra pertama dengan
nilai pixel citra kedua. Operasi ini disebut juga dengan blending.
Secara umum, persamaannya adalah sebagai berikut :
C(x,y) = A(x,y)*wa + B(x,y)*wb
C adalah citra baru yang intensitas tiap pikselnya adalah jumlah dari
intensitas tiap piksel pada matriks A dan matriks B.
2. Pengurangan Citra
Secara umum persamaannya adalah sebagai berikut :
C(x,y) = A(x,y) - B(x,y)
C adalah citra baru yang intensitas tiap pikselnya adalah selisih dari
intensitas tiap piksel pada matriks A dan matriks B.
3. Perkalian Citra
Perkalian citra A dengan scalar c akan menghasilkan citra
baru B yang intensitasnya lebih terang dari semula. Kenaikan
intensitas setiap piksel sebanding dengan c. Operasi perkalian citra
dengan scalar digunakan untuk kalibrasi kecerahan. Secara umum
persamaannya adalah sebagai berikut :
B(x,y) = A(x,y) * c
4. Pembagian Citra
Pembagian citra A dengan scalar c akan menghasilkan citra
baru B yang intensitasnya lebih gelap dari semula. Penurunan
intensitas setiap piksel berbanding terbalik dengan c. Operasi
pembagian citra dengan scalar digunakan untuk normalisasi
kecerahan. Secara umum persamaannya adalah sebagai berikut :
B(x,y) = A(x,y) / c

19
3.1 Langkah-langkah Membuat Tugas
1. Menghitung operasi aritmatika
a. Pengurangan
40 25 10 13 40 67 56 22
16 30 17 67 45 34 98 99
45 60 73 23 11 10 24 34
35 22 20 12 12 89 22 77
Citra A Citra B
Penyelesaian :
Fout(1,1) = 40-40 = 0 Fout(4,1)= 35- 12 =23
Fout(1,2 )= 25-67 = 0 Fout(4,2)= 22 -89 = 0
Fout(1,3) =10- 56 = 0 Fout(4,3)= 20- 22 = 0
Fout(1,4) =13- 22 = 0 Fout(4,4)= 12-77 = 0
Fout(2,1) = 16- 45 = 0 Fout(3,1)= 45- 11= 34
Fout(2,2) = 30- 34 = 0 Fout(3,2)= 60- 10= 50
Fout(2,3) = 17-98 = 0 Fout(3,3)=73-23 = 49
Fout(2,4) = 67-99 =0 Fout(3,4)= 23-34 = 0
Citra Hasil Pengurangan

0 0 0 0
0 0 0 0
34 50 49 0
23 0 0 0

b. Perkalian Skalar
5 6 10 11 18 Skalar = 6
12 15 16 32 6
7 8 42 34 9
19 35 8 59 16
82 54 22 78 32

Fout(1,1) = 5 * 6 = 30 Fout(2,1) = 12 * 6 = 72
Fout(1,2) = 6 * 6 = 36 Fout(2,2) = 15 * 6 = 90
Fout(1,3) = 10 * 6 = 60 Fout(2,3) = 16 * 6 = 96
Fout(1,4) = 11 * 6 = 66 Fout(2,4) = 32 * 6 = 192
Fout(1,5) = 18 * 6 = 108 Fout(2,5) = 6 * 6 = 36
Fout(3,1) = 7 * 6 = 42 Fout(4,1) = 19 * 6 = 114

20
Fout(3,2) = 8 * 6 = 48 Fout(4,2) = 35 * 6 = 210
Fout(3,3) = 42 * 6 = 252 Fout(4,3) = 8 * 6 = 48
Fout(3,4) = 34 * 6 = 204 Fout(4,4) = 59 * 6 = 255
Fout(3,5) = 9 * 6 = 54 Fout(4,5) = 16 * 6 = 96
Fout(5,1) = 85 * 6 = 255
Fout(5,2) = 54 * 6 = 255
Fout(5,3) = 78 * 6 = 255
Fout(5,4) = 22 * 6 = 132
Fout(5,5) = 32 * 6 = 192
Citra Hasil Perkalian Skalar

30 36 60 66 108
72 90 96 192 36
42 48 252 204 54
114 210 48 255 96
255 255 255 132 192

2. Membuat GUI Operasi Aritmatika


a. Pertama melalui Command Window Matlab ketikan : guide.

Gambar 3.6 Perintah guide


b. Lalu pilih Blank GUI (Default), dan klik OK

Gambar 3.7 Membuat GUI baru

21
c. Setelah itu buat GUI baru dengan 6 axes , 6 button , dan 6 static text.

Gambar 3.8 Membuat axes


d. Kemudian klik kanan pada button, setelah itu pilih view callbacks >
callback.

Gambar 3.9 Perintah callback


e. Masukkan script GUI pada button OPEN 1

function pushbutton1_Callback(hObject, eventdata,


handles)
open=guidata(gcbo);
[gambar,direktori]=uigetfile({'*.jpg;*.bmp;*.tif'},'ope
nimage');
M=imread(gambar);
set(open.figure1,'CurrentAxes',open.axes1);
set(imagesc(M));colormap('gray');
set(open.axes1,'Userdata',M);

f. Masukan script GUI pada button OPEN 2


function pushbutton2_Callback(hObject, eventdata,
handles)
open=guidata(gcbo);
[gambar,direktori]=uigetfile({'*.jpg;*.bmp;*.tif'},'ope
nimage');
G=imread(gambar);

22
set(open.figure1,'CurrentAxes',open.axes2);
set(imagesc(G));colormap('gray');
set(open.axes2,'Userdata',G);

g. Script clipping
function J = clipping(I)
for x = 1 : size(I)
for y = 1 : size(I)
if I(x,y) > 255
J(x,y) = 255;
elseif I(x,y) < 0
J(x,y) = 0;
else
J(x,y) = I(x,y);
end
end
end

h. Masukan script GUI pada button PENJUMLAHAN

open=guidata(gcbo);
H=get(open.axes1,'Userdata');
I=get(open.axes2,'Userdata');
wa = 0.7;
wb = 0.3;
[r1 c1] = size(H);
[r2 c2] = size(I);
if (r1==r2) && (c1==c2)
for x = 1:r1
for y = 1:c1
B(x,y) = H(x,y)*wa+I(x,y)*wb;
end
end
end
B = clipping(B);
set(open.figure1,'CurrentAxes',open.axes3);
set(imagesc(B));colormap('gray');
set(open.axes3,'Userdata',B);

i. Masukan script GUI pada button PENGURANGAN

open=guidata(gcbo);
G=get(open.axes1,'Userdata');
H=get(open.axes2,'Userdata');
[r1 c1] = size(G);
[r2 c2] = size(H);
if (r1==r2) && (c1==c2)
for x = 1:r1
for y = 1:c1
B(x,y) = G(x,y)-H(x,y);
end
end
end
B = clipping(B);
set(open.figure1,'CurrentAxes',open.axes4);

23
set(imagesc(B));colormap('gray');
set(open.axes4,'Userdata',B);

j. Masukan script GUI pada button PERKALIAN

H=get(open.axes2,'Userdata');
[r c] = size(H);
for x = 1:r
for y = 1:c
B(x,y) = H(x,y)*2;
end
end
B = clipping(B);
set(open.figure1,'CurrentAxes',open.axes5);
set(imagesc(B));colormap('gray');
set(open.axes5,'Userdata',B);

k. Masukan script GUI pada button PEMBAGIAN

open=guidata(gcbo);
H=get(open.axes2,'Userdata');
[r c] = size(H);
for x = 1: r
for y = 1 : c
B(x,y) = H(x,y)/2;
end
end
B = clipping(B);
set(open.figure1,'CurrentAxes',open.axes6);
set(imagesc(B));colormap('gray');
set(open.axes6,'Userdata',B);

Tampilan program

Gambar 3.10 Tampilan program

24
3.2 Alat dan Bahan
1. Laptop
2. Matlab 2015a
3. Modul Pengolahan Citra Digital 2018

3.3 Tujuan
1. Praktikan memahami operasi dasar dalam pengolahan citra digital
2. Praktikan memahami operasi titik dan aritmatika dalam pengolahan citra
digital
3. Praktikan dapat mengimplementasikan operasi dasar dalam GUI

3.4 Kesimpulan
1. Operasi titik, yaitu operasi yang dilakukan terhadap setiap piksel pada citra
yang keluarannya hanya ditentukan oleh nilai piksel itu sendiri
2. Image Arithmatic merupakan proses pengolahan citra dengan
memanfaatkan operator aritmatika terhadap dua atau lebih citra input
3. Operasi titik ada operasi negasi dan clipping , dan operasi aritmatika ada
penjumlahan, pengurangan, perkalian , dan pembagian.

Tanggal Asistensi Instruktur Laboratorium Nilai

Diyona Amelia
1618050

25
PRAKTIKUM PENGOLAHAN CITRA DIGITAL
PERTEMUAN : 4
NIM : 1718040
NAMA : Marvelina Gracia Hernoko
MATERI : 1. Operasi Boolean dan Operasi Geometrik Pengolahan
Citra
TUGAS : 1. Perhitungan Operasi Translasi dan Scalling
2. Membuat GUI

4. Macam- macam operasi pengolahan citra


A. Operasi Boolean
Selain operasi aritmatika, pemrosesan citra digital juga melibatkan operasi
Boolean. Operasi Boolean pada citra terbagi menjadi 3, yaitu And, Or, dan
Xor.

1. Operasi AND
Tabel 4.1 Operasi AND
A B A and B
0 0 0
0 1 0
1 0 0
1 1 1

Gambar 4.1 Operasi AND pada citra


2. Operasi OR
Tabel 4.2 Operasi OR
A B A or B
0 0 0
0 1 1
1 0 1
1 1 1

26
Gambar 4.2 Operasi OR pada citra
3. Operasi XOR
Tabel 4.4 Operasi XOR
A B A or B
0 0 0
0 1 1
1 0 1
1 1 0

Gambar 4.3 Operasi XOR pada citra


B. Operasi Geometrik
Operasi Geometrik adalah operasi pada citra yang dilakukan secara
geometris seperti translasi, rotasi dan penyekalaan.
1. Operasi Translasi
Rumus translasi citra :
x’ = x + Tx
y’ = y + Ty
Yang dalam hal ini Tx adalah besar pergeseran dalam arah x,
sedangkan Ty adalah besar pergeseran dalam arah y.

27
2. Operasi Cropping
Croping adalah cara untuk memotong suatu objek dengan
menyeleksi atau menentukan nilai pemotongan pada suatu citra di
bagian tertentu. Proses crop ini berfungsi untuk menghilangkan bagian
tertentu pada suatu citra. Sehingga dihasilkan citra yang sesuai dengan
keinginan user. Dengan menggunakan fungsi imcrop maka dapat
melakukan fungsi pemotongan pada sebuah citra.
3. Operasi Flipping
Flipping adalah operasi geometrik yang sama dengan pencerminan.
Ada dua macam flipping : horizontal dan vertical. Flipping vertikal
adalah pencerminan pada sumbu-X dari citra A menjadi citra B, yang
diberikan oleh :
x’ = 2xc – x+1
y’ = y
Flipping horizontal adalah pencerminan pada sumbu-Y dari citra A
menjadi citra B, yang diberikan oleh :
x’ = x
y’ = 2yc – y+1
4. Operasi Rotasi
Suatu citra dapat diputar dengan sudut 𝜃 seiring arah jarum jam atau
berlawanan arah jarum jam dengan pusat putaran pada koordinat (0,0).
Rumus rotasi pada citra :
x’ = Xp + (x – xp) * cos 𝜃 – (y – Yp) * sin 𝜃
y’ = Yp + (x – xp) * sin 𝜃 + (x – xp) * cos 𝜃
Yang dalam hal ini, Xp dan Yp merupakan titik pivot rotasi. Pivot yang
dimaksud adalah koordinat titik tengah dari citra.
5. Operasi Scalling
Penskalaan citra, disebut juga scalling, yaitu pengubahan ukuran
citra.
Rumus penskalaan citra :
x’ = ShX * x
y’ = ShY * y

28
Dalam hal ini, ShX dan ShY adalah factor skala masing-masing dalam
arah x dan arah y pada koordinat citra.

4.1 Langkah-langkah Membuat Tugas


1. Perhitungan Operasi Translasi dan Scalling
15 98 73 64 78
35 12 55 71 32
23 45 56 86 56
96 78 67 35 76
73 67 37 29 92

a. Translasi Tx = 9 Ty = 6
Fout (1,1) = (1 + 9),(1 + 6) = (10,7) Fout (4,1) = (4 + 9),(1 + 6) = (13,7)
Fout (1,2) = (1 + 9),(2 + 6) = (10,8) Fout (4,2) = (4 + 9),(2 + 6) = (13,8)
Fout (1,3) = (1 + 9),(3 + 6) = (10,9) Fout (4,3) = (4 + 9),(3 + 6) = (13,9)
Fout (1,4) = (1 + 9),(4 + 6) = (10,10) Fout (4,4) = (4 + 9),(4 + 6) = (13,10)
Fout (1,5) = (1 + 9),(5 + 6) = (10,11) Fout (4,5) = (4 + 9),(5 + 6) = (13,11)
Fout (2,1) = (2 + 9),(1 + 6) = (11,7) Fout (5,1) = (5 + 9),(1 + 6) = (14,7)
Fout (2,2) = (2 + 9),(2 + 6) = (11,8) Fout (5,2) = (5 + 9),(2 + 6) = (14,8)
Fout (2,3) = (2 + 9),(3 + 6) = (11,9) Fout (5,3) = (5 + 9),(3 + 6) = (14,9)
Fout (2,4) = (2 + 9),(4 + 6) = (11,10) Fout (5,4) = (5 + 9),(4 + 6) = (14,10)
Fout (2,5) = (2 + 9),(5 + 6) = (11,11) Fout (5,5) = (5 + 9),(5 + 6) = (14,11)
Fout (3,1) = (3 + 9),(1 + 6) = (12,7)
Fout (3,2) = (3 + 9),(2 + 6) = (12,8)
Fout (3,3) = (3 + 9),(3 + 6) = (12,9)
Fout (3,4) = (3 + 9),(4 + 6) = (12,10)
Fout (3,5) = (3 + 9),(5 + 6) = (12,11)

29
Citra Hasil Translasi

15 98 73 64 78
35 12 55 71 32
23 45 56 86 56
96 78 67 35 76
73 67 37 29 92

b. Scalling Shx = 6, Shy = 4


Fout (1,1) = (1 * 6),(1 * 4) = (6,4) Fout (4,1) = (4 * 6),(1 * 4) = (20,4)
Fout (1,2) = (1 * 6),(2 * 4) = (6,8) Fout (4,2) = (4 * 6),(2 * 4) = (20,8)
Fout (1,3) = (1 * 6),(3 * 4) = (6,12) Fout (4,3) = (4 * 6),(3 * 4) = (20,12)
Fout (1,4) = (1 * 6),(4 * 4) = (6,16) Fout (4,4) = (4 * 6),(4 * 4) = (20,16)
Fout (1,5) = (1 * 6),(5 * 4) = (6,20) Fout (4,5) = (4 * 6),(5 * 4) = (20,20)
Fout (2,1) = (2 * 6),(1 * 4) = (12,4) Fout (5,1) = (5 * 6),(1 * 4) = (30,4)
Fout (2,2) = (2 * 6),(2 * 4) = (12,8) Fout (5,2) = (5 * 6),(2 * 4) = (30,8)
Fout (2,3) = (2 * 6),(3 * 4) = (12,12) Fout (5,3) = (5 * 6),(3 * 4) = (30,12)
Fout (2,4) = (2 * 6),(4 * 4) = (12,16) Fout (5,4) = (5 * 6),(4 * 4) = (30,16)
Fout (2,5) = (2 * 6),(5 * 4) = (12,20) Fout (5,5)= (5 * 6),(5 * 4) = (30,20)
Fout (3,1) = (3 * 6),(1 * 4) = (18,4)
Fout (3,2) = (3 * 6),(2 * 4) = (18,8)
Fout (3,3) = (3 * 6),(3 * 4) = (18,12)
Fout (3,4) = (3 * 6),(4 * 4) = (18,16)
Fout (3,5) = (3 * 6),(5 * 4) = (18,20)

30
Citra Hasil Scalling

15 15 15 15 98 98 98 98 73 73 73 73 64 64 64 64 78 78 78 78
15 15 15 15 98 98 98 98 73 73 73 73 64 64 64 64 78 78 78 78
15 15 15 15 98 98 98 98 73 73 73 73 64 64 64 64 78 78 78 78
15 15 15 15 98 98 98 98 73 73 73 73 64 64 64 64 78 78 78 78
15 15 15 15 98 98 98 98 73 73 73 73 64 64 64 64 78 78 78 78
15 15 15 15 98 98 98 98 73 73 73 73 64 64 64 64 78 78 78 78

2. Membuat GUI Operasi Geometrik


a. Pertama melalui Command Window Matlab ketikan : guide.

Gambar 4.4 Perintah guide


b. Lalu pilih Blank GUI (Default), dan klik OK

Gambar 4.5 Membuat GUI baru

31
c. Setelah itu buat GUI baru dengan 6 axes , 6 button , dan 6 static text.

Gambar 4.6 Membuat axes


d. Kemudian klik kanan pada button, setelah itu pilih view callbacks >
callback.

Gambar 4.7 Perintah callback


e. Masukkan script GUI pada button OPEN

function pushbutton1_Callback(hObject, eventdata,


handles)
open=guidata(gcbo);
[gambar,direktori]=uigetfile({'*.jpg;*.bmp;*.tif'},'op
enimage');
A=imread(gambar);
set(open.figure1,'CurrentAxes',open.axes1);
set(imagesc(A));colormap('gray');
set(open.axes1,'Userdata',A);

f. Masukan script GUI pada button TRANSLASI

open=guidata(gcbo);
A = get(open.axes1,'Userdata');
Tx = 100;
Ty = 50;

32
[r c] = size(A);
for x = 1:r
for y = 1:c
B(x+Tx,y+Ty) = A(x,y);
end
end
handles.gambar = B;
set(open.figure1,'CurrentAxes', open.axes2);
set(imagesc(B));
set(open.axes2, 'userdata', B);

g. Masukan script GUI pada button CROPPING

function pushbutton3_Callback(hObject, eventdata,


handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
C = imcrop(A,[100 50 100 50]);
set(open.figure1,'CurrentAxes', open.axes3);
set(imagesc(C));
set(open.axes3, 'userdata', C);

h. Masukan script GUI pada button FLIPPING

function pushbutton4_Callback(hObject, eventdata,


handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
[r c] = size(A);
xc = floor(r/2);
for x = 1:r
for y = 1:c
J(x,y) = A((2*xc)-x+1,y);
end
end
set(open.figure1,'CurrentAxes', open.axes4);
set(imagesc(J));
set(open.axes4, 'userdata', J);

i. Masukan script GUI pada button ROTASI

function pushbutton5_Callback(hObject, eventdata,


handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
theta = 30;
distorted = imrotate(A,theta);
set(open.figure1,'CurrentAxes', open.axes5);
set(imagesc(distorted));
set(open.axes5, 'userdata', distorted);

33
j. Masukan script GUI pada button SCALLING
function pushbutton6_Callback(hObject, eventdata,
handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
Shx = 3;
Shy = 1;
b = size(A,1);
c = size(A,2);
r = b*Shx;
s = c*Shy;
for x = 1:b
for y = 1:c
D((x-1)*Shx+1 : x*Shx, (y-1)*Shy+1 : y*Shy) =
A(x,y);
end
end
set(open.figure1,'CurrentAxes', open.axes6);
set(imagesc(D));
set(open.axes6, 'userdata', D);

Tampilan hasil :

Gambar 4.8 Tampilan GUI

4.2 Alat dan Bahan


1. Laptop
2. Matlab 2015a
3. Modul Pengolahan Citra Digital 2018

4.3 Tujuan
1. Pratikan dapat memahami Operasi Boolean pada pengolahan citra digital
2. Pratikan dapat memahami Operasi Geometrik pada pengolahan citra digital

34
3. Pratikan dapat melakukan implementasi Operasi Boolean dan Operasi
Geometrik berbasis GUI dalam matlab

4.4 Kesimpulan
1. Selain operasi aritmatika, pemrosesan citra digital juga melibatkan operasi
Boolean. Operasi Boolean pada citra terbagi menjadi 3, yaitu And, Or, dan
Xor.
2. Operasi Geometrik adalah operasi pada citra yang dilakukan secara
geometris seperti translasi, rotasi dan penyekalaan.
3. Croping adalah cara untuk memotong suatu objek dengan menyeleksi atau
menentukan nilai pemotongan pada suatu citra di bagian tertentu. Proses
crop ini berfungsi untuk menghilangkan bagian tertentu pada suatu citra.
4. Flipping adalah operasi geometrik yang sama dengan pencerminan. Ada dua
macam flipping : horizontal dan vertical.
5. Suatu citra dapat diputar dengan sudut 𝜃 seiring arah jarum jam atau
berlawanan arah jarum jam dengan pusat putaran pada koordinat (0,0).

6. Penskalaan citra, disebut juga scalling, yaitu pengubahan ukuran citra.

Tanggal Asistensi Instruktur Laboratorium Nilai

Diyona Amelia
1618050

35
PRAKTIKUM PENGOLAHAN CITRA DIGITAL
PERTEMUAN : 5
NIM : 1718040
NAMA : Marvelina Gracia Hernoko
MATERI : 1. Operasi Konvulusi & Segmentasi Citra
TUGAS : 1. Perhitungan Konvolusi
2. Membuat GUI

5. Operasi Konvulusi & Segmentasi Citra


A. Konvolusi
Konvolusi merupakan operasi yang mendasar dalam pengolahan
citra. Konvolusi dua buah fungsi f(x) dan g(x) didefinisikan sebagai
berikut :

Yang dalam hal ini, tanda * menyatakan operator konvolusi dan


variabel a adalah variabel bantu. Untuk fungsi diskrit, konvolusi
didefinisikan sebagai:

1. Algoritma
Ukuran matriks kernel biasanya lebih kecil dari ukuran matriks citra.
Sebagai contoh misalkan terdapat sebuah matriks f(x,y) dan sebuah
kernel g(x,y) sebagai berikut:
5 3 3 0 4 1 3 1
4 2 1 3 4 5 2 7
6 3 0 1 6 4 0 2
7 4 0 1 6
7 4 5 1 0

Matriks f(x,y) Kernel g(x,y)

36
Algoritma atau langkah-langkah untuk melakukan konvolusi
terhadap matriks f(x,y) adalah sebagai berikut :
a. Memutar convolution kernel 180 derajat.
1 3 1 -2 0 4
5 2 7 Rotasi 180° 7 2 5
4 0 -2 1 3 1

b. Menentukan piksel tengah.


Pertama-tama harus menentukan piksel tengah. Piksel tengah
didefinisikan sebagai floor((size(h)+1)/2). Sebagai contoh dalam
sebuah molekul berukuran 2×3, maka piksel tengah adalah (2).
5 3 3 0 4
4 2 1 3 4
6 3 0 1 6
7 4 0 1 6
7 4 5 1 0
c. Nilai dari piksel yang ditentukan dalam matriks keluaran B dihitung
dengan piksel pada matriks f(x,y). Kita dapat menggambarkan hal
ini dengan menumpuk h pada f(x,y), dengan piksel tengah h
menimpa piksel yang akan dihitung pada f(x,y). Kemudian kita
mengalikan setiap elemen dari h dengan piksel pada f(x,y) dan
kemudian menjumlahkan hasilnya.

Gambar 5.1 Ilustrasi proses konvolusi pada elemen piksel (3,3)


Terlihat ada enam piksel yang tertutupi oleh h, untuk setiap
piksel-piksel ini, kalikan nilai dari piksel tersebut dengan nilai pada
h. Jumlahkan hasilnya, lalu letakkan penjumlahan ini pada B(3,5).
B(3,3) = (5*-2) + (3*0) + (3*4) + (4*7) + (2*2) + (1*5) + (6*1) +
(3*3) + (0*1) = 54
Lakukan hal tersebut diatas untuk setiap piksel pada matriks f(x,y)
untuk menghasilkan setiap piksel yang berkorespondensi pada
matriks f(x,y).

37
2. Proses Padding Pada Batas Citra
Ketika kita menerapkan filter pada piksel-piksel yang berada
pada pinggir sebuah citra, beberapa elemen dari computational
molecule tidak dapat menimpa piksel citra. Sebagai contoh jika
molekul berukuran 3×3 dan kita sedang menghitung untuk piksel pada
ujung kiri atas dari citra, beberapa elemen pada molekul berada diluar
batas citra, seperti terlihat pada gambar 5.2 berikut ini.

Gambar 5.2 Permasalahan padding pada batas citra


Untuk menghitung kondisi seperti di atas, proses konvolusi
menerapkan suatu metode yang disebut dengan zero padding. Zero
padding mengasumsikan bahwa piksel-piksel yang tidak dapat
tertimpa oleh computational molecule bernilai nol.

Gambar 5.3 Ilustrasi penerapan zero padding

Gambar 5.4 (a) Citra sebelum dilakukan konvolusi, (b)


Hasil konvolusi dengan kernel 3×3

38
B. Segementasi Citra
Segmentasi citra merupakan proses yang ditujukan untuk
mendapatkan objek yang terkandung di dalam citra atau membagi ke
dalam beberapa daerah dengan setiap objek atau daerah memiliki
kemiripan atribut. Pada citra yang mengandung hanya satu objek, objek
dibedakan dari latar belakangnya.
1. Pengambangan
Operasi pengambangan (thresholding) adalah operasi memetakan
nilai intensitas piksel ke salah satu dari dua nilai, a1 atau a2,
berdasarkan nilai ambang (threshold) T.

Gambar 5.5 Operasi pengambangan pada citra

5.1 Langkah-langkah Membuat Tugas


1. Menghitung

40 12 62 71 34
64
56 24 11 30 26 22 6 0 4
78 22 20 81 29 87 7 2 5
93 68 10 21 31 45 1 3 1
67 72 82 52 49 63 Kernel g(x,y)
28 11 90 48 76 27

39
Fout 2.2 = (40.6) + (12.0) + (62.4) Fout 4.2 = (78.6) + (22.0) + (20.4)
+ (56.7) + (24.2) + (11.5) + (78.1) + (93.7) + (68.2) + (10.5) + (67.1)
+ (22.3) + (20.1) = 1147 = 255 + (72.3) + (82.1) = 1750 = 255

Fout 2.3 = (12.6) + (62.0) + (71.4) Fout 4.3 = (22.6) + (20.0) + (81.4)
+ (24.7) + (11.2) + (30.5) + (22.1) + (68.7) + (10.2) + (21.5) + (72.1)
+ (20.3) + (81.1) = 859 = 255 + (82.3) + (52.1) = 1427 = 255

Fout 2.4 = (62.6) + (71.0) + (34.4) Fout 4.4 = (20.6) + (82.0) + (29.4)
+ (11.7) + (30.2) + (26.5) + (20.1) + (10.7) + (21.2) + (31.5) + (82.1)
+ (81.3) + (29.1) = 1067 = 255 + (52.3) + (49.1) = 790 = 255

Fout 2.5 = (71.6) + (34.0) + (64.4) Fout 4.5 = (81.6) + (29.0) + (87.4)
+ (30.7) + (26.2) + (22.5) + (81.1) + (21.7) + (31.2) + (45.5) + (52.1)
+ (29.3) + (87.1) = 1309 = 255 + (49.3) + (63.1) = 1530 = 255

Fout 3.2 = (56.6) + (24.0) + (11.4) Fout 5.2 = (93.6) + (68.0) + (10.4)
+ (78.7) + (22.2) + (20.5) + (93.1) + (67.7) + (72.2) + (82.5) + (28.1)
+ (68.3) + (10.1) = 1355 = 255 + (11.3) + (90.1) = 1772 = 255
Fout 5.3 = (68.6) + (10.0) + (21.4)
Fout 3.3 = (24.6) + (11.0) + (30.4) + (72.7) + (82.2) + (52.5) + (11.1)
+ (22.7) + (20.2) + (81.5) + (68.1) + (90.3) + (48.1) = 1609 = 255
+ (10.3) + (21.1) = 982 = 255
Fout 5.4 = (10.6) + (21.0) + (31.4)
Fout 3.4 = (11.6) + (30.0) + (26.4) + (82.7) + (52.2) + (49.5) + (90.1)
+ (20.7) + (81.2) + (29.5) + (10.1) + (48.3) + (76.1) = 1417 = 255
+ (21.3) + (31.1) = 721 = 255
Fout 5.5 = (21.6) + (31.0) + (45.4)
Fout 3.5 = (30.6) + (26.0) + (22.4) + (52.7) + (49.2) + (63.5) + (48.1)
+ (81.7) + (29.2) + (87.5) + (21.1) + (76.3) + (27.1) = 1386 = 255
+ (31.3) + (45.1) = 1487 = 255

Citra Hasil :

40 12 62 71 34 64
56 255 255 255 255 22
78 255 255 255 255 87
93 255 255 255 255 45
67 255 255 255 255 63
28 11 90 48 76 27

40
Perkalian
40 89 86 99 -1 0 1
46 37 98 12 -1 1 1
84 60 65 75 -1 0 1
90 98 34 21
Citra A Kernel
Penyelesaian :
Fout(1,1)=( 0 *-1 ) + (0 * 0) + (0 * 1) Fout(2,1)=( 0 *-1 ) + (40 * 0) + (89
+ (0 * -1) + (40 * 1) + (89 * 1) + (0 * - * 1) + (0 * -1) + (46 * 1) + (37 * 1)
1) + (46 * 0) + ( 37* 1) = 166 + (0 * -1) + (84 * 0) + (60 * 1) = 232
Fout(1,2)=( 0 *-1 ) + (0 * 0) + (0 * 1) Fout(2,2)=( 40 *-1 ) + (89 * 0) + (86
+ (40 * -1) + (89 * 1) + (86 * 1) + (46 * 1) + (46 * -1) + (37 * 1) + (98 * 1)
* -1) + (37 * 0) + (98 * 1) = 187 + (84 * -1) + (60 * 0) + (65 * 1) =
Fout(1,3)=(0 *-1 ) + (0 * 0) + (0 * 1) + 116
(89 * -1) + (86 * 1) + (99 * 1) + (* -1) Fout(2,3)=( 89 * -1 ) + (86 * 0) + (99
+ (* 0) + (* 1) =71 * 1) + (37 * -1) + (98 * 1) + (12 * 1)
Fout(1,4)=( 0*-1 ) + (0 * 0) + (0 * 1) + + (60 * -1) + (65 * 0) + (75 * 1) = 98
(86 * -1) + (99 * 1) + (0 * 1) + (98 * - Fout(2,4)=( 86 *-1 ) + (90 * 0) + (0
1) + (12 * 0) + (0 * 1) = 0 * 1) + (98 * -1) + (12 * 1) + (0 * 1)
+ (65 * -1) + (75 * 0) + (0 * 1) = 0
Fout(3,1)=(0 *-1 ) + (46 * 0) + (37 * 1) Fout(4,1)=(0 *-1 ) + (84 * 0) + (60 *
+ (0 * -1) + (84 * 1) + (60 * 1) + (0 * - 1) + (0 * -1) + (90 * 1) + (98 * 1) +
1) + (90 * 0) + (98 * 1) = 255 (0 * -1) + (0 * 0) + (0 * 1) = 248
Fout(3,2)=( 46 *-1 ) + (37 * 0) + (0 * Fout(4,2)=( 84 *-1 ) + ( 60 * 0) + (65
1) + (84 * -1) + (60 * 1) + (65 * 1) + * 1) + (90 * -1) + (98 * 1) + (34 * 1)
(90 * -1) + (98 * 0) + (34 * 1) = 37 + (10 * -1) + (0 * 0) + (0 * 1) = 23
Fout(3,3)=( 37 *-1 ) + (98 * 0) + (12 * Fout(4,3)=( 60 *-1 ) + (65 * 0) + (75
1) + (60 * -1) + (65 * 1) + (75 * 1) + * 1) + (98 * -1) + (34 * 1) + (21 * 1)
(98 * -1) + (34 * 0) + (12 * 1) =0 + (0 * -1) + ( 0* 0) + (0 * 1) = 17
Fout(3,4)=( 98 *-1 ) + (12 * 0) + (0 * Fout(4,4)=(65 *-1 ) + (75 * 0) + (0 *
1) + (65 * -1) + (75 * 1) + (0 * 1) + (34 1) + (34 * -1) + (21 * 1) + (0 * 1) +
* -1) + (21 * 0) + (0 * 1) = 0 (0 * -1) + (0 * 0) + (0 * 1) = 0

41
Citra Hasil Perkalian

166 187 71 0
232 116 98 0
255 37 0 0
248 23 17 0

2. Membuat GUI
a. Pertama melalui Command Window Matlab ketikan : guide.

Gambar 5.6 Perintah guide


b. Lalu pilih Blank GUI (Default), dan klik OK

Gambar 5.7 Membuat GUI baru

c. Setelah itu buat GUI baru dengan 3 axes , 3 button , dan 3 static
text.

Gambar 5.8 membuat axes

42
d. Kemudian klik kanan pada button, setelah itu pilih view callbacks
> callback.

Gambar 5.9 Perintah callback


e. Masukkan script GUI pada button OPEN

function pushbutton1_Callback(hObject, eventdata,


handles)
open=guidata(gcbo);
[gambar,direktori]=uigetfile({'*.jpg;*.bmp;*.tif'},
'openimage');
A=imread(gambar);
set(open.figure1,'CurrentAxes',open.axes1);
set(imagesc(A));colormap('gray');
set(open.axes1,'Userdata',A);

f. Masukkan script convolve

function B = padding(A, k);


[r c] = size(A);
[m n] = size(k);
center = floor((size(k)+1)/2);
left = center(2) - 1;
right = n - center(2);
top = center(1) - 1;
bottom = m - center(1);
Rep = zeros(r + top + bottom, c + left + right);
for x = 1 + top : r + top
for y = 1 + left : c + left
Rep(x,y) = A(x - top, y - left);
end
end
B = zeros(r , c);
for x = 1 : r
for y = 1 : c
for i = 1 : m
for j = 1 : n
q = x - 1;
w = y -1;

43
B(x, y) = B(x, y) + (Rep(i + q, j +
w) *k(i, j));
end
end
end
end

g. Masukan script GUI pada button ZERO PADDING

function pushbutton2_Callback(hObject, eventdata,


handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
k = ones(8)/9;
Hsl = convolve(A,k);
set(open.figure1,'CurrentAxes', open.axes2);
set(imagesc(Hsl));
set(open.axes2, 'userdata', Hsl);

h. Masukan script GUI pada button THRESHOLDING

function pushbutton3_Callback(hObject, eventdata,


handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
[r c] = size(A);
T = 128;
for x = 1:r
for y = 1:c
if A(x,y) >= T
G(x,y) = 255;
else
G(x,y) = 0;
end
end
end
set(open.figure1,'CurrentAxes', open.axes3);
set(imagesc(G));
set(open.axes3, 'userdata', G);

44
Tampilan Hasil

Gambar 5.9 Tampilan Hasil


5.2 Alat dan Bahan
1. Laptop
2. Matlab 2015a
3. Modul Pengolahan Citra Digital 2018
5.3 Tujuan
1. Pratikan dapat memahami Operasi Konvolusi pada pengolahan citra digital
2. Pratikan dapat memahami Segmentasi Citra pada pengolahan citra digital
3. Pratikan dapat melakukan implementasi Operasi Konvolusi dan
Segmentasi Citra berbasis GUI dalam matlab

5.4 Kesimpulan
1. Konvolusi merupakan operasi yang mendasar dalam pengolahan citra.
2. Segmentasi citra merupakan proses yang ditujukan untuk mendapatkan
objek yang terkandung di dalam citra atau membagi ke dalam beberapa
daerah dengan setiap objek atau daerah memiliki kemiripan atribut.
3. Pada citra yang mengandung hanya satu objek, objek dibedakan dari latar
belakangnya.
4. Operasi pengambangan (thresholding) adalah operasi memetakan nilai
intensitas piksel ke salah satu dari dua nilai.

Tanggal Asistensi Instruktur Laboratorium Nilai

Diyona Amelia
1618050

45
PRAKTIKUM PENGOLAHAN CITRA DIGITAL
PERTEMUAN : 6
NIM : 1718040
NAMA : Marvelina Gracia Hernoko
MATERI : 1. Filter Spasial Non-Linier
TUGAS : 1. Perhitungan Low Pass Filter 3x3
2. GUI Program

6. Filter Spasial Non-Linier


Filtering pada pengolahan citra biasa disebut dengan spasial filtering. Pada
proses filtering, nilai piksel baru umumnya dihitung berdasarkan piksel
tetangga (neighborhood). Proses-proses yang termasuk ke dalam filter spasial
citra adalah pelembutan citra (image smoothing) dan penajaman citra (image
sharphening).

A. Pelembutan Citra
Pelembutan citra bertujuan untuk menekan gangguan (noise) pada
citra. Gangguan tersebut biasanya muncul sebagai akibat dari hasil
penerokan yang tidak bagus. Gangguan pada citra umumnya berupa variasi
intensitas suatu piksel yang tidak berkorelasi dengan piksel-piksel
tetangganya. Secara visual, gangguan mudah dilihat oleh mata karena
tampak berbeda dengan piksel tetangganya.
Piksel yang mengalami gangguan umumnya memiliki frekuensi
tinggi. Komponen citra yang berfrekuensi rendah umumnya mempunyai
nilai piksel konstan atau berubah sangat lambat. Operasi pelembutan citra
dilakukan untuk menekan komponen berfrekuensi tinggi dan meloloskan
komponen berfrekuensi rendah.

46
Gambar 6.1 Citra yang mengalami gangguan (noise)
B. Low Pass Filter
Low pass filter atau filter lolos rendah adalah filter dengan sifat dapat
meloloskan bagian berfrekuensi rendah dan menghilangkan yang
berfrekuensi tinggi. Efek filter ini membuat perubahan aras keabuan
menjadi lembut. Filter ini berguna untuk menghaluskan derau atau untuk
kepengtingan interpolasi tepi objek dalam citra.
Pada prinsipnya, filter yang digunakan dalam filter linear adalah
neighborhood
averaging merupakan salah satu jenis low-pass filter, yang bekerja dengan
cara mengganti nilai suatu piksel pada citra asal dengan nilai rata-rata dari
piksel tersebut dan lingkungan tetangganya.
Filter rata-rata adalah salah satu Filter lolos rendah yang paling
sederhana. Aturan untuk Filter lolos rendah adalah :
a. Semua koefisien filter harus positif
b. Jumlah semua koefisian harus sama dengan satu
Rumus filter rata – rata (Low Pass Filter) :

Keterangan :
m x n = ukuran matrik filter
m = kolom
n = baris

47
Gambar 6.2 (a) Citra yang mengandung noise, (b) Hasil pelembutan dengan
kernel 3×3
C. High Pass Filter
High Pass Filter atau filter lolos tinggi adalah filter yang ditujukan untuk
melewatkan frekuensi tinggi dan menghalangi yang berfrekuensi rendah. Hal
ini biasa digunakan untuk mendapatkan tepi objek dalam citra atau
menajamkan citra.
a. Penjaman Citra (image sharpenning)
Inti dari penajaman (sharpening) citra adalah memperjelas tepi pada
objek di dalam citra. Penajaman citra merupakan kebalikan dari operasi
pelembutan citra karena operasi ini menghilangkan bagian citra yang
lembut. Metode atau filtering yang digunakan adalah high-pass filtering.
Karena penajaman citra lebih berpengaruh pada tepi (edge) objek,
maka penajaman citra sering disebut juga penajaman tepi (edge
sharpening) atau peningkatan kualitas tepi (edge enhancement).

Gambar 6.3 (a) Citra sebelum dikenai operasi penajaman, (b) Citra setelah dikenai
operasi penajaman

48
Filter pada operasi penajaman citra disebut filter lolos tinggi. Aturan dari
filter lolos tinggi adalah sebagai berikut:
a. Koefisien boleh positif, negatif, atau nol
Rumus filter rata – rata (High Pass Filter) :

Keterangan :
m x n = ukuran matrik filter
m = kolom
n = baris

Gambar 6.4 (a) Citra ‘cameraman.tif’ sebelum dikenai operasi penajaman, (b)
Citra setelah dikenai penajaman
D. Filter Non-Linier
a. Filter Median
Filter median sangat bermanfaat untuk menghilangkan outliers,
yaitu nilainilai piksel yang ekstrim. Filter median menggunakan sliding
neighborhood untuk memproses suatu citra, yaitu suatu operasi dimana
filter ini akan menentukan nilai masing-masing piksel keluaran dengan
memeriksa tetangga m×n di sekitar piksel masukan yang bersangkutan.
Filter median mengatur nilai-nilai piksel dalam satu tetangga dan memilih
nilai tengah atau median sebagai hasil.
Median filter merupakan salah satu jenis low-pass filter, yang
bekerja dengan mengganti nilai suatu piksel pada citra asal dengan nilai
median dari piksel tersebut dan lingkungan tetangganya. Dibandingkan

49
dengan neighborhood averaging, filter ini lebih tidak sensitif terhadap
perbedaan intensitas yang ekstrim.
Pada filter median, suatu ‘jendela’ (window) memuat sejumlah
piksel. Jendela digeser titik demi titik pada seluruh daerah citra. Pada setiap
pergeseran dibuat jendela baru. Titik tengah dari jendela ini diubah dengan
nilai median dari jendela tersebut.

Gambar 6.5 Piksel bernilai 35 terkena derau


Sebagai contoh, tinjau jendela berupa kelompok piksel (daerah
berwarna biru cerah) pada sebuah citra pada gambar di atas. Piksel yang
sedang diproses adalah yang mempunyai intensitas 35.
10 10 10 11 35 10 9 12 10
Urutkan piksel – piksel tersebut.
9 10 10 10 10 10 11 12 35

Gambar 6.6 (a) Citra yang mengandung noise, (b) Hasil pelembutan dengan
median filtering

6.1 Langkah-langkah Membuat Tugas


a. Perhitungan Low Pass Filter 3x3
40 10 40 20 40
46 40 99 87 20
35 53 14 45 45
10 27 26 15 35
30 20 49 20 53

50
Penyelesaian
1⁄ 1⁄ 1⁄
9 9 9
1 1 1 1 1 1 1 1⁄
𝐺(𝑥, 𝑦) = [1 1 1] = ⁄ ⁄9
3.3 9 9 9
1 1 1 1 1 1⁄
[ ⁄9 ⁄9 9]
𝑓𝑜𝑢𝑡(2,2) = 𝑔(𝑥, 𝑦) 𝑥 𝐴 (𝑥, 𝑦)
1⁄ 1⁄ 1⁄
9 9 9 40 10 40
= 1⁄ 1⁄ 1⁄ 𝑥 [46 40 99]
9 9 9
1 1 1 35 53 14
[ ⁄9 ⁄9 ⁄9]
1
= 9 (40 10 40 46 40 99 35 53 14)
40 10 40 46 40 99 35 53 14
= + + + + + + + +
9 9 9 9 9 9 9 9 9
377
= = 42
9

𝑓𝑜𝑢𝑡(2,3) = 𝑔(𝑥, 𝑦) 𝑥 𝐴 (𝑥, 𝑦)


1⁄ 1⁄ 1⁄
9 9 9 10 40 20
= 1⁄ 1⁄ 1⁄ 𝑥 [40 99 87]
9 9 9
1 1 1 53 14 45
[ ⁄9 ⁄9 ⁄9]
1
= 9 (10 40 20 40 99 87 53 14 45)
10 40 20 40 99 87 53 14 45
= + + + + + + + +
9 9 9 9 9 9 9 9 9
408
= = 45
9

𝑓𝑜𝑢𝑡(2,4) = 𝑔(𝑥, 𝑦) 𝑥 𝐴 (𝑥, 𝑦)


1⁄ 1⁄ 1⁄
9 9 9 40 20 40
= 1⁄ 1⁄ 1⁄ 𝑥 [99 87 20]
9 9 9
1 1 1 14 45 45
[ ⁄9 ⁄9 ⁄9]
1
= 9 (40 20 40 99 87 20 14 45 45)
40 20 40 99 87 20 14 45 45
= + + + + + + + +
9 9 9 9 9 9 9 9 9
410
= = 46
9

𝑓𝑜𝑢𝑡(3,2) = 𝑔(𝑥, 𝑦) 𝑥 𝐴 (𝑥, 𝑦)


1⁄ 1⁄ 1⁄
9 9 9 46 40 99
= 1⁄ 1⁄ 1⁄ 𝑥 [35 53 14]
9 9 9
1 1 1 10 27 26
[ ⁄9 ⁄9 ⁄9]
1
= 9 ( 46 40 99 35 53 14 10 27 26)

51
46 40 99 35 53 14 10 27 26
= + + + + + +9 + +
9 9 9 9 9 9 9 9
350
= = 39
9

𝑓𝑜𝑢𝑡(3,3) = 𝑔(𝑥, 𝑦) 𝑥 𝐴 (𝑥, 𝑦)


1⁄ 1⁄ 1⁄
9 9 9 40 99 87
= 1⁄ 1⁄ 1⁄ 𝑥 [53 14 45]
9 9 9
1 1 1 27 26 15
[ ⁄9 ⁄9 ⁄9]
1
= 9 ( 40 99 87 53 14 45 27 26 15)
40 99 87 53 14 45 27 26 15
= + + + + + + + +
9 9 9 9 9 9 9 9 9
391
= = 43
9

𝑓𝑜𝑢𝑡(3,4) = 𝑔(𝑥, 𝑦) 𝑥 𝐴 (𝑥, 𝑦)


1⁄ 1⁄ 1⁄
9 9 9 99 87 20
= 1⁄ 1⁄ 1⁄ 𝑥 [14 45 45]
9 9 9
1 1 1 26 15 35
[ ⁄9 ⁄9 ⁄9]
1
= 9 (99 87 20 14 45 45 26 15 35)
99 87 20 14 45 45 26 15 35
=9 + + + + + + + +
9 9 9 9 9 9 9 9
386
= = 43
9

𝑓𝑜𝑢𝑡(4,2) = 𝑔(𝑥, 𝑦) 𝑥 𝐴 (𝑥, 𝑦)


1⁄ 1⁄ 1⁄
9 9 9 35 53 14
= 1⁄ 1⁄ 1⁄ 𝑥 [10 27 26]
9 9 9
1 1 1 30 20 49
[ ⁄9 ⁄9 ⁄9]
1
= 9 ( 35 53 14 10 27 26 30 20 49)
35 53 14 10 27 26 30 20 49
=9 + + + + + + + +
9 9 9 9 9 9 9 9
264
= = 29
9

𝑓𝑜𝑢𝑡(4,3) = 𝑔(𝑥, 𝑦) 𝑥 𝐴 (𝑥, 𝑦)


1⁄ 1⁄ 1⁄
9 9 9 53 14 45
= 1⁄ 1⁄ 1⁄ 𝑥 [27 26 15]
9 9 9
1 1 1 20 49 20
[ ⁄9 ⁄9 ⁄9]
1
= 9 (53 14 45 27 26 15 20 49 20)
53 14 45 27 26 15 20 49 20
= + + + + + + + +
9 9 9 9 9 9 9 9 9

52
269
= = 30
9

𝑓𝑜𝑢𝑡(4,4) = 𝑔(𝑥, 𝑦) 𝑥 𝐴 (𝑥, 𝑦)


1⁄ 1⁄ 1⁄
9 9 9 14 45 45
= 1⁄ 1⁄ 1⁄ 𝑥 [26 15 35]
9 9 9
1 1 1 49 20 53
[ ⁄9 ⁄9 ⁄9]
1
= 9 (14 45 45 26 15 35 49 20 53)
14 45 45 26 15 35 49 20 53
=9 + + + + + + + +
9 9 9 9 9 9 9 9
302
= = 34
9

Citra Hasil Low Pass Filter


40 10 40 20 40
46 42 45 46 20
35 39 43 43 45
10 29 30 34 35
30 20 49 20 53

2. Membuat GUI
a. Pertama melalui Command Window Matlab ketikan : guide.

Gambar 6.7 Perintah guide


b. Lalu pilih Blank GUI (Default), dan klik OK

Gambar 6.8 Membuat GUI baru


c. Setelah itu buat GUI baru dengan 3 axes , 3 button , dan 3 static text.

53
Gambar 6.9 membuat axes
d. Kemudian klik kanan pada button, setelah itu pilih view callbacks >
callback.

Gambar 6.10 Perintah callback


e. Masukkan script GUI pada button OPEN
function pushbutton1_Callback(hObject, eventdata,
handles)
open=guidata(gcbo);
[gambar,direktori]=uigetfile({'*.jpg;*.bmp;*.tif'},'open
image');
A=imread(gambar);
set(open.figure1,'CurrentAxes',open.axes1);
set(imagesc(A));colormap('gray');
set(open.axes1,'Userdata',A);

f. Masukkan script HIGHPASS


function pushbutton2_Callback(hObject, eventdata,
handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
k = [-1 -1 -1; 1 9 -1; -1 -1 -1];
[r c] = size(A);
[m n] = size(k);
center = floor((size(k)+1)/2);
left = center(2) - 1;
right = n - center(2);
top = center(1) - 1;
bottom = m - center(1);
rep = zeros(r + top + bottom, c + left + right);
for x = 1 + top : r + top;
for y = 1 + left : c + left

54
rep(x,y) = A( x - top, y - left);
end
end
B = zeros(r,c);
for x = 1 : r
for y = 1 : c
for i = 1 : m
for j = 1 : n
q = x - 1;
w = y - 1;
B(x,y) = B(x,y) + (rep(i + q, j + w) *k(i,j));
end
end
end
end
set(open.figure1,'CurrentAxes', open.axes2);
set(imagesc(B));
set(open.axes2, 'userdata', B);

g. Masukan script GUI pada button MEDIAN


function pushbutton3_Callback(hObject, eventdata, handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
A = imnoise(A, 'salt & pepper', 0.01);
[r c] = size(A);
Rep = zeros(r + 2, c + 2);
for x = 2 : r + 1
for y = 2 : c + 1
Rep(x,y) = A(x - 1, y - 1);
end
end
Rep;
B = zeros(r, c);
for x = 1 : r
for y = 1 : c
for i = 1 : 3
for j = 1 : 3
q = x - 1;
w = y - 1;
array((i - 1) * 3 + j) = Rep(i + q, j + w);
end
end
B(x,y) = median(array(:));
end
end
set(open.figure1,'CurrentAxes', open.axes3);
set(imagesc(B));
set(open.axes3, 'userdata', B);

55
Tampilan Hasil

Gambar 6.10 Tampilan Hasil


6.2 Alat dan Bahan
1. Laptop
2. Matlab 2015a
3. Modul Pengolahan Citra Digital 2018
6.3 Tujuan
a. Pratikan dapat memahami Filter Spasial Non-Linier
b. Pratikan dapat memahami Pelembutan citra dan Low pass filter pada
pengolahan citra digital.
c. Pratikan dapat melakukan implementasi High Pass Filter dan Filter
median berbasis GUI dalam matlab.

56
6.4 Kesimpulan
1. Filtering pada pengolahan citra biasa disebut dengan spasial filtering.
2. Low pass filter atau filter lolos rendah adalah filter dengan sifat dapat
meloloskan bagian berfrekuensi rendah dan menghilangkan yang
berfrekuensi tinggi.
3. High Pass Filter atau filter lolos tinggi adalah filter yang ditujukan untuk
melewatkan frekuensi tinggi dan menghalangi yang berfrekuensi rendah.
4. Filter median sangat bermanfaat untuk menghilangkan outliers, yaitu
nilainilai piksel yang ekstrim

Tanggal Asistensi Instruktur Laboratorium Nilai

Diyona Amelia
1618050

57
PRAKTIKUM PENGOLAHAN CITRA DIGITAL
PERTEMUAN : 7
NIM : 1718040
NAMA : Marvelina Gracia Hernoko
MATERI : 1. Pendeteksian Tepi (Edge Detection)
TUGAS : 1. Perhitungan Operator Roberts, Prewit, Sobel.
2. Membuat GUI

7. Pendeteksian Tepi (Edge Detection)


Deteksi tepi berfungsi untuk memperoleh tepi objek. Deteksi tepi
memanfaatkan perubahan nilai intensitas yang drastic pada batas dua area.
Definisi tepi disini adalah “himpunan piksel yang terhubung yang terletak pada
batas dua area” (Gonzales & Woods, 2002). Perlu diketahui, tepi
sesungguhnya mengandung informasi sangat penting. Informasi yang
diperoleh dapat berupa bentuk maupun ukuran objek.

Deteksi tepi dibagi menjadi dua gologan. Golongan pertama disebut deteksi
tepi orde pertama, yang bekerja dengan menggunakan turunan atau differensial
orde pertama. Yang termasuk kelompok ini adalah operator Roberts, Prewitt,
Canny dan Sobel. Golongan kedua dinamakan deteksi tepi orde kedua, yang
menggunakan turunan orde kedua. Yang termasuk kelompok ini adalah
Laplacian of Gaussian (LoG).

A. Operator Gradien (Orde) Pertama


a. Operator Robert
Operator Robert adalah nama lain dari teknik differensial
yang sedang dikembangkan, yaitu differensial pada arah horisontal dan
differensial pada arah vertikal.
Operator Robert ini juga disamakan dengan teknik DPCM
(Differential Pulse Code Modulation). Operator Robert Cross
merupakan salah satu operator yang menggunakan jendela matrik 2x2,
operator ini melakukan perhitungan dengan mengambil arah diagonal
untuk melakukan perhitungan nilai gradiennya.
Rumus Operator Roberts :

58
(𝑥, 𝑦) = |𝑓(𝑥, 𝑦) − 𝑓(𝑥 + 1, 𝑦 + 1)| + |𝑓(𝑥 + 1, 𝑦 − 𝑓(𝑥, 𝑦 + 1)|
Bila ditulis dalam komponen gradient menjadi :
𝐺(𝑥, 𝑦) = |𝐺𝑥| + |𝐺𝑦|
Dimana Gx dan Gy dihitung menggunakan kernel konvulusi sebagai
berikut :
1 0 0 -1
0 -1 1 0
Gx Gy
b. Operator Prewitt
Metode Prewitt merupakan pengembangan metode robert dengan
menggunakan filter HPF yang diberi satu angka nol penyangga.
Metode ini mengambil prinsip dari fungsi laplacian yang dikenal
sebagai fungsi untuk membangkitkan HPF.

Rumus Operator Prewitt :


-1 0 1 1 1 1
Px = -1 0 1 Py = 0 0 0
-1 0 1 -1 -1 -1

𝑭(𝒙, 𝒚) = |𝑷𝒙| + |𝑷𝒚|


c. Operator Sobel
Metode Sobel merupakan pengembangan metode robert dengan
menggunakan filter HPF yang diberi satu angka nol penyangga.
Metode ini mengambil prinsip dari fungsi laplacian dan gaussian yang
dikenal sebagai fungsi untuk membangkitkan HPF. Kelebihan dari
metode sobel ini adalah kemampuan untuk mengurangi noise sebelum
melakukan perhitungan deteksi tepi.

Rumus Operator Sobel :


-1 0 1 1 2 1
Sx = -2 0 2 Sy = 0 0 0
-1 0 1 -1 -2 -1

(𝒙, 𝒚) = |s𝒙| + |s𝒚|

59
B. Operator Turunan Kedua
Operator turunan kedua disebut juga operator Laplace. Operator
Laplace mendeteksi lokasi tepi yang lebih akurat khususnya pada tepi yang
curam. Pada tepi yang curam, turunan keduanya memiliki persilangan nol
(zero-crossing), yaitu titik di mana terdapat pergantian tanda nilai turunan
kedua, sedangkan pada tepi yang landau tidak terdapat persilangan nol.
Persilangan nol merupakan lokasi tepi yang akurat.
a. Operator Laplacian
Operator laplacian merupakan contoh operator yang berdasarkan
pada turunan kedua. Operator ini bersifat omnidirectional, yakni
menebalkan bagian tepi di segala arah. Namun, operator laplacian
memiliki kelemahan, yakni peka terhadap derau, memberikan
ketebalan ganda, dan tidak mampu mendeteksi arah tepi (Gonzalez &
Woods, 2002).
1. Titik-titik tepi dilacak dengan cara menemukan titik perpotongan
dengan sumbu x oleh turunan kedua sehingga sering di sebut
sebagai zero crossing operator b.
2. Sangat sensitif terhadap noise yang terletak pada titik-titik tepi
dapat diatasi dengan Laplacian of Gaussian yang merupakan
kombinasi dari operator laplacian dengan operator Gaussian.
Rumus Operator Laplacian
(𝑥, 𝑦) = 4(𝑥, 𝑦) − [(𝑥 − 1, 𝑦) + (𝑥, 𝑦 − 1) + (𝑥, 𝑦 + 1)]

0 1 0 0 −1 0
[1 −4 1] [1 4 −1]
0 1 0 0 −1 0
−1 −1 −1 −2 1 −2 1 4 1
[−1 8 −1] [1 4 1] [4 −20 4]
−1 −1 −1 −2 1 −2 1 4 1

b. Operator Laplacian of Gaussian (LoG)


Deteksi tepi orde kedua yang makin kurang sensitive
terhadap derau adalah Laplacian of Gaussian (LoG). Hal ini
disebabkan penggunaan fungsi Gaussian yang memuluskan citra

60
dan berdampak terhadap pengurangan derau pada citra.
Akibatnya, operator mereduksi jumlah tepi yang salah terdeteksi
(Crane, 1997). Operator ini dapat dilakukan dengan cara :
1. Sebuah citra di konvolusi dengan operator gaussian,
kemudian hasilnya di konvolusi dengan operator laplacian.
2. Di konvolusi langsung dengan menggunakan operator
Laplacian of Gaussian.
Operator Laplacian of Gaussian diperoleh dari konvulusi
sebagai berikut : ℎ(𝑥, 𝑦) = [𝑔(𝑥, 𝑦) ∗ 𝑓(𝑥, 𝑦)]
Dimana :

Mask Konvulusi :
0 0 -1 0 0
0 -1 -2 -1 0
-1 -2 16 -2 -1
0 -1 -2 -1 0
0 0 -1 0 0

7.1 Langkah-langkah Membuat Tugas


1. Perhitungan Operator Roberts, Prewit, Sobel.
40 2 30 20 33
40 40 34 22 12
45 28 40 8 21
23 44 9 18 16
10 19 17 80 50
Penyelesaian :
a. Operator Roberts
40 2 30 20 33 0 1 0 0 -1
40 40 34 22 12 0 0 -1 1 0
45 28 40 8 21 0 Gx Gy
23 44 9 18 16 0
10 19 17 80 50 0
0 0 0 0 0 0

61
f(1,1) = Gx =(1.40)+(0.2)+(0.40)+(-1.40) = 0
Gy =(0.40)+(-1.2)+(1.40)+(0.40) = 38
f(1,1) = |0 | + |38 | = 38

f(1,2) = Gx =(1.2)+(0.30)+(0.40)+(-1.34) = 32
Gy =(0.2)+(-1.30)+(1.40)+(0.34) = 10
f(1,2) = |32 | + |10 | = 42

f(1,3) = Gx =(1.30)+(0.20)+(0.34)+(-1.22) = 8
Gy =(0.30)+(-1.20)+(1.34)+(0.22) = 14
f(1,3) = |8 | + |14 | = 22

f(1,4) = Gx =(1.20)+(0.33)+(0.22)+(-1.12) = 8
Gy =(0.20)+(-1.33)+(1.22)+(0.12) = 11
f(1,4) = | 8| + |11 | = 19

f(1,5) = Gx =(1.33)+(0.0)+(0.12)+(-1.0) = 33
Gy =(0.33)+(-1.0)+(1.12)+(0.0) = 12
f(1,5) = |33 | + |12 | = 45
f(2,1) = Gx =(1.40)+(0.40)+(0.45)+(-1.40) = 0
Gy =(0.40)+(-1.40)+(1.45)+(0.40) = 5
f(2,1) = |0 | + |5 | = 5

f(2,2) = Gx =(1.40)+(0.34)+(0.28)+(-1.40) = 0
Gy =(0.40)+(-1.34)+(1.28)+(0.40) = 6
f(2,2) = |0| + |6 | = 6

f(2,3) = Gx =(1.34)+(0.22)+(0.40)+(-1.8) = 26
Gy =(0.34)+(-1.22)+(1.40)+(0.8) = 18
f(2,3) = |26 | + |18 | = 44

f(2,4) = Gx =(1.22)+(0.12)+(0.8)+(-1.2) = 1

62
Gy =(0.22)+(-1.12)+(1.8)+(0.2) = 4
f(2,4) = |1 | + |4 | = 5

f(2,5) = Gx =(1.12)+(0.0)+(0.21)+(-1.0) = 12
Gy =(0.12)+(-1.0)+(1.21)+(0.0) = 21
f(2,5) = |12 | + |21 | = 33
f(3,1) = Gx =(1.45)+(0.28)+(0.23)+(-1.44) = 1
Gy =(0.45)+(-1.28)+(1.23)+(0.44) = 5
f(3,1) = |1| + |5 | = 6

f(3,2) = Gx =(1.28)+(0.40)+(0.44)+(-1.9) = 19
Gy =(0.28)+(-1.40)+(1.44)+(0.9) = 4
f(3,2) = |19 | + |4 | = 23
f(3,3) = Gx =(1.40)+(0.8)+(0.9)+(-1.18) = 22
Gy =(0.40)+(-1.8)+(1.9)+(0.18) = 1
f(3,3) = | 22| + |1 | = 23

f(3,4) = Gx =(1.8)+(0.21)+(0.18)+(-1.16) = 8
Gy =(0.8)+(-1.21)+(1.18)+(0.16) = 3
f(3,4) = | 8| + |3 | = 11

f(3,5) = Gx =(1.21)+(0.0)+(0.16)+(-1.0) = 21
Gy =(0.21)+(-1.0)+(1.16)+(0.0) = 16
f(3,5) = | 21| + |16 | = 37
f(4,1) = Gx =(1.23)+(0.44)+(0.10)+(-1.19) = 4
Gy =(0.23)+(-1.44)+(1.10)+(0.19) = 34
f(4,1) = |4 | + |34 | = 38

f(4,2) = Gx =(1.44)+(0.9)+(0.19)+(-1.17) = 27
Gy =(0.44)+(-1.9)+(1.19)+(0.17) = 10
f(4,2) = |27 | + |10 | = 37

63
f(4,3) = Gx =(1.9)+(0.18)+(0.17)+(-1.80) = 71
Gy =(0.9)+(-1.18)+(1.17)+(0.80) = 1
f(4,3) = |71 | + |1 | = 72

f(4,4) = Gx =(1.18)+(0.16)+(0.80)+(-1.50) = 32
Gy =(0.18)+(-1.16)+(1.80)+(0.50) = 64
f(4,4) = |32 | + |64 | = 96

f(4,5) = Gx =(1.16)+(0.0)+(0.50)+(-1.0) = 16
Gy =(0.16)+(-1.0)+(1.50)+(0.0) = 50
f(4,5) = | 16| + |50 | = 66
f(5,1) = Gx =(1.10)+(0.19)+(0.0)+(-1.0) = 10
Gy =(0.10)+(-1.19)+(1.0)+(0.0) = 19
f(5,1) = | 10| + |19 | = 29

f(5,2) = Gx =(1.19)+(0.17)+(0.0)+(-1.0) = 19
Gy =(0.19)+(-1.17)+(1.0)+(0.0) = 17
f(5,2) = |19 | + |17 | = 36

f(5,3) = Gx =(1.17)+(0.80)+(0.0)+(-1.0) = 17
Gy =(0.17)+(-1.80)+(1.0)+(0.0) = 80
f(5,3) = | 17| + |80 | = 97

f(5,4) = Gx =(1.80)+(0.50)+(0.0)+(-1.0) = 80
Gy =(0.80)+(-1.50)+(1.0)+(0.0) = 50
f(5,4) = | 80| + |50 | = 130

f(5,5) = Gx =(1.50)+(0.0)+(0.0)+(-1.0) = 50
Gy =(0.50)+(-1.0)+(1.0)+(0.0) = 0
f(5,5) = | 50| + |0 | = 50

64
Citra Hasil Operator Roberts

38 42 22 19 45
5 6 44 5 33
6 23 23 11 37
38 37 72 96 66
29 36 97 130 50

b. Operator Prewitt
-1 0 1 1 1 1
Px = -1 0 1 Py = 0 0 0
-1 0 1 -1 -1 -1

f(2,2)=Px = (-1.40)+(0.2)+(1.30)+ (-1.40)+(0.40)+(1.34)+ (-1.25)


+(0.28)+(1.40) = 21
Py = (1.40)+(1.2)+(1.30)+(0.40)+(0.40)+(0.34)+(-1.25)+(-
1.28)+ (-1.40) = 41
f(2,2) = |21 | + |41 | = |62|

f(2,3)=Px = (-1.2)+(0.30)+(1.20)+ (-1.40)+(0.34)+(1.22)+ (-1.28)


+(0.40)+(1.8) = 20
Py = (1.2)+(1.30)+(1.20)+(0.40)+(0.34)+(0.22)+(-1.28)+(-
1.40)+ (-1.18)= 34
f(2,3) = | 20| + |34 | = |54|

f(2,4)=Px = (-1.30)+(0.20)+(1.33)+ (-1.34)+(0.22)+(1.12)+ (-1.40)


+(0.8)+(1.21) = 38
Py = (1.30)+(1.20)+(1.33)+(0.34)+(0.22)+(0.12)+(-1.40)+(-
1.8)+ (-1.21)= 14
f(2,4) = |38 | + |14 | = |52|
f(3,2)=Px = (-1.40)+(0.40)+(1.34)+ (-1.45)+(0.28)+(1.40)+ (-1.23)
+(0.44)+(1.9) = 25
Py = (1.40)+(1.40)+(1.34)+(0.45)+(0.28)+(0.40)+(-1.23)+(-
1.44) +(-1.9)= 38
f(3,2) = |25| + |38| = |63|

65
f(3,3)=Px = (-1.40)+(0.34)+(1.22)+ (-1.28)+(0.40)+(1.8)+ (-1.44)
+(0.9)+(1.18) = 64
Py = (1.40)+(1.34)+(1.22)+(0.28)+(0.40)+(0.8)+(-1.44)+(-
1.9)+ (-1.19)= 24
f(3,3) = | 64| + |24 | = |88|

f(3,4)=Px = (-1.34)+(0.22)+(1.12)+ (-1.40)+(0.8)+(1.21)+ (-1.9)


+(0.18)+(1.16) = 6
Py = (1.34)+(1.22)+(1.12)+(0.40)+(0.8)+(0.21)+(-1.9)+(-
1.18)+ (-1.16)= 25
f(3,4) = | 25| + |6 | = |31|
f(4,2)=Px = (-1.45)+(0.28)+(1.40)+ (-1.23)+(0.44)+(1.9)+ (-1.20)
+(0.29)+(1.27) = 12
Py = (1.45)+(1.28)+(1.40)+(0.23)+(0.44)+(0.19)+(-1.20)+(-
1.29) +(-1.27)= 34
f(4,2) = | 12| + |34 | = |46|

f(4,3)=Px = (-1.28)+(0.40)+(1.8)+ (-1.44)+(0.9)+(1.18)+ (-1.19)


+(0.17)+(1.80) = 15
Py = (1.28)+(1.40)+(1.8)+(0.44)+(0.9)+(0.18)+(-1.19)+(-
1.17)+ (-1.80)= 40
f(4,3) = | 15| + | 40| = |55|

f(4,4)=Px = (-1.40)+(0.8)+(1.21)+ (-1.9)+(0.8)+(1.16)+ (-1.17)


+(0.18)+(1.50) = 21
Py = (1.40)+(1.8)+(1.21)+(0.9)+(0.8)+(0.16)+(-1.17)+(-1.18)+
(-1.50)= 16
f(4,4) = |21 | + |16 | = |37|

66
Citra Hasil Operator Prewitt

40 2 30 20 33
40 62 54 52 12
45 63 88 31 21
23 46 55 37 16
10 19 17 80 50

c. Operator Sobel
-1 0 1 1 2 1
Sx = -2 0 2 Sy = 0 0 0
-1 0 1 -1 -2 -1

f(2,2)=Px = (-1.40)+(0.2)+(1.30)+ (-2.40)+(0.40)+(2.34)+ (-


1.25) +(0.28)+(1.40) = 7
Py = (1.40)+(2.2)+(1.30)+(0.40)+(0.40)+(0.34)+(-1.25)+
(-2.28)+ (-1.40) = 19
f(2,2) = |7 | + |19 | = |26|

f(2,3)=Px = (-1.2)+(0.30)+(1.20)+ (-2.40)+(0.34)+(2.22)+ (-


1.28) +(0.40)+(1.8) = 10
Py = (1.2)+(2.30)+(1.20)+(0.40)+(0.34)+(0.22)+(-1.28)+
(-2.40)+ (-1.8)= 34
f(2,3) = | 10| + |34 | = |44|

f(2,4)=Px = (-1.30)+(0.20)+(1.33)+ (-2.34)+(0.22)+(2.12)+ (-


1.40) +(0.8)+(1.21) = 60
Py = (1.30)+(2.20)+(1.33)+(0.34)+(0.22)+(0.12)+(-1.40)+
(-2.8)+ (-1.21)= 6
f(2,4) = |60 | + |6 | = |66|
f(3,2)=Px = (-1.40)+(0.40)+(1.34)+ (-2.45)+(0.28)+(2.40)+ (-
1.23) +(0.44)+(1.9) = 48
Py = (1.40)+(2.40)+(1.34)+(0.45)+(0.28)+(0.40)+(-1.23)+
(-2.44)+(-1.9)= 78
f(3,2) = |48| + |78| = |126|

67
f(3,3)=Px = (-1.40)+(0.34)+(1.22)+ (-2.28)+(0.40)+(2.8)+ (-
1.44) +(0.9)+(1.18) = 139
Py = (1.40)+(2.34)+(1.22)+(0.28)+(0.40)+(0.8)+(-1.44)+
(-2.9)+(-1.19)= 49
f(3,3) = |139 | + | 49| = |188|

f(3,4)=Px = (-1.34)+(0.22)+(1.12)+ (-2.40)+(0.8)+(2.21)+ (-1.9)


+(0.18)+(1.16) = 53
Py = (1.34)+(2.22)+(1.12)+(0.40)+(0.8)+(0.21)+(-1.9)+
(-2.18)+ (-1.16)= 47
f(3,4) = |53 | + | 47| = |100|
f(4,2)=Px = (-1.45)+(0.28)+(1.40)+ (-2.23)+(0.44)+(2.9)+ (-
1.20) +(0.29)+(1.27) = 26
Py = (1.45)+(2.28)+(1.40)+(0.23)+(0.44)+(0.19)+(-1.20)+
(-2.29) +(-1.27)= 8
f(4,2) = |26| + |8| = |34|

f(4,3)=Px = (-1.28)+(0.40)+(1.8)+ (-2.44)+(0.9)+(2.18)+ (-1.19)


+(0.17)+(1.80) = 11
Py = (1.28)+(2.40)+(1.8)+(0.44)+(0.9)+(0.18)+(-1.19)+
(-2.17)+ (-1.80)= 17
f(4,3) = | 11| + |17 | = |28|

f(4,4)=Px = (-1.40)+(0.8)+(1.21)+ (-2.9)+(0.8)+(2.16)+ (-1.17)


+(0.18)+(1.50) = 28
Py = (1.40)+(2.8)+(1.21)+(0.9)+(0.8)+(0.16)+(-1.17)+(-
2.18)+ (-1.50)= 9
f(4,4) = |29| + |9| = |38|

68
Citra Hasil Sobel
40 2 30 20 33
40 26 44 66 12
45 126 188 100 21
23 34 28 38 16
10 19 17 80 50

2. Membuat GUI Program


a. Pertama melalui Command Window Matlab ketikan : guide.

Gambar 7.1 Perintah guide


b. Lalu pilih Blank GUI (Default), dan klik OK

Gambar 7.2 Membuat GUI baru


c. Setelah itu buat GUI baru dengan 5 axes , 5 button , dan 5 static text.

Gambar 7.3 membuat axes

69
d. Kemudian klik kanan pada button, setelah itu pilih view callbacks >
callback.

Gambar 7.4 Perintah callback

e. Masukkan script GUI pada button OPEN

function pushbutton1_Callback(hObject, eventdata,


handles)
open=guidata(gcbo);
[gambar,direktori]=uigetfile({'*.jpg;*.bmp;*.tif'},'ope
nimage');
A=imread(gambar);
set(open.figure1,'CurrentAxes',open.axes1);
set(imagesc(A));colormap('gray');
set(open.axes1,'Userdata',A);

f. Masukkan script pada button Roberts


function pushbutton2_Callback(hObject, eventdata,
handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
gray = rgb2gray(A);
BW1 = edge(gray,'roberts');
set(open.figure1,'CurrentAxes', open.axes2);
set(imagesc(BW1));
set(open.axes2, 'userdata', BW1);

g. Masukan script GUI pada button Sobel


function pushbutton3_Callback(hObject, eventdata, handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
gray = rgb2gray(A);
BW2 = edge(gray,'sobel');
set(open.figure1,'CurrentAxes', open.axes3);
set(imagesc(BW2));
set(open.axes3, 'userdata', BW2);

70
h. Masukan script GUI pada button Prewitt
function pushbutton4_Callback(hObject, eventdata, handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
gray = rgb2gray(A);
BW3 = edge(gray,'prewitt');
set(open.figure1,'CurrentAxes', open.axes4);
set(imagesc(BW3));
set(open.axes4, 'userdata', BW3);

i. Masukan script GUI pada button Log


function pushbutton5_Callback(hObject, eventdata, handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
gray = rgb2gray(A);
BW4 = edge(gray,'log');
set(open.figure1,'CurrentAxes', open.axes5);
set(imagesc(BW4));
set(open.axes5, 'userdata', BW4);

Tampilan Hasil

Gambar 7.5 Tampilan Hasil

7.2 Alat dan Bahan


1. Laptop
2. Matlab 2015a
3. Modul Pengolahan Citra Digital 2018

71
7.3 Tujuan
1. Pratikan dapat memahami Pendeteksian Tepi (Edge Detection).
2. Pratikan dapat memahami Operator Gradien Pertama dan Operator
Turunan Kedua
3. Pratikan dapat melakukan implementasi Opreator Roberts, Prewitt, Sobel
dan Log berbasis GUI dalam matlab.

7.4 Kesimpulan
1. Deteksi tepi berfungsi untuk memperoleh tepi objek.
2. Operator Robert adalah nama lain dari teknik differensial yang sedang
dikembangkan, yaitu differensial pada arah horisontal dan differensial pada
arah vertikal.
3. Metode Prewitt merupakan pengembangan metode robert dengan
menggunakan filter HPF yang diberi satu angka nol penyangga.
4. Metode Sobel merupakan pengembangan metode robert dengan
menggunakan filter HPF yang diberi satu angka nol penyangga.
5. Operator turunan kedua disebut juga operator Laplace. Operator Laplace
mendeteksi lokasi tepi yang lebih akurat khususnya pada tepi yang curam.

Tanggal Asistensi Instruktur Laboratorium Nilai

Diyona Amelia
1618050

72
TUGAS PRAKTIKUM PENGOLAHAN CITRA DIGITAL
PERTEMUAN : 8
NIM : 1718040
NAMA : Marvelina Gracia Hernoko
MATERI : 1. Pemampatan Citra
TUGAS : 1. Perhitungan RLE 7 BIT
2. GUI RLE

8. Pemampatan Citra
Pemampatan atau kompresi citra merupakan suatu teknik untuk
mengkodekan piksel- piksel di dalam citra sehingga diperoleh representasi
memori yang minimal. Kebanyakan citra mengandung duplikasi data.
Duplikasi data pada citra berarti dua hal. Pertama, besar kemungkinan suatu
piksel dengan piksel tetangganya memiliki intensitas yang sama, sehingga
penyimpanan setiap piksel memboroskan tempat. Kedua, citra banyak
mengandung bagian (region) yang sama, sehingga bagian yang sama ini tidak
perlu dikodekan berulang kali. Pemampatan citra bertujuan untuk
meminimalkan kebutuhan memori untuk merepresentasikan citra digital.
Prinsip umum yang digunakan pada proses pemampatan citra adalah
mengurangi duplikasi data di dalam citra sehingga memori yang dibutuhkan
untuk merepresentasikan citra menjadi lebih sedikit daripada representasi
citra semula. Ada beberapa metode dasar kompresi, diantaranya:

1. Metode Huffman
2. Metode RLE (Run Length Encoding)
3. Metode Aritmatik
4. Metode Kuantisasi
5. Metode LZW, dan
6. Pendekatan Fraktal
A. Metode Run-Length Encoding
Metode RLE cocok digunakan untuk memampatkan citra yang
memiliki kelompok-kelompok piksel yang berderajat keabuan yang sama.
Pemampatan citra dengan metode RLE dilakukan dengan membuat

73
rangkaian pasangan nilai (p,q) untuk setiap baris piksel, nilai pertama (p)
menyatakan derajat keabuan, sedangkan nilai kedua (q) menyatakan
jumlah piksel berurutan yang memiliki derajat keabuan tersebut
(dinamakan run length).
𝑈𝑘. 𝐶𝑖𝑡𝑟𝑎 𝑠𝑒𝑡𝑒𝑙𝑎ℎ 𝑑𝑖 𝑘𝑜𝑚𝑝𝑟𝑒𝑠
𝑅𝑎𝑠𝑖𝑜 = 100% − [ 𝑥 100%]
𝑈𝑘. 𝐶𝑖𝑡𝑟𝑎 𝑠𝑒𝑏𝑒𝑙𝑢𝑚 𝑑𝑖 𝑘𝑜𝑚𝑝𝑟𝑒𝑠
8.1 Langkah-langkah Membuat Tugas
1. Perhitungan RLE 7 BIT
40 2 2 2 3 3 4 5 (40,1)(2,3)(3,2)(4,1)(5,1)
6 40 6 6 88 8 9 9 (6,1)(40,1)(6,2)(88,1)(8,1)(9,2)
10 10 40 15 16 17 18 19 (10,2)(40,1)(15,1)(16,1)(17,1)(18,1)(19,1)
11 11 11 11 16 17 17 17 (11,4)(16,1)(17,3)
15 20 20 15 15 21 21 21 (15,1)(20,2)(15,2)(21,2)
55 55 55 89 90 90 90 90 (55,3)(89,1)(90,4)

Hasil pengkodean :
40 1 2 3 3 2 4 1 5 1 6 1 40 1 6 2 88 1 8 1 9 2 10 2 40 1 15 1 16 1 17 1 18 1
19 1 11 4 16 1 17 3 15 1 20 2 15 2 21 3 55 3 89 1 90 4
Semuanya = 56 pixel
Citra sebelum dikompres = 8 x 6 x 7 bit = 336 bit
Ukuran citra sesudah dikompres = 56 x 7 bit = 392 bit
392
𝑅𝑎𝑠𝑖𝑜 = 100% − [336 𝑥 100%] = −16 = 0%

2. Membuat GUI Program


a. Pertama melalui Command Window Matlab ketikan : guide.

Gambar 8.1 Perintah guide


b. Lalu pilih Blank GUI (Default), dan klik OK

74
Gambar 8.2 Membuat GUI baru
c. Setelah itu buat GUI baru dengan 2 panel, 2 button , 5 static text, dan
4 edit text.

Gambar 8.3 membuat panel


d. Kemudian klik kanan pada button, setelah itu pilih view callbacks >
callback.

Gambar 8.4 Perintah callback


e. Masukkan script di button Encoding
A = get(handles.edit5,'String');
B = ' ';
while length(A)
B = [B A(1)];
A = A(2:end);
hit = 1;

75
while A & (B(end) == A(1))
A = A(2:end);
hit = hit + 1;
end
B = [B num2str(hit)];
end
R = [B];
set(handles.edit6,'string',(R));

f. Masukkan script di button Decoding


A=get(handles.edit7,'String')
B=A(1);
R=1;
while length(A)
N=str2num(A(2));
hit=1;
if R == 1
if N > 1
while hit < N
B=[B A(1)];
hit=hit+1;
R=R+1;
end;
else
while hit <= N B=[B];
hit=hit+1; R=R+1;
end;
end;
else
while hit <= N B=[B A(1)];
hit=hit+1;
end;
end;
A=A(3:end);
end;
set(handles.edit8,'string',(B));

Tampilan Hasil

Gambar 8.5 Tampilan Hasil

76
8.2 Alat dan Bahan
1. Laptop
2. Matlab 2015a
3. Modul Pengolahan Citra Digital 2018
8.4 Tujuan
1. Pratikan dapat memahami Pemampatan Citra
2. Pratikan dapat memahami Metode Run-Length Encoding
3. Pratikan dapat melakukan implementasi Run-Length Encoding berbasis
GUI dalam matlab.
8.5 Kesimpulan
1. Pemampatan atau kompresi citra merupakan suatu teknik untuk
mengkodekan piksel- piksel di dalam citra sehingga diperoleh representasi
memori yang minimal.
2. Ada beberapa metode dasar kompresi, diantaranya, Metode Huffman,
Metode RLE (Run Length Encoding), Metode Aritmatik, Metode
Kuantisasi, Metode LZW, dan Pendekatan Fraktal.
3. Metode RLE cocok digunakan untuk memampatkan citra yang memiliki
kelompok-kelompok piksel yang berderajat keabuan yang sama.

Tanggal Asistensi Instruktur Laboratorium Nilai

Diyona Amelia
1618050

77
PRAKTIKUM PENGOLAHAN CITRA DIGITAL
PERTEMUAN : 9
NIM : 1718040
NAMA : Marvelina Gracia Hernoko
MATERI : 1. Watermark Citra
TUGAS : 1. Perhitungan Watermark
2. GUI Program

9. Watermark Citra
Salah satu cara untuk melindungi hak cipta multimedia adalah dengan
menyisipikan informasi ke dalam data multimedia tersebut dengan teknik
watermarking. Informasi yang disisipkan ke dalam data multimedia disebut
watermark, dan watermark dapat dianggap sebagai sidik digital (digital
signature) dari pemilik yang sah atas produk multimedia tersebut.

Dengan kata lain, watermark yang disisipkan menjadi label hak cipta dari
pemiliknya. Pemberian signature dengan teknik watermarking ini dilakukan
sedemikian sehingga informasi yang disisipkan tidak merusak data digital yang
dilindungi. Sehingga, seseorang yang membuka produk multimedia yang
sudah disisipi watermark tidak menyadari kalau di dalam data multimedia
tersebut terkandung label kepemilikan pembuatnya.
A. Teknik Penyembunyian Data
Penyembunyian data dilakukan dengan mengganti bit-bit data di
dalam segmen citra dengan bit-bit rahasia. Metode modifikasi LSB (Least
Significant Bit Modification). Pada susunan bit di dalam sebuah byte (1 byte
= 8 bit), ada : Bit yang paling berarti (Most Significant Bit atau MSB) dan
Bit yang paling kurang berarti (Least Significant Bit atau LSB).

78
9.1 Langkah-langkah Membuat Tugas
1. Perhitungan Watermark
40 25 15 7 11 30 21 14 12 50
23 17 2 12 15 8 9 16 70 32
40 12 23 10 41 29 37 6 3 20
8 28 34 15 18 24 30 31 42 33
11 20 30 24 31 28 39 18 27 36
23 22 11 34 25 60 10 22 45 87
22 33 14 8 19 27 6 34 80 11
28 34 15 15 8 9 16 28 39 18
30 24 31 28 39 18 27 11 20 30
8 28 34 15 18 24 30 31 42 33

Penyelesaian :

Table 9.1 Kode ASCII


Huruf Kode ASCII Biner
G 071 0100 0111
r 114 0111 0010
A 065 0100 0001
c 099 0110 0011

Table 9.2 Citra Input G


Citra Input G MSB
40 = 0010 1000 0 0010 1000 = 40
25 = 0001 1001 1 1001 1001 = 153
15 = 0000 1111 0 0000 1111 = 15
7 = 0000 0111 0 0000 0111 = 7
11 = 0000 1011 0 0000 1011 = 11
30 = 0001 1110 1 1001 1110 = 158
21 = 0001 0101 1 1001 0101 = 149
14 = 0000 1110 1 1000 1110 = 142

Table 9.3 Citra Input r


Citra Input R MSB
12 = 0000 1100 0 0000 1100 = 12
50 = 0011 0010 1 1011 0010 = 178
23 = 0001 0111 1 1001 0111 = 151
17 = 0001 0001 1 1001 0001 = 145
2 = 0000 0010 0 0000 0010 = 2
12 = 0000 1100 0 1000 1100 = 12
15 = 0000 1111 1 1000 1111 = 143
8 = 0000 1000 0 0000 1000 = 8

79
Table 9.4 Citra Input A
Citra Input A MSB
9 = 0000 1001 0 1000 1001 = 9
16 = 0001 0000 1 1001 0000 = 144
70 = 0100 0110 0 0100 0110 = 70
32 = 0010 0000 0 1010 0000 = 32
40 = 0010 1000 0 0010 1000 = 40
12 = 0000 1100 0 0000 1100 = 12
23 = 0001 0111 0 0001 0111 = 23
10 = 0000 1010 1 1000 1010 = 138

Table 9.5 Citra Input c


Citra Input C MSB
41 = 0010 1001 0 0010 1001 = 41
29 = 0001 1101 1 1001 1101 = 157
37 = 0010 0101 1 1010 0101 = 165
6 = 0000 0110 0 1000 0110 = 6
3 = 0000 0011 0 1000 0011 = 3
20 = 0001 0100 0 0001 0100 = 20
8 = 0000 1000 1 1000 1000 = 136
28 = 0001 1100 1 1001 1100 = 156

Citra Hasil MSB :


40 153 15 7 11 158 149 142 12 178
151 145 2 12 143 8 9 144 70 32
40 12 23 138 41 157 165 6 3 20
136 156 34 15 18 24 30 31 42 33
11 20 30 24 31 28 39 18 27 36
23 22 11 34 25 60 10 22 45 87
22 33 14 8 19 27 6 34 80 11
28 34 15 15 8 9 16 28 39 18
30 24 31 28 39 18 27 11 20 30
8 28 34 15 18 24 30 31 42 33

80
2. Membuat GUI Program
a. Pertama melalui Command Window Matlab ketikan : guide.

Gambar 9.1 Perintah guide


b. Lalu pilih Blank GUI (Default), dan klik OK

Gambar 9.2 Membuat GUI baru


c. Setelah itu buat GUI baru dengan 4 axes , 4 button , dan 4 static text.

Gambar 9.3 membuat axes


d. Kemudian klik kanan pada button, setelah itu pilih view callbacks >
callback.

Gambar 9.4 Perintah callback

81
e. Masukkan script g_encode

function G = g_encode(cover, message, bitpos)


message = round(message/256);
r = size(cover, 1);
c = size(cover, 2);
G = cover;
for i = 1 : r
for j = 1 : c
G(i, j) = bitset(G(i, j), bitpos, message(i, j));
end
end

f. Masukkan script g_decode


function G = g_decode(G, bitpos)
Mw = size(G, 1);
Nw = size(G, 2);
for i = 1 : Mw
for j = 1 : Nw
G(i, j) = bitget(G(i, j), bitpos);
end
end
G = 256 * G;

g. Masukkan script di button Cover


function pushbutton1_Callback(hObject, eventdata, handles)
open=guidata(gcbo);
[gambar,direktori]=uigetfile({'*.jpg;*.bmp;*.tif'},'openimage');
A=imread(gambar);
set(open.figure1,'CurrentAxes',open.axes1);
set(imagesc(A));colormap('gray');
set(open.axes1,'Userdata',A);

h. Masukkan script di button Pesan


function pushbutton2_Callback(hObject, eventdata, handles)
open=guidata(gcbo);
[gambar,direktori]=uigetfile({'*.jpg;*.bmp;*.tif'},'openimage');
A=imread(gambar);
set(open.figure1,'CurrentAxes',open.axes2);
set(imagesc(A));colormap('gray');
set(open.axes2,'Userdata',A);

i. Masukkan script di button Encode


function pushbutton3_Callback(hObject, eventdata, handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
B = get(open.axes2,'Userdata');
bitpos = 8;
cover = A;
message = B;
G = g_encode(cover, message, bitpos);
set(open.figure1,'CurrentAxes', open.axes3);
set(imagesc(G));

82
set(open.axes3, 'userdata', G);

j. Masukkan script di button Decode


function pushbutton4_Callback(hObject, eventdata, handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
B = get(open.axes2,'Userdata');
C = get(open.axes3,'Userdata');
bitpos = 8;
G = get(open.axes3,'Userdata');
H = g_decode(G, bitpos);
set(open.figure1,'CurrentAxes', open.axes4);
set(imagesc(H));
set(open.axes3, 'userdata', H);

Tampilan Hasil

Gambar 9.5 Tampilan Hasil

9.2 Alat dan Bahan


1. Laptop
2. Matlab 2015a
3. Modul Pengolahan Citra Digital 2018

9.3 Tujuan
1. Pratikan dapat memahami Watermark Citra.
2. Pratikan dapat memahami Metode LSB (Least Significant Bit).
3. Pratikan dapat memahami Metode MSB (Most Significant Bit).
4. Pratikan dapat melakukan implementasi Encoding dan Decoding berbasis
GUI dalam matlab.

83
9.4 Kesimpulan
1. Watermarking merupakan teknik melindungi hak cipta multimedia dengan
menyisipikan informasi ke dalam data multimedia.
2. Watermark dapat dianggap sebagai sidik digital (digital signature) dari
pemilik yang sah atas produk multimedia tersebut.
3. Penyembunyian data dilakukan dengan mengganti bit-bit data di dalam
segmen citra dengan bit-bit rahasia.
4. Bit yang paling berarti (Most Significant Bit atau MSB).
5. Bit yang paling kurang berarti (Least Significant Bit atau LSB).

Tanggal Asistensi Instruktur Laboratorium Nilai

Diyona Amelia
1618050

84
TUGAS PRAKTIKUM PENGOLAHAN CITRA DIGITAL
PERTEMUAN : 10
NIM : 1718040
NAMA : Marvelina Gracia Hernoko
MATERI : 1. Histogram Citra
TUGAS : 1. Perhitungan Histogram
2. GUI Program

10. Histogram Citra


Histogram citra merupakan diagram yang menggambarkan frekuensi setiap
nilai intensitas yang muncul di seluruh piksel citra. Nilai besar menyatakan
bahwa piksel – piksel yang mempunyai intensitas tersebut sangat banyak. Pada
citra berskala keabuan, jumlah aras keabuan sebanyak 256. Nilai aras dimulai
dari 0 hingga 255.

A. Menggambar Kurva Histogram


Secara matematis histogram citra dihitung dengan rumus :

Dimana :
ni = jumlah pixel yang memiliki derajat keabuan
n = jumlah seluruh pixel di dalam citra
10.1 Langkah-langkah Membuat Tugas
1. Perhitungan Histogram
40 45 45 3 2 3 1 2 55 45
21 40 21 19 16 16 16 34 5 5
16 6 7 7 40 6 4 5 8 8
34 34 5 2 2 1 1 56 56 45
38 38 19 2 19 26 26 57 26 57
12 12 23 23 45 21 67 67 31 32
31 32 16 17 16 19 19 24 14 24
52 27 52 55 34 27 67 52 16 17
18 18 18 1 1 22 2 2 2 45
45 34 7 7 7 34 22 27 5 19

85
Penyelesaian :

Table 10.1 Perhitungan Histogram Citra


𝑖 𝑛𝑖 𝑛𝑖 𝑖 𝑛𝑖 𝑛𝑖
ℎ𝑖 = ℎ𝑖 =
𝑛 𝑛
1 5 0.05 23 2 0.02
2 8 0.08 24 2 0.02
3 2 0.02 26 3 0.03
4 1 0.01 27 3 0.03
5 5 0.05 31 2 0.02
6 2 0.02 32 2 0.02
7 5 0.05 34 6 0.06
8 2 0.02 38 2 0.02
12 2 0.02 40 3 0.03
14 1 0.01 45 7 0.07
16 7 0.07 52 3 0.03
17 2 0.02 55 2 0.02
18 3 0.03 56 2 0.02
19 6 0.06 57 2 0.02
21 3 0.03 67 3 0.03
22 2 0.02

Hasil Grafik Histogram

Gambar 10.1 Grafik Histogram

86
2. Membuat GUI Program
a. Pertama melalui Command Window Matlab ketikan : guide.

Gambar 10.2 Perintah guide


b. Lalu pilih Blank GUI (Default), dan klik OK

Gambar 10.3 Membuat GUI baru


c. Setelah itu buat GUI baru dengan 2 axes , 2 button , dan 2 static
text.

Gambar 10.4 membuat axes


d. Kemudian klik kanan pada button, setelah itu pilih view callbacks
> callback.

Gambar 10.5 Perintah callback

87
e. Masukkan script OPEN

function pushbutton1_Callback(hObject, eventdata, handles)


open=guidata(gcbo);
[gambar,direktori]=uigetfile({'*.jpg;*.bmp;*.tif'},
'openimage');
A=imread(gambar);
set(open.figure1,'CurrentAxes',open.axes1);
set(imagesc(A));colormap('gray');
set(open.axes1,'Userdata',A);

f. Masukkan script HISTOGRAM


function pushbutton2_Callback(hObject, eventdata, handles)
open=guidata(gcbo);
A = get(open.axes1,'Userdata');
[r c] = size(A);
data = reshape(A,r*c,1);
angka = unique(data);
[r1 c1] = size(angka);
jml_angka = histc(data,angka);
total = r*c
for x = 1:r1
Hl(x,1) = jml_angka(x,1)/total
end
set(open.figure1,'CurrentAxes', open.axes2);
set(open.axes2, 'userdata', bar(Hl));

Tampilan Hasil

Gambar 10.6 Tampilan Hasil

10.2 Alat dan Bahan


1. Laptop
2. Matlab 2015a
3. Modul Pengolahan Citra Digital 2018

88
10.3 Tujuan
1. Pratikan dapat memahami Histogram Citra.
2. Pratikan dapat memahami kurva Histogram
3. Pratikan dapat melakukan implementasi Histogram Citra berbasis GUI
dalam matlab.

10.4 Kesimpulan
1. Histogram citra merupakan diagram yang menggambarkan frekuensi
setiap nilai intensitas yang muncul di seluruh piksel citra.
2. Nilai besar menyatakan bahwa piksel – piksel yang mempunyai
intensitas tersebut sangat banyak.
3. Jumlah skala keabuan sebanyak 256.

Tanggal Asistensi Instruktur Laboratorium Nilai

Diyona Amelia
1618050

89
PENUTUP
Kesimpulan
1. Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu
objek.
2. Pengolahan citra digital merupakan proses pengolahan dan analisis citra yang
melibatkan persepsi visual.
3. Matlab adalah sebuah lingkungan komputasi numerical dan bahasa
pemrograman yang digunakan untuk manipulasi matriks, membagi fungsi dan
data.
4. Operasi titik, yaitu operasi yang dilakukan terhadap setiap piksel pada citra
yang keluarannya hanya ditentukan oleh nilai piksel itu sendiri.
5. Konvolusi merupakan operasi yang mendasar dalam pengolahan citra.
6. Segmentasi citra merupakan proses yang ditujukan untuk mendapatkan objek
yang terkandung di dalam citra atau membagi ke dalam beberapa.
7. Filtering pada pengolahan citra biasa disebut dengan spasial filtering.
8. Deteksi tepi berfungsi untuk memperoleh tepi objek.
9. Pemampatan atau kompresi citra merupakan suatu teknik untuk mengkodekan
piksel- piksel di dalam citra sehingga diperoleh representasi memori yang
minimal.
10. Watermarking merupakan teknik melindungi hak cipta multimedia dengan
menyisipikan informasi ke dalam data multimedia.
11. Histogram citra merupakan diagram yang menggambarkan frekuensi setiap
nilai intensitas yang muncul di seluruh piksel citra.

Saran
1. Lebih teliti pada saat perhitungan citra menggunakan metode apapun.
2. Siapkan materi sebelum berlangsungnya praktikum.
3. Ada beberapa fungsi yang harus digunakan saat akan membuat GUI Citra.

90
DAFTAR PUSTAKA

Laboratorium Pengolahan Citra Digital dan Multemedia (2018). Modul


Pengolahan Citra Digital. Instruktur Lab Institut Teknologi Nasional Malang.

Ahmad, U. (2005). Pengolahan citra digital dan teknik


pemrogramannya. Yogyakarta: Graha Ilmu.

Kumaseh, M. R., Latumakulita, L., & Nainggolan, N. (2013). Segmentasi citra


digital ikan menggunakan metode thresholding. Jurnal Ilmiah Sains, 13(1), 74-79.

Putra, Darma. Pengolahan citra digital. Penerbit Andi, 2010.

Prasetyo, E. (2011). Pengolahan Citra Digital dan Aplikasinya Menggunakan


Matlab. Yogyakarta: Andi.

Sutojo, T., Mulyanto, E., Suhartono, V., & NURHAYATI, O. D. (2009). Teori
Pengolahan Citra Digital.

91
LABORATORIUM PCD & MULTIMEDIA
INSTITUT TEKNOLOGI NASIONAL
KampusII : Jl. Raya Karanglo Km. 2 Malang

LEMBAR ASISTENSI PRAKTIKUM PENGOLAHAN CITRA DIGITAL


SEMESTER GANJIL TAHUN AKADEMIK 2017/2018 FOTO
3x4
(Menggunak
Nama : Marvelina Gracia Hernoko an Jas
NIM : 1718040 Almamater)
Kelompok : 9

Asistensi
No. Tanggal Paraf
Konsep Program HasilAkhir

Instruktur
1
Dosen

Batas Akhir:

Asisten Lab Malang, … Desember 2018


Dosen, Pembimbing,

(Ali Mahmudi, B.Eng, P.Hd)


(Diyona Amelia) NIP.P.1031000429

Anda mungkin juga menyukai