Analisis Perbandingan Hasil Algoritma Homogeneity Dan Algoritma Prewitt Untuk Deteksi Tepi Pada Citra BMP

(1)

ANALISIS PERBANDINGAN HASIL ALGORITMA HOMOGENEITY DAN ALGORITMA PREWITT UNTUK DETEKSI TEPI

PADA CITRA BMP

SKRIPSI

ZULFADHLI HARAHAP 111421055

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA MEDAN


(2)

ANALISIS PERBANDINGAN HASIL ALGORITMA HOMOGENEITY DAN ALGORITMA PREWITT UNTUK DETEKSI TEPI PADA CITRA BMP

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

ZULFADHLI HARAHAP 111421055

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA MEDAN


(3)

PERSETUJUAN

Judul : ANALISIS PERBANDINGAN ALGORITMA

HOMO-GENEITY DAN ALGORITMA PREWITT UNTUK DETEKSI TEPI PADA CITRA BMP.

Kategori : SKRIPSI

Nama : ZULFADHLI HARAHAP

Nomor Induk Mahasiswa : 111421055

Program Studi : EKSTENSI S1 ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dian Rachmawati, S.Si, M.Kom Dr. Syahril Efendi, S.Si, MIT NIP. 19830723 200912 2 004 NIP. 19671110 199602 1 001 Diketahui/disetujui oleh

Program Studi Ekstensi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 001


(4)

PERNYATAAN

ANALISIS PERBANDINGAN HASIL ALGORITMA HOMOGENEITY DAN ALGORITMA PREWITT UNTUK DETEKSI TEPI

PADA CITRA BMP

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan. Maret 2014

Zulfadhli Harahap 111421055


(5)

PENGHARGAAN

Alhamdulillah, puji syukur penulis panjatkan kehadirat Allah SWT, yang telah memberikan rahmat dan hidayah-Nya serta segala sesuatunya dalam hidup. Sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada semua pihak yang telah membantu penulis selama pengerjaan skripsi ini, antara lain kepada:

1. Bapak Prof. DR. Muhammad Zarlis, M.Sc Selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.

2. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara dan sebagai Dosen Pembanding.

3. Bapak Dr. Syahril Efendi, S.Si, MIT dan Ibu Dian Rachmawati, S.Si, M.Kom sebagai Dosen Pembimbing yang telah memberikan bimbingan, saran, masukkan kepada penulis untuk menyempurnakan kajian ini.

4. Bapak M. Andri Budiman, S.T, M.Comp.Sc, M.E.M, C.J.P sebagai Dosen Pembanding.

5. Seluruh dosen dan pegawai Program Studi Ekstensi S1 Ilmu Komputer Universitas Sumatera Utara.

6. mencurahkan ilmunya selama masa perkuliahan.

7. Seluruh pegawai di lingkungan Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

8. Teristimewa kepada orang tua penulis, ayahanda Ir. H. Usman Harahap, MT dan Ibunda Dra. Hj. Roudah .Apt atas do’a dan kasih sayang yang tidak pernah putus, kepada kakanda saya Nurul Hudhani Harahap, SE, adinda Siti Hasyati Harahap atas dorongan semangat yang diberikan kepada penulis.

9. Ridho S. Akbar, Rajab Sihotang dan teman-teman seangkatan Ekstensi S1 Ilmu Komputer tahun 2011 yang sama-sama berjuang meraih gelar Sarjana.


(6)

Semoga Allah SWT memberikan limpahan karunia semua pihak yang membantu penulis dalam menyelesaikan skripsi ini. Akhirnya penulis berharap bahwa skripsi ini bermanfaat terutama kepada penulis maupun para pembaca serta semua pihak akademisi yang tertarik mengembangkannya. Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan, oleh karena itu penulis menerima saran dan kritik demi kesempurnaan skripsi ini sehingga bermanfaat bagi semua pihak.

Medan, Maret 2014 Penulis


(7)

ABSTRAK

Salah satu teknik pengolahan citra yang digunakan adalah deteksi tepi (edge detection). Deteksi tepi berfungsi untuk mengidentifikasikan garis batas dari suatu objek terhadap latar belakang yang saling tumpang tindih. Sehingga apabila garis tepi pada citra dapat diidentifikasikan dengan akurat, semua objek dapat ditemukan dan sifat dasar seperti area, bentuk, dan ukuran objek dapat diukur. Dalam aplikasi deteksi tepi ini diambil dua algoritma untuk perbandingan yaitu algoritma Homogeneity dan algoritma Prewitt. Algoritma Homogeneity secara luas berkaitan dengan informasi lokal yang diekstrak dari citra dan mencerminkan bagaimana keseragaman suatu daerah pada citra. Algoritma Prewitt bekerja menggunakan prosedur matematika yang disebut konvolusi dalam bentuk matriks 3x3 dimana konstantanya bernilai 1. Aplikasi Deteksi Tepiini dirancang menggunakan bahasa pemrograman C#.


(8)

COMPARATIVE ANALYSIS ALGORITHM HOMOGENEITY AND ALGORITHM PREWITT FOR EDGE DETECTION IMAGE

ON BMP

ABSTRACT

One of the image processing techniques is edge detection. Edge detection is used to identify the boundary of an object against a background of overlapping. Therefore, when the outline of the image can be identified accurately, all objects can be located and basic properties such as area, shape, and size of the object can be measured. In this application of edge detection algorithm is taken two algorithms for comparison, Homogeneity and Prewitt algorithm. Homogeneity algorithm is widely associated with local information extracted from the image and reflect how uniformity of an area on the image. Prewitt algorithm works using a mathematical procedure called convolution in the form of a 3x3 matrix where the constant is 1. Edge Detection application is designed using the C# programming language.


(9)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abtract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Bab 1 Pendahuluan 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 2

1.5 Manfaat Penelitian 3

1.6 Metode Penelitian 3

1.7 Sistematika Penulisan 4

Bab 2 Landasan Teori 5

2.1 Citra Digital 5

2.1.1 Format Citra Digital BMP (Bitmap) 8

2.2 Pengolahan Citra 9

2.3 Deteksi Tepi (Edge Detection) 11

2.4 Algoritma Prewitt 13

2.5 Algoritma Homogeneity 15

2.6 Penilaian Kualitas Citra 15

2.6.1 Mean Square Error 15

2.6.2 PSNR (Peak Signal to Noise Ratio) 16

Bab 3 Analisis dan Perancangan 17

3.1 Analisis 17

3.1.1 Analisis Masalah 17

3.1.2 Analisis Kebutuhan Sistem 18

3.1.2.1 Analisis Fungsional Sistem 18

3.1.2.2 Analisis Non-fungsional Sistem 19 3.1.3 Analisis Deteksi Tepi Menggunakan Agoritma Prewitt 19 3.1.4 Analisis Deteksi Tepi Menggunakan Agoritma Homogeneity 29

3.2 Perancangan Sistem 32

3.2.1 Perancangan Flowchart 33

3.2.1.1 Flowchart Umum Sistem 33


(10)

3.2.1.3 Flowchart Deteksi Tepi Menggunakan Algoritma

Homogeneity 35

3.2.2 Perancangan Unified Modeling Language (UML) 36 3.2.2.1 Identifikasi Use Case Diagram 36

3.2.2.2 Use Case Deteksi Tepi 37

3.2.3 Perancangan Tampilan Antarmuka (Interface) 40

3.2.3.1 Rancangan Jendela Utama 40

3.2.3.2 Rancangan Jendela Tentang 41

Bab 4 Implementasi Dan Pengujian 43

4.1 Implementasi 43

4.1.1 Tampilan Jendela Utama 44

4.1.2 Tampilan Jendela Tentang 44

4.2 Pengujian 44

4.2.1 Proses Pendeteksian Tepi Pada Gambar 44

4.2.2 Pengujian Pendeteksian Tepi Citra 47

Bab 5 Kesimpulan Dan Saran 54

5.1 Kesimpulan 54

5.2 Saran 54

Daftar Pustaka

Lampiran A: Listing Program Lampiran B: Curriculum Vitae


(11)

DAFTAR TABEL

Halaman 3.1 Matriks nilai citra dan kernel x algoritma Prewitt 20 3.2 Hasil konvolusi dengan kernel x algoritma Prewitt 20

3.3 Matriks hasil konvolusi algoritma Prewitt 23

3.4 Matriks nilai citra dan kernel y algoritma Prewitt 24 3.5 Hasil konvolusi dengan kernel y algoritma Prewitt 24

3.6 Matriks hasil konvolusi algoritma Prewitt 27

3.7 Matriks kernel x dan kernel y algoritma Prewitt 27

3.8 Perhitungan gradien algoritma Prewitt 27

3.9 Matriks hasil akhir deteksi tepi algoritma Prewitt 28 3.10 Nilai matriks piksel citra sebelum deteksi tepi 29

3.11 Perhitungan matriks algoritma Homogeneity 29

3.12 Nilai matriks piksel citra sesudah deteksi tepi dengan algoritma Homogeneity 32

3.13 Dokumentasi naratif Use Case Deteksi Tepi 38

4.1 Hasil Pengujian Deteksi Tepi Citra 47


(12)

DAFTAR GAMBAR

Halaman

2.1 Citra digital dengan objek Mesjid 5

2.2 Citra biner 7

2.3 Citra sekala keabuan 7

2.4 Citra warna 8 bit 8

2.5 Citra warna 16 bit 8

2.6 Citra warna 24 bit 8

2.7 (a) citra digital dengan objek bangunan PDAM Tirtanadi agak gelap, (b) citra digital dengan objek bangunan PDAM Tirtanadi yang telah diperbaiki

kontrasnya sehingga terlihat jelas dan tajam 9

2.8 Matriks Citra dan kernel sebelum konvolusi dengan tanda • menunjukkan

posisi (0,0) dari kernel 11

2.9 Tahapan Proses Pembentukan Konvolusi 12

2.10 Hasil Konvolusi Citra dan Kernel 12

2.11 Jenis-jenis Tepi 13

2.12 Kernel pada operator Prewitt 14

2.13 Operator konvolusi untuk menghitung gradien 14

2.14 Operator homogeneity 15

3.1 Diagram ishikawa 18

3.2 Citra yang diambil nilai pikselnya 20

3.3 Flowchart umum sistem 33

3.4 Flowchart Deteksi Tepi Menggunakan Algoritma Prewitt 34 3.5 Flowchart Deteksi Tepi Menggunakan Algoritma Homogeneity 35

3.6 Use Case Deteksi Tepi 37

3.7 Activity Diagram Deteksi Tepi 39

3.8 Rancangan jendela utama 40

3.9 Rancangan jendela tentang 42

4.1 Tampilan jendela utama 43

4.2 Tampilan jendela tentang 44

4.3 Langkah pendeteksian tepi pada gambar 45

4.4 Jendela lokasi direktori gambar 46

4.5 Hasil pendeteksian gambar 46

4.6 Citra Mobil 51

4.7 Grafik Durasi Waktu Pengujian 52

4.8 Grafik Perbandingan MSE 52


(13)

ABSTRAK

Salah satu teknik pengolahan citra yang digunakan adalah deteksi tepi (edge detection). Deteksi tepi berfungsi untuk mengidentifikasikan garis batas dari suatu objek terhadap latar belakang yang saling tumpang tindih. Sehingga apabila garis tepi pada citra dapat diidentifikasikan dengan akurat, semua objek dapat ditemukan dan sifat dasar seperti area, bentuk, dan ukuran objek dapat diukur. Dalam aplikasi deteksi tepi ini diambil dua algoritma untuk perbandingan yaitu algoritma Homogeneity dan algoritma Prewitt. Algoritma Homogeneity secara luas berkaitan dengan informasi lokal yang diekstrak dari citra dan mencerminkan bagaimana keseragaman suatu daerah pada citra. Algoritma Prewitt bekerja menggunakan prosedur matematika yang disebut konvolusi dalam bentuk matriks 3x3 dimana konstantanya bernilai 1. Aplikasi Deteksi Tepiini dirancang menggunakan bahasa pemrograman C#.


(14)

COMPARATIVE ANALYSIS ALGORITHM HOMOGENEITY AND ALGORITHM PREWITT FOR EDGE DETECTION IMAGE

ON BMP

ABSTRACT

One of the image processing techniques is edge detection. Edge detection is used to identify the boundary of an object against a background of overlapping. Therefore, when the outline of the image can be identified accurately, all objects can be located and basic properties such as area, shape, and size of the object can be measured. In this application of edge detection algorithm is taken two algorithms for comparison, Homogeneity and Prewitt algorithm. Homogeneity algorithm is widely associated with local information extracted from the image and reflect how uniformity of an area on the image. Prewitt algorithm works using a mathematical procedure called convolution in the form of a 3x3 matrix where the constant is 1. Edge Detection application is designed using the C# programming language.


(15)

PENDAHULUAN

1.1Latar Belakang

Mata merupakan salah satu panca indra yang digunakan manusia untuk melihat. Namun mata manusia memiliki keterbatasan dalam menangkap sinyal elektromagnetik. Oleh karena itu, diciptakanlah komputer atau mesin pencitraan yang dapat menangkap hampir keseluruhan sinyal elektromagnetik. Mesin pencitraan dapat bekerja dengan citra dari sumber yang tidak sesuai, tidak cocok, atau tidak dapat ditangkap dengan penglihatan manusia. Hal inilah yang menyebabkan pengolahan citra digital memiliki kegunaan yang sangat luas. Teknologi pengolahan citra dapat masuk ke berbagai bidang seperti kedokteran, geologi, kelautan, industri, dan lain sebagainya.

Salah satu teknik pengolahan citra yang digunakan adalah deteksi tepi (edge detection). Deteksi tepi adalah hal yang umum dalam proses pengolahan citra digital karena merupakan salah satu langkah awal dalam melakukan segmentasi citra, yang bertujuan untuk mempresentasikan objek-objek yang terkandung dalam citra tersebut. Deteksi tepi berfungsi untuk mengidentifikasikan garis batas dari suatu objek terhadap latar belakang yang saling tumpang tindih. Sehingga apabila garis tepi pada citra dapat diidentifikasikan dengan akurat, semua objek dapat ditemukan dan sifat dasar seperti area, bentuk, dan ukuran objek dapat diukur. Tepian citra adalah posisi dimana intensitas piksel dari citra berubah dari nilai rendah ke nilai tinggi atau sebaliknya. Saat ini telah ada beberapa metode yang dapat digunakan untuk pendeteksian tepi, contohnya adalah algoritma Sobel, Canny, Prewitt dan Homogeneity. Dalam penelitian ini diambil dua algoritma untuk perbandingan yaitu algoritma Homogeneity


(16)

dan algoritma Prewitt. Algoritma Homogeneity secara luas berkaitan dengan informasi lokal yang diekstrak dari citra dan mencerminkan bagaimana keseragaman suatu daerah pada citra. Algoritma Prewitt bekerja menggunakan prosedur matematika yang disebut konvolusi dalam bentuk matriks 3x3 dimana konstantanya bernilai 1.

1.2Rumusan Masalah

Yang menjadi rumusan masalah dalam penelitian ini adalah bagaimana menganalisa algoritma Homogeneity dan algoritma Prewitt pada citra berwarna dan bagaimana merancang perangkat lunak yang mampu mendeteksi tepi dengan menggunakan kedua algoritma tersebut.

1.3Batasan Masalah

Dalam penelitian ini penulis membuat batasan masalah, yaitu:

1. Citra yang digunakan bertipe file .bmp dengan mode warna RGB dan Grayscale, dengan kernel matriks 3x3

2. Parameter perbandingan, yaitu citra hasil deteksi tepi dengan nilai threshold bervariasi, kecepatan dalam melakukan deteksi tepi, Mean Square Error (MSE) dan Peak Signal to Noise Ratio (PSNR).

3. Hasil deteksi tepi yang disimpan bertipe file .bmp

4. Bahasa pemrograman yang digunakan adalah Microsoft Visual C#.

1.4Tujuan Penelitian

Penelitian ini bertujuan untuk membandingkan algoritma Homogeneity dan algoritma Prewitt dalam mendeteksi tepi pada citra.


(17)

1.5Manfaat Penelitian

Manfaat penulisan dari penelitian ini adalah untuk memahami algoritma Homogeneity dan algoritma Prewitt dalam mendeteksi tepi dari sebuah citra dan diperolehnya perangkat lunak yang mampu mendeteksi tepi dengan menggunakan kedua algoritma.

1.6Metodologi Penelitian

Dalam penelitian ini, tahapan-tahapan yang akan dilalui adalah sebagai berikut: 1. Studi Kepustakaan

Pengumpulan referensi dalam penelitian yang penulis lakukan dengan mencari jurnal, buku, tulisan ilmiah, e-book, maupun artikel lain yang berhubungan dengan deteksi tepi, pengolahan citra, Algoritma Homogeneity, Algoritma Prewitt.

2. Analisis dan Perancangan Sistem

Tahap ini digunakan untuk mengolah data dari hasil studi kepustakaan kemudian melakukan analisis sehingga menjadi suatu informasi. Proses ini meliputi pembuatan algoritma program, UML, flowchart sistem, rancangan aplikasi, dan pembuatan userinterface aplikasi.

3. Implementasi Sistem

Menerapkan Algoritma Homogeneity dan Prewitt ke dalam aplikasi komputer yang sedang dirancang.

4. Pengujian Aplikasi

Menguji apakah aplikasi yang dibuat telah berhasil berjalan sesuai dengan keinginan dan melakukan perbaikan kesalahan jika masih terdapat error pada aplikasi.


(18)

5. Dokumentasi

Pada tahap ini seluruh kegiatan dari awal hingga akhir penelitian akan dituliskan ke dalam format penulisan tugas akhir dengan disertai kesimpulan akhir.

1.7Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri dari:

BAB 1 : PENDAHULUAN

Bab ini menjelaskan mengenai latar belakang pemilihan judul skripsi ” Analisis Perbandingan Algoritma Homogeneity dan Algoritma Prewitt untuk Deteksi Tepi pada Citra BMP”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika penulisan.

BAB 2 : LANDASAN TEORI

Bab ini membahas teori-teori yang berkaitan dengan Pengolahan Citra, Deteksi Tepi, algoritma Homogeneity dan algoritma Prewitt.

BAB 3 : ANALISIS DAN PERANCANGAN

Bab ini akan membahas mengenai analisis kebutuhan sistem yang meliputi analisis pengenalan, analisis algoritma dan perancangan sistem.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN

Bab ini menjelaskan kriteria yang dibutuhkan agar aplikasi yang dirancang berjalan dengan baik dan pengujian kinerja dari aplikasi tersebut.

BAB 5 : KESIMPULAN DAN SARAN

Bab ini memuat kesimpulan dari uraian bab-bab sebelumnya dan hasil penelitian yang diperoleh. Bab ini juga memuat saran yang diharapkan dapat bermanfaat untuk pengembangan selanjutnya.


(19)

LANDASAN TEORI

2.1Citra Digital

Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra merupakan salah satu komponen multimedia dimana memegang peranan yang sangat penting sebagai bentuk informasi visual. Citra mempunyai karakteristik yang tidak dimilki oleh data teks, yaitu citra kaya dengan informasi. Ditinjau dari sudut pandang matematis, citra merupakan fungsi berkelanjutan (continue) dari intensitas cahaya pada bidang dwimatra (dua dimensi) [7]. Pada Gambar 2.1 adalah citra digital dengan objek Mesjid Raya Al Mashun atau lebih dikenal Mesjid Raya Medan.

Gambar 2.1. Citra digital dengan objek Mesjid

Citra digital merupakan sebuah larik (array) yang berisi nilai-nilai riil maupun kompleks yang direpresentasikan dengan deretan bit tertentu. Pada umumnya citra digital berbentuk empat persegi panjang, dan dimensi ukurannya dinyatakan sebagai tinggi x lebar. Citra Digital merupakan suatu fungsi intensitas cahaya f(x,y), dimana harga x dan y merupakan koordinat spasial dan harga fungsi tersebut pada setiap titik (x,y) merupakan tingkat kecerahan citra pada titik tersebut. Citra digital yang


(20)

tingginya N, lebarnya M, dan memiliki L derajat keabuan dapat dianggap sebagai fungsi:

(2.1) Citra digital yang berukuran N x M lazim dinyatakan dengan matriks berukuran N baris dan M kolom sebagai berikut:

(2.2)

Keterangan:

N = jumlah baris,0≤ y≤N-1 M = jumlah kolom,0≤=x≤M-1

L = maksimal warna intensitas (derajat keabuan), 0≤f(x,y) ≤L-1

Masing-masing elemen pada citra digital disebut image element atau piksel. Jadi, citra yang berukuran N x M mempunyai NM-buah piksel. Proses digitalisasi koordinat (x,y) dikenal sebagai pencuplikan citra (image sampling), sedangkan proses digitalisasi derajat keabuan f(x,y) disebut kuantisasi derajat keabuan (gray-level quantization). [7]

Berdasarkan format penyimpanan nilai warnanya, citra terdiri atas empat jenis, yaitu:

a. Citra biner atau monokrom

Pada citra jenis ini, setiap titik atau piksel hanya bernilai 0 atau 1. Dimana setiap titik membutuhkan media penyimpanan sebesar 1 bit. Citra biner ditunjukkan pada gambar 2.2.

, { ≤ ≤≤ ≤ ≤ ≤

, = [

, , … ,

, ,

⋮ ⋮

− , − ,

… ,

⋮ ⋮

… − , −


(21)

Gambar 2.2. Citra biner

b. Citra skala keabuan

Citra skala keabuan mempunyai kemungkinan warna antara hitam (minimal) dan putih (maksimal). Jumlah maksimum warna sesuai dengan bit penyimpanan yang digunakan. Citra sekala keabuan di tunjukkan pada gambar 2.3.

Gambar 2.3. Citra skala keabuan

c. Citra warna

Setiap titik (piksel) pada citra warna mewakili warna yang merupakan kombinasi dari tiga warna dasar yaitu merah, hijau dan biru. Setiap warna dasar mempunyai intensitas sendiri dengan nilai maksimum terdiri dari 8 bit, 16 bit dan 24 bit. Masing-masing citra 8 bit, 16 bit, dan 24 bit ditunjukkan pada gambar 2.4, gambar 2.5 dan gambar 2.6.


(22)

Gambar 2.4. Citra warna 8 bit

Gambar 2.5. Citra warna 16 bit

Gambar 2.6. Citra warna 24 bit

2.1.1 Format Citra Digital BMP (Bitmap)

Format .bmp adalah format penyimpanan standar tanpa kompresi yang umum dapat digunakan untuk menyimpan citra biner hingga citra warna. Format ini terdiri dari


(23)

beberapa jenis yang setiap jenisnya ditentukan dengan jumlah bit yang digunakan untuk menyimpan sebuah nilai piksel. [8]

2.2Pengolahan Citra

Meskipun sebuah citra kaya informasi, namun seringkali citra yang dimiliki mengalami penurunan mutu (degradasi), misalnya mengandung cacat atau derau (noise), warnanya terlalu kontras, kurang tajam, kabur (blurring), dan sebagainya. Tentu saja citra semacam ini menjadi lebiih sulit diinterpretasi karena informasi yang disampaikan oleh citra tersebut menjadi berkurang. Agar citra menjadi baik kualitasnya maka perlu adanya yang namanya pengolahan citra digital (image processing).

Pengolahan citra adalah pemrosesan citra, khususnya dengan menggunakan komputer, menjadi citra yang kualitasnya lebih baik. Sebagai contoh, citra bangunan PDAM pada Gambar 2.7 (a) tampak agak gelap, lalu dengan proses pengolahan citra kontrasnya diperbaiki sehingga menjadi lebih terang dan tajam (b). [7]

(a) (b)

Gambar 2.7. (a) citra digital dengan objek bangunan PDAM Tirtanadi agak gelap, (b) citra digital dengan objek bangunan PDAM Tirtanadi yang telah

diperbaiki kontrasnya sehingga terlihat jelas dan tajam.

Secara umum, pengolahan dapat diklasifikasikan dalam beberapa jenis operasi sebagai berikut [7]:


(24)

a. Perbaikan kualitas citra (image enhancement)

Jenis operasi ini bertujuan untuk memperbaiki kualitas citra dengan cara memanipulasi parameter-parameter citra. Dengan operasi ini, ciri -ciri khusus yang terdapat di dalam citra lebih ditonjolkan. Contoh-contoh operasi perbaikan citra, yaitu perbaikan kontras gelap atau terang, perbaikan tepian objek (edge enhancement), penajaman (sharpening), pemberian warna semu (pseudocoloring), penapisan derau (noise filtering). b. Pemugaran citra (image restoration)

Operasi ini bertujuan menghilangkan atau meminimumkan cacat pada citra. Tujuan pemugaran citra hampir sama dengan operasi perbaikan citra. Bedanya, pada pemugaran citra penyebab degradasi gambar diketahui. Contoh-contoh operasi pemugaran citra, yaitu penghilangan kesamaran (deblurring) dan penghilangan derau (noise).

c. Pemampatan citra (image compression)

Jenis operasi ini dilakukan agar citra dapat direpresentasikan dalam bentuk yang lebih kompak sehingga memerlukan memori yang lebih sedikit. Hal penting yang harus diperhatikan dalam pemampatan adalah citra yang telah dimampatkan harus tetap mempunyai kualitas gambar yang bagus. Contoh metode pemampatan citra adalah metode JPEG.

d. Segmentasi citra (image segmentation)

Jenis operasi ini bertujuan untuk memecah suatu citra ke dalam beberapa segmen dengan suatu kriteria tertentu. Jenis operasi ini berkaitan erat dengan pengenalan pola.

e. Analisis citra (image analysis)

Jenis operasi ini bertujuan menghitung besaran kuantitif dari citra untuk menghasilkan deskripsinya. Teknik analisis citra mengekstraksi ciri-ciri tertentu yang membantu dalam identifikasi objek. Proses segmentasi kadang diperlukan untuk melokalisasi objek yang diinginkan dari sekelilingnya. Contoh-contoh operasi analisis citra, yaitu pendeteksian tepi


(25)

objek (edge detection), ekstraksi batas (boundary) dan representasi daerah (region).

f. Rekonstruksi citra (image reconstruction)

Jenis operasi ini bertujuan untuk membentuk ulang objek dari beberapa citra hasil proyeksi. Operasi rekonstruksi citra banyak digunakan dalam bidang medis. Misalnya beberapa foto rontgen dengan sinar X digunakan untuk membentuk ulang gambar organ tubuh.

2.3 Deteksi Tepi (Edge Detection)

Pendeteksian tepi merupakan langkah pertama untuk melingkupi informasi didalam citra. Tepi mencirikan batas-batas objek, oleh karena itu tepi berguna untuk proses segmentasi dan identifikasi objek didalam citra. Tujuan operasi pendeteksian tepi adalah untuk meningkatkan penampakan garis batas suatu daerah atau objek didalam citra. [7]

Deteksi tepi merupakan salah satu proses pengolahan citra yang menggunakan filter atau penapis. Untuk mengaplikasikan penapis pada citra, digunakan metode konvolusi. Konvolusi dinyatakan dalam matriks, dimana setiap elemen matriks penapis tersebut dinamakan koefisien konvolusi. Operasi bekerja dengan menggeser kernel piksel per piksel, yang hasilnya kemudian disimpan dalam matriks baru. Untuk lebih jelasnya, berikut contoh konvolusi yang terjadi antara citra f(x,y) berukuran 6x6 dengan sebuah kernel berukuran 3x3 yang diperlihatkan pada Gambar 2.8.

Gambar 2.8. Matriks Citra dan kernel sebelum konvolusi dengan tanda • menunjukkan posisi (0,0) dari kernel


(26)

Tahapan untuk mendapatkan hasil konvolusi yang terjadi antara citra dan kernel diatas dapat dilihat pada Gambar 2.9.

Gambar 2.9. Tahapan Proses Pembentukan Konvolusi

Sehingga diperoleh hasil akhir dari proses konvolusi tersebut, yang ditunjukkan pada Gambar 2.10.

Gambar 2.10. Hasil Konvolusi Citra dan Kernel

Tepi (edge) adalah perubahan nilai intensitas derajat keabuan yang mendadak besar dalam jarak yang singkat. Tepi biasanya terdapat pada batas antara dua daerah berbeda pada suatu citra. Tepi dapat diorientasikan dengan satu arah, dan arah ini

g = 0+(-6)+0+(-6) 12+(-3)+0+(-4) +0=1

g = 0+(-4)+0+(-4) 15+(-8)+0+(-1) +0= -2

g = 0+(-4)+0+(-5) 20+(-1)+0+(-1) +0=9


(27)

berbeda-beda bergantung pada perubahan intensitas. Ada tiga macam tepi yang terdapat didalam citra digital ditunjukan pada Gambar 2.11, yaitu [7]:

a. Tepi curam yaitu tepi dengan perubahan intensitas yang tajam. Arah tepi berkisar 900

b. Tepi landai yaitu tepi dengan sudut arah yang kecil. Tepi landai dapat dianggap terdiri dari sejumlah tepi-tepi lokal yang lokasinya berdekatan. c. Tepi yang mengandung derau (noise). Umumnya tepi yang terdapat pada

aplikasi komputer mengandung derau. Operasi peningkatan kualitas citra dapat dilakukan terlebih dahulu sebelum pendeteksian tepi.

Gambar 2.11. Jenis-jenis Tepi

Pendeteksian tepi merupakan langkah pertama untuk melingkupi informasi didalam citra. Tepi mencirikan batas-batas objek dan karena itu tepi berguna untuk proses segmentasi dan identifikasi objek didalam citra. Tujuan operasi pendeteksian tepi adalah untuk meningkatkan penampakan garis batas suatu daerah atau objek didalam citra.

2.4 Algoritma Prewitt

Algoritma Prewitt adalah satu dari jenis operator gradien ortogonal (sebidang) yang menggunakan dua matriks dengan ukuran 3x3 (kernel) yang ditunjukkan pada gambar 2.12, yang mana menghitung gradien dalam arah x dan gradien dalam arah y. Matriks tersebut beroperasi di atas citra dengan memanipulasi persegi piksel. Prewitt menghitung gradien intensitas citra pada setiap titik dan kemudian memberikan


(28)

perintah untuk meningkatkan intensitas citra pada setiap titik dari terang ke gelap. Daerah Tepi merupakan kontras intensitas kuat yang gelap atau terang.

-1 -1 -1 -1 0 1

0 0 0 -1 0 1

1 1 1 -1 0 1

Kernel Gx Kernel Gy

Gambar 2.12. Kernel pada operator Prewitt

Kernel ini dirancang untuk merespon secara maksimal untuk tepi yang berjalan secara vertikal dan horizontal relatif terhadap grid piksel, satu kernel untuk masing-masing dua orientasi tegak lurus. Kernel dapat diterapkan secara terpisah pada gambar masukan, untuk menghasilkan pengukuran yang terpisah dari komponen gradien pada setiap orientasi (Gx dan Gy) yang kemudian dapat dikombinasikan bersama untuk menemukan besarnya absolut dari gradien pada setiap titik dan orientasi dari gradiennya. Besarnya gradien diberikan oleh:

(2.3) Secara matematis, pendekatan gradien dihitung menggunakan:

(2.4) Dua komponen dari gradien sangat mudah dihitung dan ditambahkan diatas citra masukan menggunakan operator konvolusi (kernel) yang ditunjukkan pada Gambar 2.13.

[

,

]

Gambar 2.13. Operator konvolusi untuk menghitung gradien

Kernel digunakan untuk menghitung gradien, yaitu: |G| = |(a2 + 1 x a3 + a4) – (a0 + 1 x a7 + a6)|

|(a0 + 1 x a1 + a2) – (a6 + 1 x a5 + a4)| (2.5) |�| = √� + �


(29)

2.5 Algoritma Homogeneity

Algoritma Homogeneity adalah algoritma yang praktis dan cepat dalam mendeteksi tepi dimana dalam menentukan nilai maksimum dari pengurangan serangkaian piksel. Homogeneity menghitung perbedaan maksimum dari piksel dengan piksel tetangga yakni 8 arah, ditunjukkan pada gambar 2.14.

Gambar 2.14. Operator homogeneity

Untuk menghitung gradien, menggunakan:

G = (g(x,y) – a0), (g(x,y) – a1), (g(x,y) – a2), (g(x,y) – a3), (g(x,y) – a4), (g(x,y) – a5), (g(x,y) – a6), (g(x,y) – a7) (2.6)

2.6 Penilaian Kualitas Citra

Penilaian kualitas citra dilakukan dengan cara penilaian secara objektif dengan menggunakan besaran MSE dan PSNR kedua besaran tersebut membandingkan piksel-piksel pada posisi yang sama dari dua citra yang berlainan.

2.6.1 Mean Square Error

Mean Square Error (MSE) merupakan tolak ukur analisis kuantitatif yang digunakan untuk menilai kualitas sebuah citra keluaran dan keunggulan sebuah metode yang digunakan. Semakin tinggi MSE maka kualitas hasil pengolahan semakin buruk [1].

Rata-rata kuadrat nilai kesalahan antara citra asli dengan citra hasil pengolahan yang secara matematis dapat dirumuskan dengan:

a

0

a

3

a

5

a

2

a

4

a

7

a

1

a

6 g(x,y)


(30)

(2.12) Dimana:

f(x,y) = citra asli

g(x,y) = citra hasil pengolahan M = Tinggi citra

N = Lebar citra

2.6.2 PSNR (Peak Signal to Noise Ratio)

Peak Signal to Noise Ratio (PSNR) merupakan nilai perbandingan antara harga maksimum warna pada citra hasil filtering dengan kuantitas gangguan (noise), yang dinyatakan dalam satuan desibel (dB), noise yang dimaksud adalah akar rata-rata kuadrat nilai kesalahan (√ � . Semakin tinggi nilai PSNR maka kualitas hasil pengolahan semakin baik. Secara matematis, nilai PSNR dapat dirumuskan sebagai berikut [1]:

(2.13)

� = ∑ ∑ | , − , |

− = − =

� = �� ( 55


(31)

ANALISIS DAN PERANCANGAN

3.1 Analisis

Dalam merancang sebuah sistem khususnya sistem yang berbasis aplikasi perlu dilakukan analisis. Analisis berguna untuk meminimalisir terjadinya kesalahan pada saat akan dirancangnya sebuah aplikasi. Analisis merupakan upaya untuk melakukan pemahaman tertentu terhadap sesuatu masalah yang dilakukan dalam pengkajian. Pemahaman tersebut bertujuan mengetahui kekurangan-kekurangan pada metode atau algoritma yang digunakan.

Dalam proses pembuatan suatu aplikasi mutlak dilakukan penelitian dan penganalisaan tentang aplikasi yang akan dibangun, berikut adalah beberapa analisis yang dilakukan untuk mendeteksi tepi menggunakan algoritma Prewiit dan algoritma Homogeneity pada citra RGB.

3.1.1 Analisis Masalah

Deteksi tepi dapat dilakukan dengan banyak metode atau algoritma. Pada aplikasi yang dirancang, deteksi tepi menggunakan algoritma Prewiit dan algoritma Homogeneity. Adapun deteksi tepi dilakukan pada citra digital RGB bertipe file bmp. Masing-masing memiliki cara kerja yang berbeda sehingga menghasilkan deteksi tepi yang berbeda. Analisis masalah digambarkan dengan diagram Ishikawa (Fishbone Diagram) berikut ini. Bagian kepala atau segiempat yang berada disebelah kanan merupakan maasalah. Sementara di bagian tulang-tulangnya merupakan penyebab. Pemodelan diagram ishikawa dapat dilihat pada gambar 3.1.


(32)

Gambar 3.1 Diagram Ishikawa

3.1.2 Analisis Kebutuhan Sistem

Dalam membangun sebuah sistem, tahap analisis kebutuhan sistem perlu dilakukan dengan tujuan untuk mempermudah analisis sistem dalam menentukan keseluruhan kebutuhan secara lengkap. Analisis kebutuhan sistem dapat dikelompokkan menjadi 2 bagian yaitu: kebutuhan fungsional dan kebutuhan non-fungsional.

3.1.2.1Analisis Fungsional Sistem

Analisis fungsional dibutuhkan untuk mengetahui hal-hal yang bisa dikerjakan oleh sistem. Berikut dijabarkan fungsi-fungsi yang dapat dikerjakan oleh sistem.

1. Sisitem akan melakukan deteksi tepi citra pada file berupa .bmp

2. Sistem menghitung nilai MSE dan PSNR sebagai perbandingan hasil pendeteksian tepi

3. Sistem melakukan deteksi tepi citra dengan menggunakan Algoritma Prewitt dan Algoritma Homogeneity

User

Machine/tools

Metode

Material

Deteksi Tepi

Keterbatasan mata manusia untuk melihat tepi pada citra

File .bmp sebagai file inputan

Algoritma Prewitt Algoritma Homogeneity

Menerima input, text box, perbesaran citra C#


(33)

3.1.2.2Analisis Non-fungsional Sistem

Analisis non-fungsional berhubungan dengan hal-hal berikut ini: 1. Performa

Perangkat lunak yang akan dibangun dapat menunjukkan hasil citra sebelum dan sesudah dideteksi tepi

2. Mudah dipelajari dan digunakan

Perangkat lunak yang akan dibangun memiliki tampilan yang user friendly dan resposif

3. Hemat biaya

Perangkat lunak yang dibangun akan mempermudah pengguna untuk efesiensi waktu, sehingga hemat biaya

4. Dokumentasi

Perngkat lunak yang akan dibangun dapat menyimpan hasil deteksi tepi cita 5. Kontrol

Perngakat lunak yang dibangun dapat menampilkan ukuran asli citra setelah dideteksi tepi

3.1.3 Analisis Deteksi Tepi Menggunakan Algoritma Prewitt

Algoritma Prewitt bekerja menggunakan matriks 3x3 kernel x dan kernel y dengan konstanta, yaitu 1. Nilai piksel RGB dari citra kemudian diambil untuk dikonvolusi dengan kernel x dan kernel y. setelah konvolusi dilakukan, kemudian dilakukan perhitungan gradien setiap piksel. Dengan memberikan batas ambang atau threshold terhadap gradien, maka didapat citra hasil deteksi tepi.


(34)

Gambar 3.2 Citra yang diambil nilai pikselnya

Pada Gambar 3.2 yang diambil nilai pikselnya, kemudian dilakukan perhitungan konvolusi dengan kernel x, sebagai berikut:

Tabel 3.1 Matriks nilai citra dan kernel x algoritma Prewitt

56 58 59 59 60

40 43 41 41 41

33 35 36 36 39 -1 0 1

45 49 51 52 53 -1 0 1

72 82 80 75 76 -1 0 1

69 101 101 94 94 100 106 106 108 105

Tabel 3.2 Hasil konvolusi dengan kernel x algoritma Prewitt

Posisi (i,j)

Hasil Konvolusi Posisi (i,j)

Hasil Konvolusi

1,1 0 5,1 0

1,2 0 5,2 = | 45(-1) + 49(0) + 51(1) +

72(-1) + 82(0) + 80(1) + 69(-1) + 101(0) + 101(69(-1) |

= 46

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39


(35)

72 82 80 75 76

69 101 101 94 94 100 106 106 108 105

1,3 0 5,3 = | 49(-1) + 51(0) + 52(1) +

82(-1) + 80(0) + 75(1) + 101(-1) + 101(0) + 94(1) | = 11

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

1,4 0 5,4 = | 51(-1) + 52(0) + 53(1) +

80(-1) + 75(0) + 76(1) + 101(-1) + 94(0) + 94(1) | = 9

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53

72 82 80 75 76

69 101 101 94 94

100 106 106 108 105

1,5 0 5,5 0

2,1 0 6,1 0

2,2 = | 56(-1) + 58(0) + 59(1) + 40(-1) + 43(0) + 41(1) + 33(-1) + 35(0) + 36(1) | = 7

56 58 59 59 60

40 43 41 41 41

33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

6,2 = | 72(-1) + 82(0) + 80(1) + 69(-1) + 101(0) + 101(1) + 100(-1) + 106(0) + 106(1) | = 46

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53

72 82 80 75 76

69 101 101 94 94

100 106 106 108 105 2,3 = | 58(-1) + 59(0) + 59(1) +

43(-1) + 41(0) + 41(1) + 35(-1) + 36(0) + 36(35(-1) |

= 0

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76

6,3 = | 82(-1) + 80(0) + 75(1) + 101(-1) + 101(0) + 94(1) + 106(-1) + 106(0) + 108(1) | = 12

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76


(36)

100 106 106 108 105 100 106 106 108 105 2,4 = | 59(-1) + 59(0) + 60(1) +

41(-1) + 41(0) + 41(1) + 36(-1) + 36(0) + 39(36(-1) |

= 4

56 58 59 59 60

40 43 41 41 41

33 35 36 36 39

45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

6,4 = | 80(-1) + 75(0) + 76(1) + 101(-1) + 94(0) + 94(1) + 106(-1) + 108(0) + 105(1) | = 12

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76

69 101 101 94 94

100 106 106 108 105

2,5 0 6,5 0

3,1 0 7,1 0

3,2 = | 40(-1) + 43(0) + 41(1) + 33(-1) + 35(0) + 36(1) + 45(-1) + 49(0) + 51(45(-1) |

= 10

56 58 59 59 60

40 43 41 41 41

33 35 36 36 39

45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

7,2 0

3,3 = | 43(-1) + 41(0) + 41(1) + 35(-1) + 36(0) + 36(1) + 49(-1) + 51(0) + 52(49(-1) |

= 2

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

7,3 0

3,4 = | 41(-1) + 41(0) + 41(1) + 36(-1) + 36(0) + 39(1) + 51(-1) + 52(0) + 53(51(-1) |

= 5

56 58 59 59 60 40 43 41 41 41

33 35 36 36 39

45 49 51 52 53

72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

7,4 0


(37)

4,1 0

4,2 = | 33(-1) + 35(0) + 36(1) + 45(-1) + 49(0) + 51(1) + 72(-1) + 82(0) + 80(72(-1) |

= 17

56 58 59 59 60 40 43 41 41 41

33 35 36 36 39

45 49 51 52 53

72 82 80 75 76 69 101 101 94 94 100 106 106 108 105 4,3 = | 35(-1) + 36(0) + 36(1) +

49(-1) + 51(0) + 52(1) + 82(-1) + 80(0) + 75(82(-1) |

= 3

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105 4,4 = | 36(-1) + 36(0) + 39(1) +

51(-1) + 52(0) + 53(1) + 80(-1) + 75(0) + 76(80(-1) |

= 1

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39

45 49 51 52 53

72 82 80 75 76

69 101 101 94 94 100 106 106 108 105 4,5 0

Tabel 3.3 Matriks hasil konvolusi algoritma Prewitt

0 0 0 0 0

0 7 0 4 0

0 10 2 5 0

0 17 3 1 0

0 46 11 9 0 0 46 12 12 0


(38)

Selanjutnya dilakukan perhitungan konvolusi kernel y terhadap nilai piksel dari Gambar 3.1, sebagai berikut:

Tabel 3.4 Matriks nilai citra dan kernel y algoritma Prewitt

56 58 59 59 60

40 43 41 41 41

33 35 36 36 39 1 1 1

45 49 51 52 53 0 0 0

72 82 80 75 76 -1 -1 -1

69 101 101 94 94 100 106 106 108 105

Tabel 3.5 Hasil konvolusi dengan kernel y algoritma Prewitt

Posisi (i,j)

Hasil Konvolusi Posisi (i,j)

Hasil Konvolusi

1,1 0 5,1 0

1,2 0 5,2 = |45(1) + 49(1) + 51(1) +

72(0) + 82(0) + 80(0) + 69(-1) + 101(-69(-1) + 101(-69(-1) | = 126

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39

45 49 51 52 53

72 82 80 75 76

69 101 101 94 94 100 106 106 108 105

1,3 0 5,3 = |49(1) + 51(1) + 52(1) +

82(0) + 80(0) + 75(0) + 101(-1) + 101(-101(-1) + 94(-101(-1) |

= 144

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

1,4 0 5,4 = |51(1) + 52(1) + 53(1) +

80(0) + 75(0) + 76(0) + 101(-1) + 94(-101(-1) + 94(-101(-1) |

= 133

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39


(39)

45 49 51 52 53

72 82 80 75 76

69 101 101 94 94

100 106 106 108 105

1,5 0 5,5 0

2,1 0 6,1 0

2,2 = |56(1) + 58(1) + 59(1) + 40(0) + 43(0) + 41(0) + 33(-1) + 35(-33(-1) + 36(-33(-1) |

= 69

56 58 59 59 60

40 43 41 41 41

33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

6,2 = |72(1) + 82(1) + 80(1) + 69(0) + 101(0) + 101(0) + 100(-1) + 106(-1) + 106(-1) | = 78

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53

72 82 80 75 76

69 101 101 94 94

100 106 106 108 105 2,3 = |58(1) + 59(1) + 59(1) +

43(0) + 41(0) + 41(0) + 35(-1) + 36(-35(-1) + 36(-35(-1) |

= 69

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

6,3 = |82(1) + 80(1) + 75(1) + 101(0) + 101(0) + 94(0) + 106(-1) + 106(-1) + 108(-1) | = 83

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105 2,4 = |59(1) + 59(1) + 60(1) +

41(0) + 41(0) + 41(0) + 36(-1) + 36(-36(-1) + 39(-36(-1) |

= 67

56 58 59 59 60

40 43 41 41 41

33 35 36 36 39

45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

6,4 = |80(1) + 75(1) + 76(1) + 101(0) + 94(0) + 94(0) + 106(-1) + 108(-1) + 105(-1) | = 88

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76

69 101 101 94 94

100 106 106 108 105

2,5 0 6,5 0

3,1 0 7,1 0

3,2 = |40(1) + 43(1) + 41(1) + 33(0) + 35(0) + 36(0) + 45(-1) + 49(-45(-1) + 51(-45(-1) |

= 21

56 58 59 59 60


(40)

33 35 36 36 39

45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105 3,3 = |43(1) + 41(1) + 41(1) +

35(0) + 36(0) + 36(0) + 49(-1) + 51(-49(-1) + 52(-49(-1) |

= 27

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

7,3 0

3,4 = |41(1) + 41(1) + 41(1) + 36(0) + 36(0) + 39(0) + 51(-1) + 52(-51(-1) + 53(-51(-1) |

= 33

56 58 59 59 60 40 43 41 41 41

33 35 36 36 39

45 49 51 52 53

72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

7,4 0

3,5 0 7,5 0

4,1 0

4,2 = |33(1) + 35(1) + 36(1) + 45(0) + 49(0) + 51(0) + 72(-1) + 82(-72(-1) + 80(-72(-1) |

= 130

56 58 59 59 60 40 43 41 41 41

33 35 36 36 39

45 49 51 52 53

72 82 80 75 76 69 101 101 94 94 100 106 106 108 105 4,3 = |35(1) + 36(1) + 36(1) +

49(0) + 51(0) + 52(0) + 82(-1) + 80(-82(-1) + 75(-82(-1) |

= 130

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39


(41)

45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105 4,4 = |36(1) + 36(1) + 39(1) +

51(0) + 52(0) + 53(0) + 80(-1) + 75(-80(-1) + 76(-80(-1) |

= 120

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39

45 49 51 52 53

72 82 80 75 76

69 101 101 94 94 100 106 106 108 105 4,5 0

Tabel 3.6 Matriks hasil konvolusi algoritma Prewitt

0 0 0 0 0

0 69 69 67 0 0 21 27 33 0 0 130 130 120 0 0 126 144 133 0 0 78 83 88 0

0 0 0 0 0

Setelah didapat hasil perhitungan konvolusi antara nilai piksel citra dengan kernel x dan kernel y, kemudian dilakukan perhitungan gradien antara hasil kernel x dan kernel y dengan batas ambang bernilai 0.

Tabel 3.7 Matriks kernel x dan kernel y algoritma Prewitt

0 0 0 0 0 0 0 0 0 0

0 7 0 4 0 0 69 69 67 0

0 10 2 5 0 0 21 27 33 0

0 17 3 1 0 0 130 130 120 0

0 46 11 9 0 0 126 144 133 0

0 46 12 12 0 0 78 83 88 0

0 0 0 0 0 0 0 0 0 0

Tabel 3.8 Perhitungan gradient algoritma Prewitt

Posisi (i,j)

Hasil Gradien Posisi (i,j)


(42)

1,2 0 5,2 = √(46)2+(126)2 = 134

1,3 0 5,3 = √(11)2+(144)2

= 144

1,4 0 5,4 = √(9)2+(133)2

= 133

1,5 0 5,5 0

2,1 0 6,1 0

2,2 = √(7)2+(69)2 = 69

6,2 = √(46)2+(78)2 = 91

2,3 = √(0)2+(69)2 = 69

6,3 = √(12)2+(83)2 = 84

2,4 = √(4)2+(67)2 = 67

6,4 = √(12)2+(88)2 = 89

2,5 0 6,5 0

3,1 0 7,1 0

3,2 = √(10)2+(21)2 = 23

7,2 0 3,3 = √(2)2+(27)2

= 27

7,3 0 3,4 = √(5)2+(33)2

= 33

7,4 0

3,5 0 7,5 0

4,1 0

4,2 = √(17)2+(130)2 = 131

4,3 = √(3)2+(130)2 = 130

4,4 = √(1)2+(120)2 = 120

4,5 0

Tabel 3.9 Matriks hasil akhir deteksi tepi algoritma Prewitt

0 0 0 0 0

0 69 69 67 0 0 23 27 33 0 0 131 130 120 0 0 134 144 133 0 0 91 84 89 0


(43)

3.1.4 Analisis Deteksi Tepi Menggunakan Algoritma Homogeneity

Pada algoritma homogeneity, nilai piksel dari citra tidak melakukan perhitungan konvolusi. Nilai piksel dari citra dibagi kedalam matriks 3x3 yang kemudian nilai piksel pada posisi tengah dilakukan pengurangan terhadap masing-masing posisi disisi atas, bawah, kanan, kiri dan sisi diagonalnya. Hasil pengurangan masing-masing sisi kemudian dijumlahkan keseluruhan untuk mendapatkan gradien. Dengan memberikan batas ambang atau threshold terhadap gradien, maka didapat citra hasil deteksi tepi.

Tabel 3.10 Nilai matriks piksel citra sebelum deteksi tepi

56 58 59 59 60

40 43 41 41 41

33 35 36 36 39

45 49 51 52 53

72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

Tabel 3.11 Perhitungan matriks algoritma Homogeneity

Posisi (i,j)

Hasil Posisi

(i,j)

Hasil

1,1 0 5,1 0

1,2 0 5,2 =|(82-45) + (82-49) + (82-51)

+ (82-72) + (82-80) + (82-69) + (82-101) + (82-101) | = 88

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

1,3 0 5,3 =|(80-49) + (80-51) + (80-52)

+ 82) + 75) + (80-101) + (80-(80-101) + (80-94) | = 35

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76


(44)

69 101 101 94 94 100 106 106 108 105

1,4 0 5,4 =|(75-51) + (75-52) + (75-53)

+ 80) + 76) + (75-101) + (75-94) + (75-94) | = 1

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

1,5 0 5,5 0

2,1 0 6,1 0

2,2 =|(43-56) + (43-58) + (43-59) + (43-40) + (43-41) + (43-33) + (43-35) + (43-36) |

= 14

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

6,2 =|(101-72) + (101-82) + 80) + 69) + (101-101) + (101-100) + (101-106) + (101-106) |

= 92

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105 2,3 =|(41-58) + (41-59) + (41-59)

+ (41-43) + (41-41) + (41-35) + (41-36) + (41-36) |

= 39

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

6,3 =|(101-82) + (101-80) + 75) + 101) + (101-94) + (101-106) + (101-106) + (101-108) |

= 56

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105 2,4 =|(41-59) + (41-59) + (41-60)

+ (41-41) + (41-41) + (41-36) + (41-36) + (41-39) |

= 43

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76

6,4 =|(94-80) + (94-75) + (94-76) + 101) + 94) + (94-106) + (94-108) + (94-105) | = 7

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76


(45)

69 101 101 94 94 100 106 106 108 105

69 101 101 94 94 100 106 106 108 105

2,5 0 6,5 0

3,1 0 7,1 0

3,2 =|(35-40) + (35-43) + (35-41) + (35-33) + (35-36) + (35-45) + (35-49) + (35-51) |

= 58

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

7,2 0

3,3 =|(36-43) + (36-41) + (36-41) + (36-35) + (36-36) + (36-49) + (36-51) + (36-52) |

= 60

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

7,3 0

3,4 =|(36-41) + (36-41) + (36-41) + (36-36) + (36-39) + (36-51) + (36-52) + (36-53) |

= 66

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105

7,4 0

3,5 0 7,5 0

4,1 0

4,2 =|(49-33) + (49-35) + (49-36) + (49-45) + (49-51) + (49-72) + (49-82) + (49-80) |

= 42

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53


(46)

69 101 101 94 94 100 106 106 108 105 4,3 =|(51-35) + (51-36) + (51-36)

+ (51-49) + (51-52) + (51-82) + (51-80) + (51-75) |

= 37

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105 4,4 =|(52-36) + (52-36) + (52-39)

+ (52-51) + (52-53) + (52-80) + (52-75) + (52-76) |

= 30

56 58 59 59 60 40 43 41 41 41 33 35 36 36 39 45 49 51 52 53 72 82 80 75 76 69 101 101 94 94 100 106 106 108 105 4,5 0

Tabel 3.12 Nilai matriks piksel citra sesudah deteksi tepi dengan algoritma Homogeneity

0 0 0 0 0

0 14 39 43 0

0 58 60 66 0

0 42 37 30 0

0 88 35 1 0

0 92 56 7 0

0 0 0 0 0

3.2Perancangan Sistem

Dalam membangun sebuah sistem perlu adanya perancangan perangkat lunak yang nantinya sangat membantu dalam pembangunan sistem. Perancangan perangkat lunak dilakukan agar memudahkan pengguna untuk memakai sistem tersebut. Dalam


(47)

penelitian ini perancangan perangkat lunak dibuat sebaik mungkin agar dapat berjalan sebagaimana mestinya.

Perancangan merupakan tahap lanjutan dari analisis sistem dimana pada perancangan sistem digambarkan rancangan sistem yang akan dibangun sebelum dilakukan pengkodean kedalam suatu bahasa pemograman. Dalam perancangan sistem tidak lepas dari hasil analisis yang menjadikan sistem dapat dirancang. Desain umum yang akan diaplikasikan bertujuan untuk memberikan gambaran secara umum tentang sistem yang akan dibangun. Perancangan sistem yang dilakukan terdiri dari perancangan flowchart dan tampilan antarmuka (Interface).

3.2.1 Perancangan Flowchart

3.2.1.1Flowchart Umum Sistem

Flowchart umum sistem dapat dilihat pada Gambar 3.3. Mulai

Input Citra (bmp)

Mulai

Input Citra (bmp)

Algoritma Prewitt

Citra Hasil Deteksi Tepi

Algoritma Homogeneity

Citra Hasil Deteksi Tepi


(48)

Gambar 3.3 Flowchart umum sistem

3.2.1.2Flowchart Deteksi Tepi Menggunakan Algoritma Prewitt

Selesai Selesai

A B

Tampilkan Citra Hasil Deteksi Tepi Tampilkan Citra


(49)

Flowchart Deteksi Tepi Menggunakan Algoritma Prewitt dapat dilihat pada Gambar 3.4.

Citra Hasil Deteksi Tepi

Selesai Membatasi gradien

sesuai batas ambang (threshold)

C Mulai

Input Citra

Ambil nilai piksel dari citra Konvolusi nilai piksel

dengan matriks 3x3 kernel x dan kernel y

Menghitung Gradien


(50)

Gambar 3.4 Flowchart Deteksi Tepi Menggunakan Algoritma Prewitt

3.2.1.3Flowchart Deteksi Tepi Menggunakan Algoritma Homogeneity

Flowchart deteksi tepi menggunakan algoritma homogeneity dapat dilihat pada Gambar 3.5.


(51)

Mulai

Input Citra

Ambil nilai piksel dari citra Pengurangan Piksel Pusat Dengan

Masing-Masing Sisi dalam matriks 3x3


(52)

Gambar 3.5 Flowchart Deteksi Tepi Menggunakan Algoritma Homogeneity

3.2.2 Perancangan Unified Modeling Language (UML)

Penulis menggunakan Unified Modeling Language (UML) dalam mendesain dan merancang aplikasi Pengenalan Lagu. UML yang akan digunakan ialah use case diagram dan activity diagram.

3.2.2.1Indentifikasi Use Case Diagram

Untuk mengetahui actor dan use case yang akan digunakan, maka dilakukan identifikasi actor dan identifikasi use case. Setelah mendapatkan actor dan use case, maka use case diagram dapat digambarkan.

Identifikasi actor dilakukan dengan menjawab pertanyaan-pertanyaan berikut, yaitu:

1. Siapa yang menggunakan sistem? Jawaban:

Citra Hasil Deteksi Tepi

Selesai Menghitung

Gradien

Membatasi gradien sesuai batas ambang (threshold)


(53)

Pengguna.

2. Siapa yang diperlukan untuk melaksanakan fungsi pada sistem? Jawaban:

Pengguna.

3. Bagaimana pengguna menggunakan sistem? Jawaban:

Pengguna menggunakan sistem dengan memasukkan citra RGB berformat bmp sebagai citra awal untuk dideteksi tepinya, kemudian citra tersebut diambil nilai pikselnya. Setelah diambil, dilakukan deteksi tepi menggunakan algoritma Prewiit atau algoritma Homogeneity.

Dengan demikian actor yang diperoleh adalah pengguna. Untuk mendapatkan use case dari pengguna, maka harus ditentukan hal-hal apa saja yang dapat dilakukan pengguna pada sistem. Adapun hal-hal yang dapat dilakukan oleh pengguna terhadap sistem adalah memasukkan citra berformat bmp.

Use case diagram yang digambarkan berdasarkan actor dan use case yang telah diperoleh. Adapun gambar use case diagram dapat dilihat pada Gambar 3.6.

Gambar 3.6 Use Case Deteksi Tepi

3.2.2.2Use Case Deteksi Tepi

Use case deteksi tepi merupakan use case yang akan menjelaskan proses ketika pengguna menggunakan aplikasi untuk mendeteksi tepi pada citra.

Deteksi Tepi Algoritma Prewitt

atau Algoritma Homogeneity

Sistem

Input Citra <<uses>>

<<extends>> Algoritma Homogeneity Pengguna

Algoritma Prewitt <<extends>>


(54)

Tabel 3.13 Dokumentasi naratif Use Case Deteksi Tepi

Nama use case Deteksi Tepi

Actor Pengguna

Deskripsi Use case ini mendeksripsikan proses mendeteksi tepi pada citra

Prakondisi Sudah masuk ke tampilan aplikasi deteksi tepi pada citra

Bidang khas suatu kejadian

Kegiatan Pengguna Respon Sistem 1. Pilih citra bmp

2. Pilih perintah “Proses” untuk melakukan deteksi tepi pada citra menggunakan

algoritma prewitt 3. Pilih perintah “Proses”

untuk melakukan deteksi tepi pada citra menggunakan

algoritma homogeneity

1. Sistem akan

menampilkan jendela memilih citra

2. Sistem akan

mengambil nilai piksel 3. Sistem akan memulai

untuk melakukan deteksi tepi pada citra menggunakan

algoritma prewitt 4. Sistem akan memulai

untuk melakukan deteksi tepi pada citra menggunakan

algoritma homogeneity 5. Sistem akan

menampilkan citra hasil deteksi tepi pada citra

Pasca kondisi Deteksi tepi pada citra selesai dilakukan

Activity diagram untuk use case deteksi tepi pada citra dapat dilihat pada Gambar 3.7


(55)

Pengguna Sistem

Gambar 3.7 Activity Diagram Deteksi Tepi

Pilih citra berformat bmp

Tampilkan jendela pilih citra Menampilkan citra

yang dipilih sebelumnya Pilih perintah

proses deteksi tepi

Memulai deteksi tepi

Tampilkan citra hasil deteksi tepi

Menggambil nilai piksel

Tampilkan citra hasil deteksi tepi Deteksi Tepi

Menggunakan Algoritma

Prewitt

Deteksi Tepi Menggunakan

Algoritma Homogeneity Mengisi nilai batas

ambang (Threshold)

Pilih perintah Simpan

Simpan Citra

= Algoritma Prewit != Algoritma Prewit


(56)

3.2.3 Perancangan Tampilan Antarmuka (Interface)

3.2.3.1Rancangan Jendela Utama

Rancangan Jendela Utama merupakan tampilan awal saat program dijalankan. Pada rancangan ini terdapat file dan tentang. Rancangan Jendela Utama dapat dilihat pada Gambar 3.8.

X

Gambar 3.8 Rancangan jendela utama

Keterangan:

1. Kotak nomor 1 merupakan Menu yang berfungsi untuk menampilkan menu File atau Tentang.

2. Kotak nomor 2 merupakan Picturebox yang berfungsi sebagai tempat menampilkan citra asli.

3. Kotak nomor 3 merupakan CommandButton yang berfungsi untuk memilih citra yang akan dideteksi tepi.

4. Kotak nomor 4 merupakan CommandButton yang berfungsi untuk mereset objek yang ada pada jendela.

5. Kotak nomor 5 merupakan Picturebox yang berfungsi sebagai tempat 1

Gambar Asli Algoritma Prewitt

2 5

Proses Simpan Besarkan Threshold

6 7

9 8

Reset Buka Gambar

3 4

10

Proses Simpan Besarkan Threshold

11 12

14 13

Algoritma Homogeneity

15 16


(57)

menampilkan citra hasil deteksi tepi menggunakan algoritma prewiit.

6. Kotak nomor 6 merupakan Textbox yang berfungsi untuk memasukan batas ambang,

7. Kotak nomor 7 merupakan CommandButton yang berfungsi untuk memulai proses deteksi tepi menggunakan algoritma Prewiit.

8. Kotak nomor 8 merupakan CommandButton yang berfungsi untuk menyimpan citra hasil deteksi tepi menggunakan algoritma Prewiit.

9. Kotak nomor 9 merupakan CommandButton yang berfungsi untuk melihat citra hasil dalam ukuran sebenarnya.

10.Kotak nomor 10 merupakan Picturebox yang berfungsi sebagai tempat menampilkan citra hasil deteksi tepi menggunakan algoritma Homogeneity. 11.Kotak nomor 11 merupakan Textbox yang berfungsi untuk memasukan batas

ambang,

12.Kotak nomor 12 merupakan CommandButton yang berfungsi untuk memulai proses deteksi tepi menggunakan algoritma Homogeneity.

13.Kotak nomor 13 merupakan CommandButton yang berfungsi untuk menyimpan citra hasil deteksi tepi menggunakan algoritma Homogeneity. 14.Kotak nomor 14 merupakan CommandButton yang berfungsi untuk melihat

citra hasil dalam ukuran sebenarnya.

15.Kotak nomor 15 merupakan Textbox yang berfungsi untuk menampilkan keterangan hasil proses deteksi tepi seperti MSE dan PSNR.

16.Kotak nomor 16 merupakan Textbox yang berfungsi untuk menampilkan keterangan hasil proses deteksi tepi seperti MSE dan PSNR.

3.2.3.2Rancangan Jendala Tentang

Rancangan Jendela Tentang merupakan jendela berisi keterangan mengenai aplikasi. Pada rancangan ini terdapat picturebox dan textbox. Rancangan Jendela Tentang dapat dilihat pada Gambar 3.9.


(58)

X

Gambar 3.9 Rancangan jendela tentang

Keterangan:

1. Kotak nomor 1 merupakan Picturebox yang berfungsi sebagai tempat menampilkan gambar.

2. Kotak nomor 2 merupakan Textbox yang berfungsi untuk menampilkan keterangan tentang aplikasi.

1


(59)

IMPLEMENTASI DAN PENGUJIAN

4.1Implementasi Sistem

Setelah dilakukan perancangan, maka tahap selanjutnya adalah implementasi sistem ke dalam bentuk program komputer. Bahasa pemrograman yang digunakan adalah bahasa C# dengan menggunakan editor Microsoft Visual Studio 2010. Aplikasi ini berjalan di komputer dengan sistem operasi Windows 7. Implementasi yang dilakukan yaitu melakukan pendeteksian tepi pada gambar.

4.1.1 Tampilan Jendela Utama

Tampilan jendela utama merupakan tampilan awal pada saat aplikasi dijalankan. Pada jendela ini terdapat Menu utama yang terdiri dari menu File, Tentang dan tampilan gambar asli yang akan menampilkan gambar awal yang dipilih pengguna. Tampilan jendela utama dapat dilihat pada Gambar 4.1.


(60)

4.1.2 Tampilan Jendela Tentang

Jendela Tentang adalah jendela yang menampilkan keterangan tentang aplikasi. Jendela Tentang dapat diakses pada menu Tentang. Tampilan jendela Tentang dapat dilihat pada Gambar 4.2.

Gambar 4.2 Tampilan jendela Tentang

4.2Pengujian Sistem

Pengujian sistem berfungsi untuk mengetahui kinerja dari aplikasi dalam melakukan pendektesian tepi gambar menggunakan algoritma Homogeneity dan algoritma Prewitt.

4.2.1 Proses Pendeteksian Tepi Pada Gambar

Untuk mendeteksi sebuah gambar, langkah yang dilakukan adalah memasukkan lokasi gambar yang ingin di deteksi tepi dengan menekan tombol buka gambar pada kotak Gambar Asli. Selanjutnya, pada kotak Algoritma Prewitt dapat menentukan


(61)

Treshold mulai dari 0-255, kemudian tekan tombol Proses untuk memulai pendeteksian tepi. Pada kota Algoritma Homogeneity dapat menentukan Treshold mulai dari 0-255, kemudian tekan tombol Proses untuk memulai proses pendektesian tepi. Gambar hasil pendeteksian tepi dapat disimpan dan dibesarkan dengan menekan tombol Simpan dan tombol besarkan. Proses pendeteksian tepi pada gambar dapat dilihat pada gamabar 4.7.

Gambar 4.3 Langkah pendeteksian tepi pada gambar

Keterangan:

a : tombol untuk mengulang kembali dari awal

b : tombol mencari dan memasukkan gambar agar bisa di proses c : tombol untuk menentukan Treshold pada kotak Algoritma Prewittt d : tombol untuk mendeteksi tepi pada kotak Algoritma Prewitt e : tombol untuk menyimpan hasil pendeteksian tepi pada gambar f : tombol utntuk membesarkan gambar yang telah di deteksi tepi

g : tombol untuk menentukan Treshold pada kotak Algoritma Homogeneity h : tombol untuk mendeteksi tepi pada kotak Algoritma Homogeneity i : tombol untuk menyimpan hasil pendeteksian tepi pada gambar j : tombol utntuk membesarkan gambar yang telah di deteksi tepi

f j

a b

e i


(62)

Gambar 4.4 Jendela lokasi direktori gambar


(63)

4.2.2 Pengujian Pendeteksian Tepi Citra

Pada bagian ini dilakukan pengujian pada citra yang dideteksi tepi. Adapun yang diuji adalah Nilai MSE (Mean Square Error), PSNR (Peak Signal to Noise Ratio), dan hasil pendeteksian tepi citra. Hasil pengujian dapat dilihat pada Tabel 4.1.

Tabel 4.1 Hasil PengujianDeteksi Tepi Citra

Citra Algoritma

Prewitt

Algoritma Homogeneity

Batas Ambang: 0 Durasi Proses: 983 ms. MSE: 0.203592118055556 PSNR: 55.0090647269519

Batas Ambang: 0 Durasi Proses: 963 ms. MSE: 0.221817447916667 PSNR: 54.6367172895649

Batas Ambang: 50 Durasi Proses: 998 ms. MSE: 0.128148229166667 PSNR: 57.0195482403416

Batas Ambang: 50 Durasi Proses: 968 ms. MSE: 0.253816006944444 PSNR: 54.0514842577105


(64)

Batas Ambang: 150 Durasi Proses: 965 ms. MSE: 0.0475389409722222 PSNR: 61.3261793054361

Batas Ambang: 150 Durasi Proses: 959 ms. MSE: 0.255054253472222 PSNR: 54.0303486269825

Batas Ambang: 0 Durasi Proses: 263 ms. MSE: 0,341275369608958 PSNR: 49,9653070033906

Batas Ambang: 0 Durasi Proses: 314 ms. MSE: 0,328881659522351 PSNR: 50,1259599081045

Batas Ambang: 50 Durasi Proses: 268 ms. MSE: 0,135076764937451 PSNR: 53,9905499520049

Batas Ambang: 50 Durasi Proses: 319 ms. MSE: 0,383063817688741 PSNR: 49,4636451340488


(65)

Batas Ambang: 150 Durasi Proses: 269 ms. MSE: 0,0464450835447467 PSNR: 58,6269589760101

Batas Ambang: 150 Durasi Proses: 334 ms. MSE: 0,383063817688741 PSNR: 49,4636451340488

Batas Ambang: 0 Durasi Proses: 204 ms. MSE: 0,404887920298879 PSNR: 52,0574554094266

Batas Ambang: 0 Durasi Proses: 132 ms. MSE: 0,404887920298879 PSNR: 52,0574554094266

Batas Ambang: 50 Durasi Proses: 203 ms. MSE: 0,345854487977776 PSNR: 52,7418694519805

Batas Ambang: 50 Durasi Proses: 132 ms. MSE: 0,404887920298879 PSNR: 52,0574554094266


(66)

Batas Ambang: 150 Durasi Proses: 201 ms. MSE: 0,716340166682632 PSNR: 49,5796105723191

Batas Ambang: 150 Durasi Proses: 138 ms. MSE: 0,404887920298879 PSNR: 52,0574554094266

Batas Ambang: 255 Durasi Proses: 532 ms. MSE: 0,474125620524089 PSNR: 51,3718693676263

Batas Ambang: 255 Durasi Proses: 633 ms. MSE: 0,334479726155599 PSNR: 52,8871056188989

Hasil pengujian pada Tabel 4.1 menunjukan bahwa proses deteksi tepi menggunakan algoritma prewitt pada citra yang berwarna dengan batas ambang 0, 50, dan 150 memiliki waktu rata-rata 266 ms, sedangkan rata-rata waktu yang ditempuh algoritma homogeneity adalah 322 ms. Pada citra yang memiliki warna yang berfariasi hasil dari pendetksian tepi dengan algoritma prewitt lebih baik dari pada algoritma homogeneity, sebaliknya pada citra yang memiliki dua jenis warna yaitu hitam dan putih, hasilnya lebih baik algoritma homogeneity dari pada algoritma prewitt. Batas ambang atau Threshold sangat mempengaruhi kualitas sebuah citra jika batas ambang diletakkan maksimum yaitu 255 maka hasil citra pada prewitt akan menjadi putih sedangkan pada homogeneity akan menjadi hitam.


(67)

Hasil Peengujian pendeteksian tepi dengan batas ambang 0-255 dapat dilihat pada tabel 4.2 dan grafik dapat dilihat pada gambar 4.7, 4.8, 4.9 citra yang diuji adalah citra mobil pada gambar 4.6 dengan resolusi citra 1280x960.

Gambar 4.6. Citra Mobil

Tabel 4.2 Tabel Perbandingan Algoritma Homogeneity dan Prewitt Batas

Ambang

Prewitt Homogeneity

Durasi MSE PSNR Durasi MSE PSNR

0 252 0,309 53,226 234 0,165 55,949

15 283 0,274 53,761 252 0,170 55,822

30 266 0,237 54,390 260 0,177 55,658

45 253 0,205 55,023 246 0,185 55,465

60 260 0,178 55,618 276 0,192 55,294

70 275 0,158 56,134 288 0,202 55,077

95 264 0,145 56,529 268 0,214 54,822

105 283 0,137 56,751 251 0,227 54,572

120 255 0,137 56,769 236 0,242 54,296

135 267 0,143 56,573 305 0,264 53,911


(68)

180 253 0,203 55,052 249 0,327 52,991

195 261 0,237 54,382 278 0,328 52,970

210 251 0,278 53,694 313 0,329 52,964

225 244 0,325 53,006 277 0,329 52,964

240 256 0,380 52,333 247 0,329 52,964

255 252 0,442 51,680 243 0,329 52,964

Gambar 4.7 Grafik Durasi Waktu Pengujian

Gambar 4.8 Grafik Perbandingan MSE

0 50 100 150 200 250 300 350

0 15 30 45 60 70 95 105 120 135 150 165 180 195 210 225 240 255

Durasi Pengujian Dalam ms (millisecond)

Prewitt Durasi Homogeneity Durasi

0 0,05 0,1 0,15 0,2 0,25 0,3 0,35 0,4 0,45 0,5

0 15 30 45 60 70 95 105 120 135 150 165 180 195 210 225 240 255

Perbandingan MSE


(69)

Gambar 4.9 Grafik Perbandingan PSNR

49 50 51 52 53 54 55 56 57 58

0 15 30 45 60 70 95 105 120 135 150 165 180 195 210 225 240 255

Perbandingan PSNR


(70)

KESIMPULAN DAN SARAN

5.1Kesimpulan

Berdasarkan pembahasan dan evaluasi dari bab-bab sebelumnya, maka diperoleh kesimpulan sebagai berikut:

1. Proses deteksi tepi menggunakan algoritma prewitt pada citra yang berwarna dengan batas ambang 0, 50, dan 150 memiliki waktu rata-rata 266 ms, sedangkan rata-rata waktu yang ditempuh algoritma homogeneity adalah 322 ms.

2. Pada citra yang memiliki warna yang bervariasi hasil dari pendetksian tepi dengan algoritma prewitt lebih baik dari pada algoritma homogeneity, sebaliknya pada citra yang memiliki dua jenis warna yaitu hitam dan putih, hasilnya lebih baik algoritma homogeneity dari pada algoritma prewitt.

3. Makin besar ukuran citra maka waktu yang dibutuhkan untuk melakukan pendeteksian tepi akan semakin lama.

4. Batas ambang atau Threshold sangat mempengaruhi kualitas sebuah citra jika batas ambang diletakkan maksimum yaitu 255 maka hasil citra pada prewitt akan menjadi putih sedangkan pada homogeneity akan menjadi hitam.

5.2 Saran

Berikut ini adalah saran-saran yang dapat dipertimbangkan dalam pengembangan penelitian ini:

1. Meningkatkan aplikasi pendeteksian tepi untuk membandingkan keaslian suatu citra.

2. Membandingkan pendeteksian tepi dengan menggunakan algoritma yang lain contoh: algoritma sobel, algoritma canny

3. Aplikasi yang dirancang masih memiliki menu yang terbatas. Penambahan menu-menu akan membantu penggunaan aplikasi yang lebih baik.


(71)

[1] Beant, Kaur, Anil, Garg. 2011. Comparative Study of Differentedge Detection Techniques, Vol. 3, No. 3, pp. 1927-1935.

[2] Cheng, Heng-Da, Sun, Ying. 2000. A Hierarchical Approach to Color Image Segmentation Using Homogeneity. IEEE Transactions on Image Processing, Vol. 9, No. 12, pp. 2071-2082.

[3] Dutta, Soumya, B. Chaudhuri, Bidyut. 2009. A Statistics and Local Homogeneity based Color Edge Detection Algorithm. International Conference on Advances in Recent Technologies in Communication and Computing, pp. 546-548.

[4] Ehsan, Nadernejad. 2008. Edge Detection Techniques: Evaluations and Comparisons, Vol. 2, No. 31, pp. 1507-1520.

[5] Gonzalez, Rafael C., Woods Richard E. 2002. Digital Image Processing.

[6] J. Canny. 1986. A Computional Appoarch to Edge Detection, IEEE Transctions on Pattern Analysis and Machine Intellligence, Vol. PAMI 8, No. 6, pp. 679-698.

[7] Munir R. 2004. Pengolahan Citra Digital dengan Pendekatan Algoritmik. Informatika: Bandung.

[8] Putra, Darma. 2010. Pengolahan Citra Digital. Penerbit Andi: Yogyakarta.

[9] Sempf, Bill, Sphar, Chuck, Davis, Stephen Randy. 2010. C# 2010 All In One For Dummies. Wiley Publishing, Inc.: Indianapolis, Indiana.


(72)

LISTING PROGRAM

1. Form Main

public partial class frmMain : Form {

public frmMain() {

InitializeComponent(); }

//variabel citra asli,homogeneity, prewiit private Bitmap m_Bitmap;

private Bitmap m_BitmapH; private Bitmap m_BitmapP; //fungsi untuk konvolusi

public static bool Conv3x3(Bitmap b, ConvMatrix m) {

// periksa jika ada nilai matriks 0 if (0 == m.Factor) return false; // membuat citra baru dari citra asli Bitmap bSrc = (Bitmap)b.Clone();

// mengambil nilai piksel dari citra asli dan citra baru // mengunci bit dari memori pada sistem

BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

BitmapData bmSrc = bSrc.LockBits(new Rectangle(0, 0, bSrc.Width, bSrc.Height), ImageLockMode.ReadWrite,

PixelFormat.Format24bppRgb);

//stride adalah lebar satu baris piksel (pada saat baris dibaca), dibulatkan ke batas empat-byte.

// Jika stride positif, bitmap adalah atas ke bawah. Jika stride negatif, bitmap adalah bawah ke atas

int stride = bmData.Stride; int stride2 = stride * 2;

// scan0 adalah titik dari piksel pertama dari bitmap System.IntPtr Scan0 = bmData.Scan0;

System.IntPtr SrcScan0 = bmSrc.Scan0;

//unsafe diperlukan ketika memanggil fungsi yang membutuhkan pointer.

unsafe {

//memberi nilai awal p dengan scan0 dan psrc dengan srcscan0

byte* p = (byte*)(void*)Scan0; byte* pSrc = (byte*)(void*)SrcScan0;


(1)

psnr = 20 * Math.Log10(getmax / Math.Sqrt(mses)); //kembalikan fungsi = psnr

return psnr; }

private void btnProsesPrewitt_Click(object sender, EventArgs e) {

//membuat dan memberikan nilai tp int tp = Convert.ToInt32(txtTP.Text); //kondisi jika tp lebih besar dari 255 if (tp > 255)

{

MessageBox.Show("Threshold lebih dari 255!!!"); }

//kondisi jika bukan else

{

//memberikan teks kosong pada textbox1 textBox1.Text = "";

//membuat variabel sw

Stopwatch sw = Stopwatch.StartNew(); //membuat citra baru dari citra asli m_BitmapP = (Bitmap)m_Bitmap.Clone(); //kondisi jika fungsi edgedete = true

if (EdgeDetectConvolution(m_BitmapP, (byte)tp)) {

//membuat ukuran tampilan picturebox dapat di zoom pimage.SizeMode = PictureBoxSizeMode.Zoom;

//memberikan picturebox = citra hasil deteksi tepi pimage.Image = m_BitmapP;

}

//memberikan teks pada textbox1 textBox1.AppendText("Selesai!\n");

textBox1.AppendText("Resolusi: " + m_BitmapP.Width + "x" + m_BitmapP.Height + "\n");

sw.Stop();

textBox1.AppendText("Durasi Proses: " + sw.Elapsed.Milliseconds.ToString() + " ms.\n");

textBox1.AppendText("MSE: " + mse(m_Bitmap, m_BitmapP).ToString() + "\n");

textBox1.AppendText("PSNR: " + psnr(m_Bitmap, m_BitmapP).ToString());

btnSimpanP.Enabled = true; button1.Enabled = true; }

}

private void btnProH_Click(object sender, EventArgs e) {

int th = Convert.ToInt32(txtTH.Text); if (th > 255)

{

MessageBox.Show("Threshold lebih dari 255!!!"); }

else {

textBox2.Text = "";


(2)

m_BitmapH = (Bitmap)m_Bitmap.Clone();

if (EdgeDetectHomogenity(m_BitmapH, (byte)th)) {

himage.SizeMode = PictureBoxSizeMode.Zoom; himage.Image = m_BitmapH;

}

textBox2.AppendText("Selesai!\n");

textBox2.AppendText("Resolusi: " + m_BitmapH.Width + "x" + m_BitmapH.Height + "\n");

sw.Stop();

textBox2.AppendText("Durasi Proses: " + sw.Elapsed.Milliseconds.ToString() + " ms.\n");

textBox2.AppendText("MSE: " + mse(m_Bitmap, m_BitmapH).ToString() + "\n");

textBox2.AppendText("PSNR: " + psnr(m_Bitmap, m_BitmapH).ToString());

btnSimpanH.Enabled = true; button2.Enabled = true; }

}

private void btnOpen_Click(object sender, EventArgs e) {

OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.InitialDirectory = "c:\\";

openFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp|Jpeg files (*.jpg)|*.jpg|All valid files (*.bmp/*.jpg)|*.bmp/*.jpg";

openFileDialog.FilterIndex = 2;

openFileDialog.RestoreDirectory = true;

if (DialogResult.OK == openFileDialog.ShowDialog()) {

m_Bitmap = (Bitmap)Bitmap.FromFile(openFileDialog.FileName, false);

mimage.SizeMode = PictureBoxSizeMode.Zoom; mimage.Image = m_Bitmap;

} }

private void button1_Click(object sender, EventArgs e) {

frmBesarP p = new frmBesarP(m_BitmapP); p.Show();

}

private void button2_Click(object sender, EventArgs e) {

frmBesarH h = new frmBesarH(m_BitmapH); h.Show();

}

private void btnSimpanP_Click(object sender, EventArgs e) {


(3)

saveFileDialog.InitialDirectory = "c:\\";

saveFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp|Jpeg files (*.jpg)|*.jpg";

saveFileDialog.FilterIndex = 1;

saveFileDialog.RestoreDirectory = true;

if (DialogResult.OK == saveFileDialog.ShowDialog()) {

m_BitmapP.Save(saveFileDialog.FileName); MessageBox.Show("Gambar berhasil disimpan\n" + saveFileDialog.FileName);

} }

private void btnSimpanH_Click(object sender, EventArgs e) {

SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.InitialDirectory = "c:\\";

saveFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp|Jpeg files (*.jpg)|*.jpg";

saveFileDialog.FilterIndex = 1;

saveFileDialog.RestoreDirectory = true;

if (DialogResult.OK == saveFileDialog.ShowDialog()) {

m_BitmapH.Save(saveFileDialog.FileName); MessageBox.Show("Gambar berhasil disimpan\n" + saveFileDialog.FileName);

} }

private void exitToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit(); }

private void tentangToolStripMenuItem_Click(object sender, EventArgs e)

{

frmTentang tentang = new frmTentang(); tentang.ShowDialog();

}

private void btnReset_Click(object sender, EventArgs e) {

m_Bitmap = null; m_BitmapH = null; m_BitmapP = null; mimage.Image = null; himage.Image = null; pimage.Image = null; txtTH.Text = "0"; txtTP.Text = "0"; textBox1.Text = ""; textBox2.Text = "";


(4)

} } }

2.

Convolusi

public class ConvMatrix {

//membuat variabel-variabel matrix

public int TopLeft = 0, TopMid = 0, TopRight = 0; public int MidLeft = 0, Pixel = 1, MidRight = 0;

public int BottomLeft = 0, BottomMid = 0, BottomRight = 0; public int Factor = 1;

public int Offset = 0; public void SetAll(int nVal) {

TopLeft = TopMid = TopRight = MidLeft = Pixel = MidRight = BottomLeft = BottomMid = BottomRight = nVal;

}

3.

Form Besar Homogeneity

public partial class frmBesarH : Form {

public frmBesarH() {

InitializeComponent(); }

public frmBesarH(Bitmap getimage) {

InitializeComponent();

pb.SizeMode = PictureBoxSizeMode.AutoSize; pb.Image = getimage;

this.AutoScroll = true; }

}

4.

Form Besar Prewitt

public partial class frmBesarP : Form {

public frmBesarP() {

InitializeComponent(); }


(5)

public frmBesarP(Bitmap getimage) {

InitializeComponent();

pb.SizeMode = PictureBoxSizeMode.AutoSize; pb.Image = getimage;

this.AutoScroll = true; }

}

5.

Form Tentang

public partial class frmTentang : Form { public frmTentang()


(6)

CURRICULUM VITAE

Nama

: ZULFADHLI HARAHAP

Alamat Sekarang : JALAN TENGKU AMIR HAMZAH NO. 9 BINJAI

Alamat Orang Tua : JALAN TENGKU AMIR HAMZAH NO. 9 BINJAI

Telp/ HP

: 085297262220

Email

: zhe_masaru_datebayo@yahoo.co.id

Riwayat Pendidikan:

1996

1997 TAMAN KANAK-KANAK(TK) TUNAS PELITA BINJAI

1997

2002 SEKOLAH DASAR(SD) AHMAD YANI BINJAI

2002

2005 SEKOLAH MENENGAH PERTAMA(SMP) NEGERI 3 BINJAI

2005

2008 SEKOLAH MENENGAH ATAS(SMA) NEGERI 4 BINJAI