• Tidak ada hasil yang ditemukan

Restorasi Pada Citra Digital Menggunakan Pendekatan Exemplar Based Inpainting

N/A
N/A
Protected

Academic year: 2017

Membagikan "Restorasi Pada Citra Digital Menggunakan Pendekatan Exemplar Based Inpainting"

Copied!
108
0
0

Teks penuh

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

PRADANA ADITYA LAKSANA

10109373

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(2)
(3)
(4)

Tempat / Tgl. Lahir : Pati, 10 Juni 1991 Jenis Kelamin : Laki-laki

Agama : Islam

Bangsa/Suku : Indonesia / Jawa

Alamat : Desa Tlogorejo RT:03, RW:01 Kec. Jakenan Kab. Pati No.Telpon : 085740358564

Email : aditya_pl@ymail.com Pendidikan Formal

2009 – 2014 Universitas Komputer Indonesia, Teknik Informatika.

2004-2007 Sekolah Menengah Atas Negeri 1 Pati, Jurusan IPA

2003-2006 Sekolah Menengah Pertama Negeri 3 Pati

1997-2003 Sekolah Dasar, SD Tlogorejo

Pengalaman Kerja

1. PT. IGITS , Pembuatan Halaman Admin Pada Sistem Informasi Lingkungan Hidup Di BPLHD Jabar

(5)

v

1.1 Latar Belakang Masalah ... 1

1.2 Identifikasi Masalah ... 3

1.3 Maksud dan Tujuan ... 3

1.4 Batasan Masalah ... 3

1.5 Metodologi Penelitian ... 4

1.5.1 Metode Pengumpulan Data ... 4

1.5.2 Metode Pembangunan Perangkat Lunak ... 4

1.6 Sistematika Penulisan ... 7

BAB 2 TINJAUAN PUSTAKA ... 9

2.1 Citra ... 9

2.1.1Citra Analog ... 9

2.1.2 Citra Digital ... 9

2.1.2.1Elemen – elemen Citra Digital ... 11

2.1.2.2Jenis Citra Digital ... 12

2.2 Pengolahan Citra ... 14

2.3 Restorasi Citra ... 16

2.4Inpainting ... 17

2.5Exemplar Based ... 19

2.6Pemrograman Berorientasi Objek ... 23

(6)

vi

BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 33

3.1 Analisis Sistem ... 33

3.1.1 Analisis Masalah ... 33

3.1.2 Analisis Sistem Yang Akan Dibangun ... 34

3.1.3 Analisis Restorasi Citra ... 35

3.1.3.1 Menentukan Daerah Target ... 37

3.1.3.2 Menentukan Gradient ... 41

3.1.3.3 Proses menentukan potongan atau patch dengan maksimum priority ... 43

3.1.3.4 Proses inpainting dengan metode exemplar based ... 44

3.2 Analisis Kebutuhan Non Fungsional ... 53

3.2.1 Analisis Kebutuhan Perangkat Keras ... 54

3.2.2 Analisis Kebutuhan Perangkat Lunak ... 54

3.3 Analisis Kebutuhan Fungsional ... 54

3.3.1 Analisis Kebutuhan Sistem ... 55

3.3.2 Pemodelan Sistem ... 55

3.3.2.1 Use Case Diagram ... 55

3.4 Perancangan Sistem ... 73

3.4.1 Perancangan Struktur Menu ... 74

3.4.2 Perancangan Antarmuka ... 74

(7)

vii

4.1.3 Implementasi Antarmuka ... 82

4.2 Pengujian Sistem ... 87

4.2.1 Pengujian Alpha ... 87

4.2.2 Rencana Pengujian Alpha ... 87

4.2.3 Hasil Pengujian Alpha ... 88

4.2.4 Kesimpulan Pengujian Alpha ... 90

4.3 Pengujian Beta ... 90

4.3.1 Rencana Pengujian Beta ... 90

4.3.2 Hasil Pengujian Beta ... 90

4.3.3 Kesimpulan Pengujian Beta ... 95

BAB V KESIMPULAN DAN SARAN ... 97

5.1 Kesimpulan ... 97

5.2 Saran ... 97

(8)

99

DAFTAR PUSTAKA

[1] Cheng When-Huang, Hsieh Chun-Wei, Lin Sheng-Kai, Wang Chia-Wei, Wu Ja-Ling, Robust Algorithm for Exemplar-based Image Inpainting, Taiwan, National Taiwan University

[2] Cheddad, A., Condell, J., Curran, K., Kevitt, P.Mc.,.Digital Image Steganography: Survey and Analysis of Current Methods.Signal Processing, Elsevier. Northern Ireland, UK, 2010

[3] Criminiisi .A, Perez .P, Object Removal by Exemplar-based Inpainting, Cambridge UK, Microsoft Research Ltd

[4] Criminisi, A., Peres, P., & Toyama, K. (2004). Region Filling and Object Removal by Exemplar-Based Image Inpainting. IEEE Transactions on Image Processing,13(9), 1200-1212.

[5] Darma, P. (2009). Pengolahan Citra Digital. Yogyakarta: Andi.

[6] Gonzales , RC. dan Woods, RE., Digital Image Processing, Addison-Wesley publishing Company.

[7] Nugroho, Adi. 2005.Analisis dan Pernacangan Sistem Informasi dengan Metodologi Berbasis Objek. Informatika. Bandung

[8] Restorasi Citra Digital Dengan Algoritma Inpainting, Indonesia, Indonesia Journal of Computing and Cybernetic System vol.1, 2006. [9] Sommerville, Ian. (2004). Software Engineering : 7th Edition..

(9)

iii

Dengan memanjatkan puji syukur kepada Allah, yang telah memberikan rahmat dan hidayah-Nya, sehingga penulis dapat menyelesaikan skripsi yang berjudul “RESTORASI PADA CITRA DIGITAL MENGGUNAKAN

PENDEKATAN EXEMPLAR-BASED INPAINTING”.

Adapun maksud dari penulisan skripsi ini adalah untuk memenuhi salah satu syarat dalam menyelesaikan program studi Strata I Teknik Informatika Universitas Komputer Indonesia. Penulis menyadari sepenuhnya bahwa dalam penulisan skripsi ini, masih banyak kekurangan dan jauh dari kesempurnaan mengingat kemampuan dan pengetahuan penulis mengenai masalah yang dibahas didalamnya masih terbatas.

Pada kesempatan ini penulis menyampaikan rasa terima kasih yang kepada berbagai pihak yang telah memberikan dukungan sangat besar dan dengan sabar mendorong penulis untuk menyelesaikan skripsi.

Selanjutnya penulis mengucapkan rasa terima kasih yang kepada : 1. Allah SWT yang telah mencurahkan rahmat dan hidayah-Nya. 2. Orang tua kami tercinta yang memberikan do’a dan motivasi.

3. Bapak Andri Heryandi S.T., M.T. , selaku pembimbing yang meluangkan waktunya dan memberikan bimbingannya.

(10)

iv Komputer Indonesia.

8. Teman-teman yang ada di If-9 angkatan 2009 yang tidak bisa disebutkan satu per satu yang telah membantu menyelesaikan laporan ini.

9. Mas rahmat, mas ade, mas doni, dan mas ucok yang telah membantu menyelesaikan program dan laporan skripsi ini.

10. Mbak Riris yang disana yang selalu memberi semangat.

11. Dan pihak-pihak yang tidak sempat saya sebutkan yang telah banyak membantu dalam laporan skripsi ini .

Semoga kebaikan yang telah diberikan kepada penulis selama ini, mendapat balasan yang berlipat ganda dari Allah SWT, Amin.

Akhirnya, tiada gading yang tak retak, meskipun dalam penyusunan makalah ini penulis telah mencurahkan semua kemampuan, namun penulis sangat menyadari bahwahasil penyusunan makalah ini jauh dari sempurna dikarenakan keterbatasan data danreferensi maupun kemampuan penulis. Oleh karena itu penulis sangat mengharapkansaran serta kritik yang membangun dari berbagai pihak.

Bandung, Agustus 2014

(11)

1 1.1 Latar Belakang Masalah

Perkembangan teknologi semakin pesat pada era sekarang, baik software maupun hardware. Begitu juga perkembangan pengolahan citra, dimana waktu dulu citra hasil pengambilan gambar disimpan dengan roll film. Tetapi, untuk perkembangan saat ini citra sudah berupa digital dan tidak perlu menyimpan dalam roll film. Bahkan perkembangan tersebut membawa pada tahap penelitian dan pengembangan multimedia database. Seperti diketahui elemen sistem pemrosesan citra meliputi pengambilan, penyimpanan, pemrosesan, komunikasi, dan penampilan [6].

Penyimpanan citra dalam bentuk digital sekarang ini sudah hal yang sangat lazim. Dimana untuk saat ini hampir semua hasil pengambilan gambar disimpan dalam memori atau berbentuk digital. Akan tetapi, terkadang tidak semua citra digital dapat langsung digunakan oleh pengguna karena kualitas citra yang dihasilkan kurang baik dan perlu diolah terlebih dahulu sehingga siap untuk digunakan. Masalah yang biasa dihadapi adalah adanya derau atau noise yang mengakibatkan citra kotor atau cacat.

(12)

citra. Sebelum dilakukan rekontruksi, citra harus diubah menjadi citra digital yang sebelumnya adalah citra analog atau foto yang tercetak dikertas. Maka perlu dilakukan restorasi untuk mendapatkan suatu citra yang seperti aslinya kembali.

Untuk menjawab permasalahan-permasalahan pada citra digital diperlukan pemrosesan citra (image processing). Diantara bentuk pemrosesan citra digital adalah image restoration atau restorasi citra, yang bertujuan memperbaiki kualitas citra dengan menghilangkan cacat pada citra agar mudah diinterpretasi oleh manusia atau mesin (komputer). Bentuk dari restorasi citra dalam penelitian ini menggunakan teknik inpainting. Teknik inpainting itu sendiri merupakan teknik yang mengisi daerah yang akan direstorasi atau daerah target dengan daerah sumber.

Adapun beberapa penelitian mengenai teknik inpainting yang telah dilakukan. Penelitian yang dilakukan dibagi menjadi dua pendekatan yaitu pixel synthesized (pixel disintesis untuk menyesuaikan spektrum citra) dan exemplar-based (dibuat potongan citra sumber yang sesuai) [1]. Penelitian inpainting dengan metode tradisional hasilnya masih belum optimal atau blur [4]. Exemplar-based diperkenalkan oleh Criminisi pada tahun 2004[3][4]. Criminisi [4] memperkenalkan pendekatan exemplar-based yang menggabungkan skema structure oriented dengan texture oriented.

(13)

1.2 Identifikasi Masalah

Berdasarkan latar belakang masalah yang telah diuraikan di atas, permasalahan yang akan diuraikan dan diteliti adalah :

1. Bagaimana memperbaiki kualitas citra pada suatu citra digital karena adanya derau atau noise.

2. Bagiamana merestorasi citra digital yang ada noise dengan metode exemplar-based inpainting.

1.3Maksud dan Tujuan

Maksud dari dilakukan penelitian ini adalah untuk membangun aplikasi inpainting dengan metode exemplar-based berbasis desktop. Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah:

1. Memperbaiki kualitas citra pada suatu citra digital karena adanya derau atau noise.

2. Merestorasi citra digital yang ada noise dengan metode exemplar-based inpainting.

1.4

Batasan Masalah

Adapun batasan masalah dalam dalam skripsi ini adalah sebagai berikut : 1. Pengguna harus menandai dahulu daerah yang akan direstorasi sebelum

proses restorasi.

2. Metode yang akan diterapkan di sini hanyalah exemplar-based . 3. Gambar yang diinputkan berformat : jpg, jpeg, bmp, png dan gif.

4. Sistem ini akan dibuat dalam bahasa java.

5. Metode analisis sistem yang dilakukan menggunakan pendekatan berbasis OOP (Object Oriented Programming) dengan menggunakan UML (Unified Modeling Language) sebagai pemodelannya.

(14)

1.5 Metodologi Penelitian

Metode penelitian yang digunakan adalah metode deskriptif dengan pendekatan kuantitatif. Penelitian ini terbagi menjadi dua tahap yaitu pengumpulan data dan pembangunan perangkat lunak

1.5.1 Metode Pengumpulan Data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut :

a. Studi Literatur.

Pengumpulan data dengan cara mengumpulkan literatur, jurnal, makalah dan bacaan-bacaan yang ada kaitannya dengan penelitian yang dilakukan. b. Observasi.

Pengumpulan data dengan mengadakan peninjauan secara langsung maupun tidak langsung terhadap hal-hal yang berkaitan dengan penelitian.

1.5.2 Metode Pembangunan Perangkat Lunak

Metodologi yang digunakan dalam pembangunan aplikasi ini yaitu metodologi Waterfall. Waterfall adalah suatu metodologi pengembangan perangkat lunak yang mengusulkan pendekatan kepada perangkat lunak sistematik dan sekuensial yang mulai pada tingkat kemajuan sistem pada seluruh analisis, desain, kode, pengujian dan pemeliharaan.

(15)

Gambar 1.1 Diagram Waterfall [9]

1. Requirement Analysis and Definition

Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh software yang akan dibangun. Tahap ini sering disebut dengan Project Definition. 2. System and Software Design

(16)

blueprintsoftware sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti dua aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software. 3. Implementation and Unit Testing

Desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.

4. Integration and System Testing

Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka deain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap desain yang secara teknis nantinya dikerjakan oleh programmer. Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).

5. Operation and Maintenance

Sesuatu yang dibuat haruslah diujicobakan demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya.

(17)

kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Penambahan diperlukan ketika adanya perubahan dai eksternal perusahaan seperti ketika adanya penggantian sistem operasi atau perangkat lainnya.

1.6 Sistematika Penulisan BAB 1 PENDAHULUAN

Bab ini berisi latar belakang, identifikasi masalah, maksud dan tujuan, batasan masalah, metodologi penelitian, sistematika penulisan.

BAB 2 TINJAUAN PUSTAKA

Bab ini membahas landasan teori yang berisi teori-teori pendukung yang digunakan dalam membangun sistem ini.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini menjelaskan mengenai analisis sistem yang dibuat serta bagaimana rancangan aplikasi inpainting ini. Perancangan sistem ini mencakup perancangan pemodelan sistem yang dibuat, seperti use case diagram, activity diagram, sequence diagram dan class diagram. Pembangunan perancangan antarmuka juga akan dibuat pada bab ini.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

(18)

BAB 5 KESIMPULAN DAN SARAN

(19)

9 2.1 Citra

Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra terbagi 2 yaitu ada citra yang bersifat analog dan ada citra yang bersifat digital. Citra analog adalah citra yang bersifat kontinu seperti gambar pada monitor televisi, foto sinar X, hasil CT Scan dll. Sedangkan pada citra digital adalah citra yang dapat diolah oleh komputer (T,Sutoyo et al. 2009: 9).

2.1.1 Citra Analog

Citra analog adalah citra yang bersifat kontinu, seperti gambar pada monitor televisi, foto sinar X, foto yang tercetak dikertas foto, lukisan, pemandangan alam, hasil CT scan dan lain sebagainya. Citra analog tidak dapat dipresentasikan dalam komputer sehingga tidak bisa diproses di komputer 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 diantaranya adalah video kamera analog, kamera foto analog dan CT scan.

2.1.2 Citra Digital

(20)

keabuan pada titik tersebut. Citra digital tiap elemen dikenal sebagai elemen gambar (picture element) atau pixel.

(baris/tinggi = N, kolom/lebar = M)

N = jumlah baris 0 = y = N – 1

M = jumlah kolom 0 = x = M – 1

L = maksimal warna intensitas (derajat keabuan /gray level) 0 = f(x,y) = L – 1

Untuk mendapatkan suatu citra digital diperlukan suatu konversi sehingga dapat diproses oleh komputer. Proses konversi tersebut dengan membuat kisi-kisi arah horizontal dan vertical sehingga diperoleh gambar dalam bentuk array 2 dimensi.

Proses tersebut disebut proses digitasi atau sampling. Semakin tinggi resolusi berarti semakin kecil ukuran pixelnya, berarti semakin halus gambar yang diperoleh karena informasi yang hilang akibat pengelompokan tingkat keabuan pada proses pembuatan kisi-kisi semakin kecil. Tetapi membutuhkan tempat penyimpanan bit yang makin besar pula.

(21)

2.1.2.1 Elemen – elemen Citra Digital

Citra digital mengandung sejumlah elemen-elemen dasar. Elemen-elemen dasar inilah yang dimanipulasi dalam pengolahan citra. Elemen-elemen yang penting diantaranya adalah sebagai berikut :

1. Kecerahan (brightness)

Kecerahan disebut juga sebagai intensitas cahaya yang dipancarkan pixel dari citra yang dapat ditangkap pleh sistem penglihatan. Kecerahan pada suatu titik (piksel) di dalam suatu citra sebenarnya adalah intensitas rata-rata dari suatu area yang melingkupinya.

2. Kontras (contrast)

Kontras menyatakan seberapa terang (lightness) dan gelap (darkness) dalam suatu citra. Citra dengan kontras rendah dicirikan oleh sebagian besar komposisi citranya adalah terang atau sebagian besar gelap. Citra dengan kontras yang baik, komposisi gelap dan tersebar secara merata.

3. Kontur (countour)

Kontur adalah keadaan yang ditimbulkan oleh perubahan intensitas pada pixel-pixel yang bertetangga. Karena adanya perubahan intensitas inilah, maka tepi-tepi (edge) objek pada citra dapat dideteksi.

4. Warna (colour)

(22)

5. Bentuk (shape)

Bentuk adalah properti intrinstik dari objek tiga dimensi. Bentuk merupakan properti intrinsik utama untuk sistem visual manusia karena lebih sering menginterpretasikan suatu objek berdasarkan bentuknya daripada elemen lainya.

6. Tekstur (texture)

Tekstur dicirikan sebagai distribusi spasial dari derajat keabuan di dalam sekumpulan pixel-pixel, Tekstur merupakan karakteristik untuk menganalisis permukaan berbagai jernis citra objek.

2.1.2.2Jenis Citra Digital

Berdasarkan format penyimpanan nilai warnanya Citra Digital terbagi menjadi

lima macam [7] yaitu :

1. Citra Biner (Monokrom)

Citra yang hanya memiliki dua nilai yaitu 1 dan 0. Citra biner juga disebut

sebagai citra B&W (black and white) atau citra monokrom, setiap pixel

pada citra biner cukup direpresentasikan dengan 1 bit.

Gambar 2.1 Citra biner dan array nilai matrik dari citra biner

(23)

Pada citra dengan tipe grayscale, setiap piksel mewakili derajat keabuan

dengan nilai antara 0 (hitam) samapai 255 (putih). Nilai intensitas paling

rendah merepresentasikan wrna hitam dan nilai intensitas paling tinggi

merepresentasikan warna putih. Pada jangkauan nilai 0 sampai 255, ini

berarti bahwa piksel memiliki ukuran 8 bit atau 1 byte.

Gambar 2.2 Gambar grayscale

3. Citra Warna 8 bit

Setiap pixel dari citra warna (8 bit) hanya di wakili oleh 8 bit jumlah

warna maksimum yang dapat digunakan adalah 256 warna. Ada dua jenis

citra warna 8 bit. Pertama, cita warna 8 bit dengan menggunakan palet

warna 256 dengan setiap paletnya memiliki pemetaan nilai (colormap)

RGB tertentu. Model ini lebih sering digunakan. Kedua, setiap piksel

memiliki format 8 bit sebagai berikut,

Gambar 2.3 Format citra 8 bit

(24)

Citra warna 16 bit (biasanya disebut sebagai citra highcolor) dengan

setiap pikselnya diwakili dengan 2 byte memory (16 bit). Warna 16 bit

memiliki 65.635 warna. Dalam formasi bitnya, nilai merah dan biru

mengambil tempat di 5 bit di kanan dan kiri. Komponen hijau memiliki 5

bit ditambah 1 bit eksra. Pemilihan komponen hijau dengan deret 6 bit

dikarenakan penglihatan manusia lebih sensitif terhadap warna hijau.

Gambar 2.4 Format citra 16 bit

5. Citra Warna 24 bit

Setiap pixel dari citra warna 24 bit diwakili sehingga total 16.777.216

variasi warna. Variasi ini sudah lebih dari cukup untuk memvisualisasikan

seluruh warna yang dapat dilihat penglihatan manusia. Penglihatan

manusia dipercaya hanya dapat membedakan hingga 10 juta warna saja.

Setiap poin informasi pixel (RGB) disimpan ke dalam 1 byte data. 8 bit

pertama menyimpan nilai baru, kemudian diikuti dengan hijau pada 8 bit

kedua dan pada 8 bit terakhir merupakan warna merah.

2.2 Pengolahan Citra

(25)

1. Memperbaiki kualitas gambar dilihat dari aspek radiometrik (peningkatan kontras, transformasi warna, restorasi citra) dan dari aspek geometrik (rotasi, translasi, skala, transformasi geometrik).

2. Melakukan proses penarikan informasi atau deskripsi objek atau pengenalan objek yang terkadang pada citra.

3. Melakukan kompresi datau reduksi data untuk tujuan penyimpanan data, transmisi data, dan waktu proses data.

Teknik-teknik pengolahan citra mentransformasikan citra menjadi citra lain. Jadi, masukannya adalah citra dan keluarannya juga citra, namun citra keluaran mempunyai kualitas lebih baik daripada citra masukan. Termasuk ke dalam bidang ini juga adalah pemampatan citra (image compression).

Gambar 2.5 Proses pengolahan citra

(26)

Gambar 2.6 (a) Citra Lena yang mengandung derau, (b) hasil dari operasi

penapisan derau

2.3 Restorasi Citra

Restorasi citra adalah suatu langkah untuk mendapatkan citra yang lebih jelas dari citra yang terdegradasi dengan hanya mengetahui beberapa faktor degradasi dari citra tersebut. Restorasi citra berbeda dengan peningkatan kualitas citra (image enhancement) meskipun keduanya sama-sama bertujuan untuk memperbaiki kualitas citra. Image enhancement lebih banyak berhubungan dengan penajaman dari fitur tertentu dalam citra, sedangkan restorasi citra memanfaatkan pengetahuan tentang proses terjadinya degradasi untuk memperoleh kembali citra asal.

(27)

blur (kabur) akibat kamera yang tidak fokus atau karena gerakan kamera. Teknik restorasi citra meliputi operasi neighbourhood dan juga penggunaan proses-proses pada domain frekuensi.

Model Degradasi sebuah citra dapat dimodelkan sebagai berikut:

1. g(x,y)=f(x,y)*h(x,y); misalnya proses blurring menggunakan filter average dengan f(x,y) adalah citra asli, * menyatakan operasi spatial, h (x,y) menyatakan filter yang digunakan, dan g(x,y) adalah citra yang terdegradasi.

2. g(x,y)=f(x,y)*h(x,y)+n(x,y); dengan n(x,y) adalah derau yang dimodelkan sebagai fungsi aditif (random errors).

2.4 Inpainting

Inpainting adalah suatu teknik untuk memodifikasi citra dalam bentuk yang tidak terdeteksi, dalam hal seni murni (lukis). Tujuan dan aplikasi dari kebanyakan inpainting, mulai dari restorasi lukisan dan foto yang rusak untuk menghilangkan atau mengganti obyek yang dipilih.[4]

(28)

Pada mulanya inpainting merupakan teknik yang digunakan para ahli seni untuk merestorasi lukisan yang rusak karena usia, goresan, jamur, atau hal lainnya sehingga lukisan tersebut menjadi tidak seperti aslinya. Bertalmio dan kawan-kawan (Bertalmio,et.al,2001), merupakan pencetus pertama dalam usaha menuangkan ide inpainting dalam dunia digital, sehingga dikenal sebagai digital inpainting. Teknik klasik merupakan teknik pertama kali yang dikembangkan oleh Bertalmio dan kawankawan, yang menggunakan transformasi Laplace (Sapiro, 2005). Grossauer dan Scherzer (Grossauer dan Scherzer, 2005) menggunakan teknik persamaan Ginzburg-Landau pada ruang 2 dimensi dan 3 dimensi untuk melakukan inpainting. Pada kesempatan lain Grossauer mengembangkan teknik dengan mengkombinasikan persamaan diferensial partial (PDP) dan sintesis tekstur (Texture Synthesis/TS) (Grossauer,2005). Disini Grossauer mencoba menyempurnakan kombinasi algoritma dasar PDP dengan algoritma TS untuk mengisi daerah yang akan di inpaint. Telea (Telea,2005) mengembangkan algoritma yang didasarkan pada apa yang disebut Level Sets and Fast Marching Method yang di cetuskan oleh Sethian (Sethian,1994,1996).

(29)

pada perhitungan warna menggunakan exemplar sintesis (Criminisi dan Toyama, 2003,2004).

Jia dan Tang (Jia dan Tang, 2005) memandang inpainting dari sisi sintesis tekstur, yaitu dengan menggunakan pendekatan ND Tensor Voting mencoba mentranslasikan informasi warna citra dan tekstur yang disesuaikan dalam tensor ND. ND Tensor Voting merupakan suatu metode sintesis yang secara otomatis menyimpulkan warna yang hilang dan informasi tekstur dari gambar 2D. Demanet, Song dan Chan (Demanet et.al,2005), memberikan solusi inpainting dengan pendekatan yang disebut Peta Tekstur yang saling berhubungan, yang didefinisikan sebagai kaitan antar piksel yang kosong atau hilang dengan piksel lain dimana nilainya diambil dari dalam benih/bibit citra aslinya. Igehy dan Pereira (Igehy dan Pereira, 1997) menyajikan teknik yang didasarkan pada Hegeer dan Bergen (Hegeer dan Bergen, 1995), yaitu dengan algoritma sintesis tekstur dan mengkombinasikan dengan komposisi citra untuk dapat menghasilkan restorasi yang lebih baik.

2.5 Exemplar Based

(30)

oriented. Citra sumber dibagi menjadi dua. Citra pertama yang menangkap informasi struktur diproses dengan pixel synthesized skema structure oriented. Sedangkan citra kedua yang menangkap informasi tekstur diproses dengan pendekatan exemplar-based skema texture oriented. Selanjutnya, hasil keduanya digabung. Terdapat empat proses penting yang dilakukan yaitu dekomposisi citra, inpainting dengan pixel synthesized, inpainting dengan exemplar-based dan penggabungan citra.

Kemudian Criminisi memperkenalkan pendekatan exemplar-based yang menggabungkan skema structure oriented dengan texture oriented. Metode ini membutuhkan satu proses untuk melakukan sintesis tekstur sekaligus perbaikan struktur linear. Inpainting dilakukan dengan memanfaatkan informasi tekstur (direpresentasikan dalam confidence term) dan informasi isophote atau struktur (data term). Kedua informasi tersebut dimanfaatkan untuk menentukan prioritas urutan pengisian daerah target.

(31)

Gambar 2.7 menjelaskan tentang simbol-simbol yang digunakan dalam metode ini. Simbol Ω merupakan simbol dari daerah target pada citra yang akan diproses. Simbol δΩ digunakan untuk melambangkan kontur. Kontur dihasilkan

dari hasil penyambungan polygon-polygon yang telah ditetapkan oleh user sebelumnya. Simbol � melambangkan daerah sumber dari citra yang akan dilakukan inpainting. Simbol � melambangkan patch pada titik p. Simbol np merupakan simbol untuk titik normal dari kontur.

Alur proses metode exemplar based inpainting dijelaskan seperti gambar 2.8 berikut :

Gambar 2.8 Alur proses inpainting

(32)

dari kontur. Pencarian pada suatu daerah sumber dibutuhkan infomasi-informasi pixel daerah sekitar titik kontrol dikontur dengan ukuran 3x3. Setelah mendapatkan informasi dari potongan 3x3 tersebut akan dicari potongan daerah sumber yang memiliki informasi mirip dengan potongan didaerah kontur tadi. Jarak pencarian disini dilakukan dari patch dikontur ke arah tegak lurus sampai batas daerah sumber terluar.

Langkah-langkah pada metode exemplar based dijelaskan seperti di bawah ini : 1. Penghitungan prioritas patch

a. Hitung Confidence term C(p) dengan persamaan sebagai berikut :

= � ∩Ω ( )

b. Hitung data term dengan persamaan sebagai berikut

=| �

1

. � |

� (2.4)

dimana

α : factor normalisasi (255 untuk gambar grey-level).

�1

: isophote (arah dan intensitas) pada titik p

c. Hitung prioritas patch tertinggi dengan persamaan :

� p = p ∗ (p) (2.5)

(33)

Dicari potongan yang sesuai untuk mengisi daerah target dengan 3. Penyisipan exemplar

Potongan replika disisipkan di daerah target. 4. Update Image

Nilai confidence term diperbaharui untuk potongan-potongan baru yang muncul akibat penyisipan exemplar. Update dilakukan dengan persamaan sebagai berikut :

∀ | � ∩Ω (2.7)

Keterangan :

Nilai p lama akan digantikan dengan nilai p baru dimana nilai p baru merupakan elemen nilai prioritas patch tertinggi.

2.6 Pemrograman Berorientasi Objek

(34)

konvensional, kebanyakan berfokus pada fungsi, tetapi terdapat pendekatan yang berfokus pada data terutama pada basis data dan pemodelan informasi, sedangkan pengembangan berorientasi objek berpusat pada objek yang mengkombinasikan data dan fungsi keduanya sekaligus [9].

Pengembangan sistem berorientasi objek mempunyai kelebihan sebagai berikut: 1. Pendekatan objek menuntut penggunaan ulang komponen-komponen

program sebelumnya.

2. Perangkat lunak yang dikembangkan dengan berorientasi objek mempermudah pemeliharaan.

3. Sistem berorentasi objek lebih mudah diadaptasi menjadi sistem yang lebih besar dibuat dengan cara membangun subsistem-subsistem yang dapat digunakan.

2.7

Pemodelan Sistem

Dalam pembuatan pemodelan sistem berbasis objek diperlukan tool yang digunakan untuk membangung perangkat lunak, yaitu Unified Modeling Language (UML).

2.7.1 Pemodelan Menggunakan UML

(35)

object, state, sequence, collaboration, activity, component, dan deployment diagram.

1. Use Case Diagram, menggambarkan sekelompok use cases dan aktor yang disertai dengan hubungan diantaranya. Diagram use cases ini menjelaskan dan menerangkan kebutuhan / requirement yang diinginkan / dikehendaki user/pengguna, serta sangat berguna dalam menentukan struktur organisasi dan model dari pada sebuah sistem.

Tujuan utama pemodelan use-case adalah:

a. Memutuskan dan mendeskripsikan kebutuhan-kebutuhan fungsional sistem.

b. Memberikan deskripsi jelas dan konsisten dari apa yang seharusnya dilakukan,sehingga model use case digunakan di seluruh proses pengembangan untuk komunikasi dan menyediakan basis untuk pemodelan berikutnya yang mengacu sistem harus memberikan fungsionalitas yang dimodelkan pada use-case.

c. Menyediakan basis untuk melakukan pengujian sistem yang memverifikasi sistem.Menguji apakah sistem telah memberikan fungsionalitas yang diminta.

d. Menyediakan kemampuan melacak kebutuhan fingsionalitas menjadi kelas-kelas dan operasi-operasi aktual di sistem.Untuk menyederhanakan perubahan dan ekstensi ke sistem dengan mengubah model use-case dan kemudian melacak use-case yang dipengaruhi ke perancangan dan implementasi sistem.

Elemen diagram use-case adalah: a) Aktor

(36)

berinteraksi dengan sistem, yaitu siapa atau apa yang menggunakan sistem.Yang dimaksud dengan berinteraksi adalah aktor mengirim atau menerima pesan ke atau dari sistem, atau mempertukarkan informasi dengan sistem. Dalam perspektif aktor, use-case melakukan sesuatu yang berharga bagi aktor.

Aktor adalah tipe (kelas), bukan instan. Aktor merepresentasikan peran bukan pemakai individu dari sistem.Aktor mempunyai nama. Nama yang dipilih seharusnya menyatakan peran aktor.

b) Use-Case

Use-case adalah cara spesifik penggunaan sistem oleh aktor.Ciri-ciri dari use-case adalah:

1. Pola perilaku yang harus dipenuhi oleh sistem.

2. Sekuen transaksi terhubung yang dilakukan aktor dan sistem. 3. Memberikan sesuatu yang berharga bagi aktor.

c) Hubungan antar use-case.

Keterhubungan antar use-case dengan user-case lain berupa generalisasi antar use-case, yaitu:

1. Include, perilaku use-case merupakan bagian dari use-case yang lain.

(37)

Gambar 2.9 Contoh Use Case diagram

2. Class Diagram adalah bagan yang memperlihatkan struktur statis dari kelas aktual di dalam sistem.

(38)

Gambar 2.10 Contoh Class diagram

3. Sequence Diagram, yang memperlihatkan kolaborasi dinamis antara objek-objek dengan suatu urutan pesan (a sequence of message) antar objek tersebut.

Diagram sekuen digunakan untuk: 1. Overview perilaku sistem.

2. Menunjukkan objek-objek yang diperlukan.

3. Mendokumentasikan skenario dari suatu diagram use case

(39)

Gambar 2.11 Contoh Sequence diagram

6. Activity Diagram adalah bagan yang memperlihatkan aliran urutan aktifitas.

Berikut merupakan contoh dari activity diagram Login :

(40)

2.8 Eclipse IDE

Eclipse adalah sebuah IDE (Integrated Development Environment) untukmengembangkan perangkat lunak dan dapat dijalankan di semua platform (platformindependent). Berikut ini adalah sifat dari Eclipse:

a. Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X.

b. Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya.

c. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya.

Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini.Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in.

2.9 Pengujian Blackbox

Pengujian Blackbox merupakan pengujian yang berfokus pada spesifikasi fungsional dari perangkat lunak, tester dapat mendefinisikan kumpulan kondisi input dan melakukan pengetesan pada spesifikasi fungsional program.

Ciri-ciri Pengujian Blackbox:

(41)

2. Pengujian Blackbox bukan teknik alternatif daripada white box testing. Lebih daripada itu, ia merupakan pendekatan pelengkap dalam mencakup error dengan kelas yang berbeda dari metode white box testing.

3. Pengujian Blackbox melakukan pengujian tanpa pengetahuan detil struktur internal dari sistem atau komponen yang dites. juga disebut sebagai behavioral testing, specification-based testing, input/output testing atau functional testing

2.10 Pengujian Citra

Kriteria penilaian citra secara obyektif berdasarkan pengukuran error pada citra yang diuji. Parameter-parameter yang digunakan sebagai kriteria penilaian obyektif adalah sebagai berikut :

1. Mean Square Error (MSE)

MSE adalah nilai error kuadrat rata-rata antara citra asli dengan citra manipulasi (dalam kasus steganografi ; MSE adalah nilai error kuadrat rata-rata antara citra asli (cover-image) dengan citra hasil penyisipan (stego-image)

Rumus MSE dapat dituliskan sebagai berikut :

MSE =

2. Peak Signal to Noise Ratio (PSNR)

(42)

membandingkan noise terhadap sinyal puncak. PSNR biasanya diukur dalam satuan desibel.

Rumus PSNR adalah sebagai berikut :

PSNR = 20.log 10

MSE

255

(43)

33 3.1Analisis Sistem

Analisis sistem adalah penguraian dari suatu sistem informasi yang utuh kedalam bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan mengevaluasi permasalahan, kesempatan, hambatan yang terjadi dan kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan. Yogiyanto (1995).

Dalam membangun sebuah sistem, di perlukan sebuah analisis terlebih dahulu karena tanpa menganalisis sistem yang ada maka aplikasi tidak bisa di bangun. Dalam menganalisis sistem secara Object Oriented yang nantinya di bangun aplikasi berorientasi objek, di perlukan pendefinisian kasus dari sistem tersebut. Berikut adalah hasil analisis dari sistem manual yang ada dengan menggunakan metode UML (Unified Modeling Language).

3.1.1 Analisis Masalah

Penyimpanan citra dalam bentuk digital sekarang ini sudah hal yang sangat lazim. Dimana untuk saat ini hampir hasil pengambilan gambar disimpan dalam memori atau berbentuk digital. Akan tetapi, terkadang tidak semua citra digital dapat langsung digunakan oleh pengguna karena kualitas citra yang dihasilkan kurang baik dan perlu diolah terlebih dahulu sehingga siap untuk digunakan. Masalah yang biasa dihadapi adalah adanya derau atau noise yang mengakibatkan citra kotor atau cacat.

(44)

sebelumnya adalah citra analog atau foto yang tercetak dikertas. Maka perlu dilakukan restorasi untuk mendapatkan suatu citra yang seperti aslinya kembali.

Berdasarkan uraian yang dikemukakan, maka terdapat masalah bagaimana cara membangun aplikasi inpainting untuk merestorasi gambar dan menghapus objek pada gambar digital.

3.1.2 Analisis Sistem Yang Akan Dibangun

Sistem yang akan dibangun adalah sistem untuk merestorasi citra atau mengembalikan citra yang sudah terkena noda atau derau seolah – olah kembali lagi seperti citra aslinya. Sistem bisa secara otomatis merestorasi citra tetapi sebelumnya menandai daerah yang akan direstorasi. Adapun gambaran umum tentang sistem yang akan dibangun dilihat pada gambar 3.1 :

Gambar 3.1 Alur Proses Yang akan Dibangun

(45)

3.1.3 Analisis Restorasi Citra

Pada bagian sebelumnya sudah dijelaskan proses restorasi citra yang akan dibangun secara umum. Berikut gambar 3.2 merupakan detail dari proses yang

Data term Menemukan patch dengan maksimum priority

Cari best exemplar

(46)

Berikut merupakan alur sistem yang akan dibangun :

1. Citra masukan, pengguna memilih citra yang akan direstorasi.

2. Mengambil piksel daerah target dan daerah sumber. Proses ini terjadi setelah user menandai daerah yang akan direstorasi.

3. Menghitung gradient daerah sumber dan daerah target.

4. Menentukan daerah target ditandai dengan warna hijau. Daerah target yang kemudian disebut Region of Interest (ROI) dihasilkan dengan cara memilih daerah mana yang akan dihapus dengan memberikan titik-titik penghubung. Daerah yang telah dibatasi dengan titik-titik tersebut kemudian akan diberi indikator warna hijau, hal ini menandakan bahwa daerah yang telah diberi warna indikator tersebut merupakan daerah target sedangkan daerah lainnya merupakan daerah sumber.

5. Menentukan koordinat boundary daerah target disini untuk menentukan tepi dari daerah target. Penentuan daerah tepi ini penting untuk proses pengisian daerah target.

6. Menghitung confidence term (informasi tekstur) dan data term (informasi isophote atau struktur). Kedua value ini untuk mendapatkan potongan terbaik.

7. Menemukan potongan dengan maksimum prioritas. Disini proses dimana menemukan potongan terbaik.

8. Cari best exemplar merupakan proses mencari potongan yang sesuai untuk mengisi daerah target.

9. Update citra merupakan proses mengganti patch atau potongan yang didapat dari penyisipan exemplar. Jadi patch yang sebelumnya masih menjadi daerah target akan berubah menjadi daerah sumber. Kemudian proses ini diulangi lagi sampai piksel yang berada didalam daerah target tersebut habis.

(47)

3.1.3.1Menentukan Daerah Target

Proses ini dimana citra masukan akan dibagi menjadi dua daerah yaitu dareah target dan daerah sumber. Daerah target inilah yang akan diolah dan digantinya dengan piksel dari daerah sumber. Berikut proses dari penentuan daerah target dan daerah sumber :

1. Gambar masukan

Gambar masukan ini merupakan gambar yang akan direstorasi. Pada gambar 3.3 ada derau yang dikarenakan penyimpanan yang kurang baik sewaktu citra masih berbentuk cetak sebelum dijadikan citra digital.

Gambar 3.3 Gambar Masukan dan Matrik RGB dari daerah yang ada

noise

(48)

Gambar 3.4 merupakan gambar yang sudah ditandai sebagai daerah target dan daerah sumber, Dimana daerah target yang diwarnai warna hijau dan selain yang diwarnai warna hijau merupakan daerah sumber.

Gambar 3.4 Gambar yang sudah ditandai daerah target dan matrik RGB

(49)

Matrik RGB

Matrik R Matrik G Matrik B

Gambar 3.5 Hasil Konversi Matrik RGB menjadi Matrik R,G,B

Berikut merupakan algoritma dari proses menandai daerah target :

(50)

Kamus

lastX, lastY, firstX, firstY, currX, currY: integer

entryImage: image

PolygonCoordinatesX, PolygonCoordinatesY : vector

Algoritma

{warna merah untuk poligon koordinat pertama }

if (firstX <> -1)

g.setColor(Color.red)

g.drawRect(firstX - 5, firstY - 5, 10, 10)

g.drawRect(firstX - 4, firstY - 4, 8, 8)

endif

g.setColor(Color.black);

g.drawRect(0, 0, getWidth(), getHeight());

g.setColor(Color.green);

if (PolygonCoordinatesX ← null || PolygonCoordinatesY ← null)

return

endif

(*warna hitam untuk semua poligon koordinat kecuali koordinat

pertama*)

g.setColor(Color.black);

for i←1 to i<PolygonCoordinatesX.size() do

g.drawRect((Integer) PolygonCoordinatesX.get(i) -

(51)

g.drawRect((Integer) PolygonCoordinatesX.get(i) -

4,(Integer) PolygonCoordinatesY.get(i) - 4, 8, 8);

endfor

g.setColor(Color.green);

if (lastX <> -1)

{menyambungkan koordinat dengan garis hijau diantara titik

koordinat }

g.drawLine(lastX, lastY, currX, currY)

endif

3.1.3.2Menentukan Gradient

Penentuan gradient daerah target dan daerah sumber disini digunakan untuk mengetahui tepi dari daerah target yang nantinya akan digunakan untuk mendapatkan titik patch. Berikut merupakan algoritma dari penentuan gradient daerah target dan daerah :

Procedure calculateGradient(a[][],ih,iw)

Kamus

i,j : integer

gradientX, gradientY: array of double

row, column : array of integer

h : vector

Algoritma

gradientX ← new double[ih][iw]

gradientY ← new double[ih][iw]

(52)
(53)

endfor

endfor

endif

3.1.3.3Proses menentukan potongan atau patch dengan maksimum priority Proses ini merupakan cara mendapatkan nilai piksel disekitar titik patch dan dibentuk sebuah patch berukuran 3x3. Pixelmap merupakan matriks yang merepresentasikan pixelmap gambar, p adalah posisi pixel patch sekitar yang harus dihitung, dan N matriks yang berisi koordinat piksel yang membentuk patch. Berikut merupakan algoritmanya :

(54)

3.1.3.4Proses inpainting dengan metode exemplar based

Sesudah didapatkan daerah target dan daerah sumber tahap selanjutnya proses inpainting degan metode exemplar based. Berikut contoh dari pengisian nilai pixel daerah target dari daerah sumber :

(i) (ii)

(55)

(v) (vi)

(56)

(ix) (x)

(xi) (xii) Gambar 3.6 Proses pengisian daerah target

(57)

memperoleh hasil restorasi. Ukuran patch disini dalam aplikasi ini ukuran yang paling kecil untuk dapat diterapkan.

Kemudian proses setelah itu mencari prioritas patch sesuai pada gambar (i). Setelah mendapatkan selanjutnya patch awal dari daerah target diganti patch baru dari daerah sumber sesuai gambar (ii). Arah dari pencarian patch ditentukan oleh tekstur (Confidence term) dan struktur (Data term) atau ishopote. Pada gambar (i) terdapat 2 tekstur warna yang berbeda kemudian dicari prioritas patch ke arah kiri sesuai arah tekstur dan strukturnya. Kemudian untuk piksel yang lainnya prosesnya seperti pengisian piksel pada gambar (i) sampai piksel didalam daerah target habis.

Berikut merupakan detail dari perhitungan exemplar based : 1. Prioritas patch

a. Hitung Confidence term C(p) dengan persamaan sebagai berikut :

= � ∩Ω ( ) Algoritma inisialisasi Confidence term C(p) :

Procedure initialize_confidence_term()

Kamus

confidence : array [ih][iw] of double

ih,iw,i,j,p,r,g,b : integer

pixelmap : array [][] of integer

(58)

g ← 0xff & p >> 8

b. Hitung data term dengan persamaan sebagai berikut

=| �

Algoritma inisialisasi data term :

Procedure initialize_data_term()

Kamus

i,j,ih,iw : integer

data : array [ih][iw] of double

(59)

sumber untuk mencari exemplar terbaik. QuickInpaint sebagai tanda untuk melakukan proses inpainting. Berikut merupakan algoritma dari pencarian exemplar :

Function bestExemplar(Hp, toFill,sourceRegion,quickInpaint)

Kamus

i,j,col,row, int mm, nn, startX,startY, endX, endY, m ,n, ii, jj,

ii2, jj2, M, N, I, J,best : integer

Ip,rIp,gIp,bIp, : array [][] of double

meanR, meanG, meanB : double

skipPatchFlag : boolean

Algoritma

Ip ← new double[toFill.length][toFill[0].length] for i ← 0 to i < toFill[0].length do

rIp ← new double [Ip.length][Ip[0].length]

gIp ← new double [Ip.length][Ip[0].length]

bIp ← new double[Ip.length][Ip[0].length]

for i ← 0 to i < Ip.length do

for j ← 0 to j < Ip[0].length do

{ Extract RGB komponent image }

rIp[i][j] ← 0xff & Ip[i][j] >> 16 gIp[i][j] ← 0xff & Ip[i][j] >> 8 bIp[i][j] ← 0xff & Ip[i][j]

endfor

endfor

(60)

if (quickInpaint) then

startX ← max(0, pixelPosX - n / 2 - continuousRow - diamX / 2)

startY ← max(0, pixelPosY - m / 2 - continuousCol - diamY / 2)

endX ← min(pixelmap[0].length - 1, pixelPosX + n / 2 + continuousRow + diamX / 2)

(61)

{ Jika ada piksel tidak termasuk daerah sumber, lewati

else if (toFill[ii2][jj2] = 0) then

rImage ← 0xff & pixelmap[ii][jj] >> 16 gImage ← 0xff & pixelmap[ii][jj] >> 8

bImage ← 0xff & pixelmap[ii][jj]

{ Hitung mean square error patch.}

err ← rImage - rIp[ii2][jj2]

{Hitung rata-rata nilai warna.ketika mendapatkan dua patch dengan

nilai error sama}

3. Update citra dan mencari piksel yang tersisa di daerah target

(62)

Procedure UpdateImage(pixelmap,fillregion,sourceregion,tofill,

confidence, gradientX, gradientY)

Kamus

I,j, ih,iw : integer

Col,row,col1, row1 ,Confdence, gradientX,gradientY : array [][] of

integer

{Rekontruksi daerah target,jika sudah dihapus dari fillregion}

fillRegion[row][col] ← 0

{Rekontruksi daerah target, kemudian tambahkan ke SourceRegion}

sourceRegion[row][col] ← 1;

{Propagate Confidence dan Isophote Values }

confidence[row][col] ← confidence[p % ih][p / ih]

gradientX[row][col] ← gradientX[row1][col1]

gradientY[row][col] ← gradientY[row1][col1]

pixelmap[row][col] ← pixelmap[row1][col1]

{Update image pixels}

color ← new integer [3]

color[0] ← 0xff & pixelmap[row1][col1] >> 16 color[1] ← 0xff & pixelmap[row1][col1] >> 8

color[2] ← 0xff & pixelmap[row1][col1]

raster.setPixel(col, row, color)

endif

(63)

endfor

{Mencari pixel yang tersisa untuk dilakukan inpainting apakah

masih ada}

for i ← 0 to i < fillRegion.length do

for j ← 0 to j < fillRegion[0].length do

if (fillRegion[i][j] = 1) then

flag = true

endif

endfor

endfor

Setelah semua piksel didalam daerah taget sudah diproses oleh sistem akan dihasilkan gambar 3.7 sebagai berikut :

Gambar 3.7 Citra Hasil

3.2Analisis Kebutuhan Non Fungsional

(64)

3.2.1 Analisis Kebutuhan Perangkat Keras

Analisis kebutuhan perangkat keras menjelaskan tentang spesifikasi perangkat keras yang dibutuhkan untuk membangun dan menjalankan aplikasi yang akan dibangun.

Spesifikasi perangkat keras yang digunakan untuk membangun aplikasi ini adalah sebagai berikut :

1. Intel(R) Atom(TM) CPU N570 @1,66GHz 2. VGA 512 MB

3. RAM 1GB

4. Keyboard dan Mouse standar

3.2.2 Analisis Kebutuhan Perangkat Lunak

Analisis kebutuhan perangkat lunak menjelaskan tentang spesifikasi perangkat lunak yang dibutuhkan untuk membangun dan menjalankan aplikasi yang akan dibangun.

Perangkat lunak yang dibutuhkan untuk membangun aplikasi ini adalah sebagai berikut :

1. Sistem Operasi Microsoft Windows 7 2. Eclipse IDE

3.3 Analisis Kebutuhan Fungsional

(65)

3.3.1 Analisis Kebutuhan Sistem

Analisi kebutuhan sistem ditujukan untuk memenuhi kebutuhan sistem yang akan dibangun. Adapun kebutuhan sistem yang diperlukan secara garis besar antara lain :

1. User menginputkan gambar ke dalam sistem.

2. User menandai objek yang akan dihapus yang disebut sebagai ROI (Region Of Interest) atau sebagai daerah target.

3. Setelah user menandai objek pada gambar, sistem akan melakukan proses inpainting. Dimana pixel daerah target itu akan diisi pixel dari daerah sumber.

4. Setelah pixel daerah target sudah tertutup semua maka proses inpainting selesai dan gambar hasil inpainting didapatkan.

5. User dapat menyimpan hasil gambar hasil inpainting.

6. User dapat memilih menu bantuan jika belum paham dengan cara kerja sistem inpainting ini.

3.3.2 Pemodelan Sistem

Pada tahap ini dilakukan pemodelan sistem untuk menentukan fungsi-fungsi yang dapat dilakukan oleh sistem aplikasi serta menentukan kelas yang dibutuhkan untuk realisasi fungsi-fungsi sistem yang telah dianalisis sebelumnya dan mendeskripsikannya kedalam bentuk diagram.

3.3.2.1Use case diagram

(66)

Gambar 3.8 Use case Diagram

3.3.2.2 Definisi Aktor

Definisi aktor berfungsi untuk menjelaskan aktor yang terdapat pada use case diagram. Definisi aktor pada use case sistem yang dibangun dapat dilihat pada tabel berikut :

Tabel 3.1 Definisi Aktor

Aktor Deskripsi

(67)

3.3.2.3 Definisi Use case

Definis use case merupakan penjelasan fungsi dari use case diagram. Berikut merupakan penjelasan definis use case sistem ini :

Tabel 3.2 Definisi Use case

No Use case Deskripsi

1 Mengambil gambar dair galeri Merupakan fungsional untuk mengambil gambar pada folder galeri.

2 Menandai objek yang akan dihapus

Merupakan fungsional untuk menandai objek yang akan dihapus setelah mengambil gambar dari galeri.

3 Run Inpainting Merupakan fungsional untuk

menjalankan proses penghapusan dari objek yang sudah ditandai. 4 Hasil Inpainting Merupakan fungsional hasil dari

proses inpainting.

5 Memilih Menu Bantuan Merupakan menu untuk

menampilkan cara pemakaian aplikasi.

6 Hasil Inpainting Merupakan fungsionaltias hasil dari inpainting.

7 Menyimpan Gambar Merupakan fungsionalitas untuk

(68)

3.3.2.4 Skenario Use case

Skenario pada use case ini berisi alur dari use case utama dengan menjelaskan urutan interaksi antara aktor dan use case tersebut dari awal sampai akhir. Skenario proses-proses yang terdapat di dalam Use case dapat dilihat pada tabel-tabel dibawah ini :

Tabel 3.3 Skenario use case Mengambil gambar dari galeri

Identifikasi

Nama Mengambil gambar dari galeri

Tujuan Pengambilan gambar dari folder yang diinginkan user.

Deskripsi Fungsional untuk mengambil gambar yang ingin diproses.

Aktor User

Skenario Utama

Kondisi Awal Menampilkan menu utama

Aksi Aktor Reaksi Sistem

1. Memilih menu file

2. Memilih sub menu open image

4. Melakukan pemilihan gambar

3. Menampilkan folder image

5. Menerima file yang diupload user, jika extensi tidak sesuai maka user akan memulai lagi pada proses awal.

Kondisi Akhir Sistem menampilkan hasil pengambilan gambar dari galeri

Tabel 3.4 Skenario use case Menandai Objek yang akan dihapus

Identifikasi

(69)

Tujuan Untuk mendapatkan ROI (Region Of Interest)

Deskripsi Fungsional untuk mendapatkan ROI atau objek yang akan dihapus.

Aktor User

Skenario Utama

Kondisi Awal Menampilkan gambar yang akan di proses.

Aksi Aktor Reaksi Sistem

1. Menandai objek dengan cara

meng- click bagian luar objek sampai tersambung lagi ke titik awal.

2 Memberi warna hijau objek yang sudah

ditandai tadi sebagai ROI.

Kondisi Akhir Sistem menampilkan hasil gambar yang sudah ditandai.

Tabel 3.5 Skenario use case Run Inpainting

Identifikasi

Nama RunInpainting

Tujuan Memproses gambar seusai objek yang akan dihapus sudah ditandai.

Deskripsi Fungsional untuk memproses gambar seusai objek yang akan dihapus

sudah ditandai dan menjadi gambar baru.

Aktor User

Skenario Utama

Kondisi Awal Menampilkan gambar yang akan di proses.

Aksi Aktor Reaksi Sistem

1. Memilih Menu Inpainting

2. Memilih sub menu Run Inpainting

3. Menampilkan proses inpainting

(70)

Tabel 3.6 Skenario use case Memilih Menu bantuan

Identifikasi

Nama Memilih Menu bantuan

Tujuan Memberikan informasi penggunaan aplikasi

Deskripsi Fungsional memberikan informasi penggunaan aplikasi kepada user.

Aktor User

Skenario Utama

Kondisi Awal Menampilkan menu utama

Aksi Aktor Reaksi Sistem

1. Memilih menu Help

2. Memilih sub menu Bantuan

3. Menampilkan halaman bantu.

Kondisi Akhir Sistem menampilkan halaman bantu yang berisi informasi penggunaaan

aplikasi.

Tabel 3.7 Skenario use case Hasil Inpainting

Identifikasi

Nama Hasil Inpainting

Tujuan Hasil dari penghapusan obyek dengan inpainting

Deskripsi Fungsional hasil dari penghapusan obyek dengan inpainting.

Aktor User

Skenario Utama

Kondisi Awal Menampilkan gambar dengan obyek yang akan dihapus sudah ditandai.

Aksi Aktor Reaksi Sistem

1. Menampilkan proses inpainting

(71)

3. Menampilkan hasil dari inpainting

Kondisi Akhir Sistem menampilkan hasil Inapinting.

Tabel 3.8 Skenario use case Menyimpan Gambar

Identifikasi

Nama Menyimpan Gambar

Tujuan Simpan file gambar hasil inpainting.

Deskripsi Fungsional menyimpan hasil dari penghapusan obyek dengan inpainting.

Aktor User

Skenario Utama

Kondisi Awal Menampilkan hasil inpainting.

Aksi Aktor Reaksi Sistem

1. Memilih menu file

Kondisi Akhir Sistem menampilkan hasil Inapinting.

3.3.2.5 Activity Diagram

Activity Diagram merupakan bagian dari penggambaran sistem secara fungsional menjelaskan proses-proses logika atau fungsi yang terimplementasi oleh kode program. Aktivitas pertama selalu dimulai dari pengguna, kemudian akan mendapat respon dari sistem yang nantinya akan menampilkan akhir dari proses tersebut.

(72)
(73)

2. Activity Diagram Menandai objek yang akan dihapus

Gambar 3.10 Activity Diagram Menandai objek yang akan dihapus

3. Activity Diagram Run Inapinting

(74)

4. Activity Diagram Menu Bantuan

Gambar 3.12 Activity Diagram Memilih Menu Bantuan

(75)
(76)

3.3.3 Sequence Diagram

Pada tahap ini Sequence Diagram menjelaskan secara detail urutan proses yang dilakukan sistem untuk mencapai tujuan dari Use case. Interaksi yang terjadi antar class, operasi apa saja yang terlibat, urutan antar operasi, dan informasi yang diperlukan oleh masing-masing operasi.

(77)

Gambar 3.14 Sequence Diagram Mengambil Gambar

(78)

Gambar 3.15 Sequence Diagram Menandai Objek yang akan dihapus

(79)

Gambar 3.16 Sequence Diagram Run Inpainting

4. Sequence Diagram Memilih Menu Bantuan

Gambar 3.17 Sequence Diagram Memilih Menu Bantuan

5. Sequence Diagram Memilih Menyimpan Gambar

(80)

3.3.4 Class Diagram

Class diagram digunakan untuk menggambarkan keadan suatu sistem dengan menjelaskan keterhubungan antara suatu class dengan class yang lain yang terdapat pada sistem. Class diagram yang digunakan pada pembangunan aplikasi ini yaitu :

Gambar 3.19 Class Diagram Aplikasi Inpainting

Tabel 3.9 Deskripsi Class Diagram

Class Jenis Class Deskripsi

Main Interface Merupakan class untuk menampilkan menu utama aplikasi.

Entry Control Merupakan class yang akan digunakan

(81)

ImageInpaint Control Merupakan class yang akan digunakan untuk memproses inapinting.

GradientCalculator Control Merupakan class yang berisi method untuk menentukan gradient dan mengekstrak RGB.

UpdateStats Control Merupakan class yang berisi method update image setelah dilakukan inpainting.

Help Interface Merupakan class untuk menampilkan menu bantuan.

File Control Mendefinisikan interface dan kelas

untuk mesin virtual Java untuk mengakses file, atribut file, dan file sistem

FileChooser Control Merupakan class pemilih berkas untuk direktori home user yang hanya bisa dipilih berformat gambar.

ImageIO Control Merupakan class yang berisi metode kenyamanan statis untuk mencari ImageReaders dan ImageWriters, dan melakukan encoding dan decoding sederhana.

Container Control Class Container digunakan untuk memberikan dukungan default untuk aksesibilitas.

(82)

gambar atau tulisan dilakukan dalam warna saat ini, menggunakan modus cat saat ini, dan dalam font saat ini.

Stack Model Merupakan class yang digunakan

untuk menyimpan penyimpanan sementara proses.

String Control Merupakan class yang digunakan

untuk mendapatkan ekstensi gambar yang sesuai dideklarasikan.

Logger Control Merupakan logging pesan akan

diteruskan ke benda terdaftar Handler, yang dapat meneruskan pesan ke berbagai tujuan, termasuk konsol, file, OS log, dll

Image Control Superclass dari semua kelas yang

mewakili gambar grafis

MouseEvent Control Class yang berisi event yang dilakukan mouse.

Math Control berisi metode untuk melakukan operasi

numerik dasar seperti elementary eksponensial, logaritma, akar kuadrat, dan fungsi trigonometri.

JOptionPane Control Untuk memunculkan kotak dialog standar yang meminta pengguna untuk nilai atau menginformasikan sesuatu.

(83)

ImageConsumer yang dapat dilampirkan ke gambar atau ImageProducer objek untuk mengambil subset dari piksel dalam citra.

WritetableRaster Control Untuk memberikan kemampuan menulis piksel.

Vector Model Mengimplementasikan array growable

objek. Seperti array, berisi komponen yang dapat diakses menggunakan indeks integer.

Thread Control Thread eksekusi dalam sebuah

program. Java Virtual Machine memungkinkan aplikasi untuk memiliki beberapa thread eksekusi berjalan secara bersamaan.

BufferedImage Control Subclass menggambarkan sebuah gambar dengan buffer diakses data citra. Sebuah BufferedImage terdiri dari ColorModel dan Raster data citra.

3.4 Perancangan Sistem

(84)

3.4.1 Perancangan Struktur Menu

Perancangan menu dilakukan untuk mempermudah interaksi antara sistem dengan pengguna. Perancangan struktur menu aplikasi ini dapat dilihat sebagai berikut :

Gambar 3.20 Struktur Menu Aplikasi Inpainting

3.4.2 Perancangan Antarmuka

Perancangan antarmuka adalah tahapan pembuatan rancangan antarmuka untuk digunakan pada pembangunan aplikasi ini yang dibagi menjadi empat menu yaitu file, edit, inpainting, dan help.

1. Perancangan Antarmuka Utama

(85)

Gambar 3.21 Perancangan Antarmuka Menu Uama

2. Perancangan Antarmuka Menu File

Perancangan antarmuka menu yang tampil di menu file. Di menu file ini terdapat 4 submenu yaitu : Open Image, Save, Save As, dan Exit.

(86)

3. Perancangan Antarmuka Menu Edit

Perancangan antarmuka menu yang tampil di menu Edit. Di menu file ini terdapat 2 submenu yaitu : Undo dan Redo.

Gambar 3.23 Perancangan Antarmuka Menu Edit

4. Perancangan Antarmuka Menu Inpaint

Perancangan antarmuka menu yang tampil di menu Inpaint. Di menu file ini terdapat 1 submenu yaitu : Run.

(87)

5. Perancangan Antarmuka Menu Help

Perancangan antarmuka menu yang tampil di menu Help. Di menu file ini terdapat 1 submenu yaitu : Bantuan.

Gambar 3.25Perancangan Antarmuka Menu Help

6. Perancangan Antarmuka Submenu Bantuan

Perancangan antarmuka menu yang tampil setelah user memilih submenu Bantuan di menu Help yang berisikan petunjuk penggunaan aplikasi.

(88)

7. Perancangan Antarmuka Citra Masukan

Perancangan antarmuka yang tampil setelah user memilih citra dari galeri.

Gambar 3.27 Perancangan Antarmuka Citra Masukan

8. Perancangan Antarmuka Proses Restorasi

Perancangan antarmuka yang tampil setelah inpainting selesai atau citra yang sudah direstorasi.

(89)

9. Perancangan Antarmuka Citra Hasil Inpainting

Perancangan antarmuka yang tampil setelah inpainting selesai atau citra yang sudah direstorasi.

Gambar 3.29 Perancangan Antarmuka Citra Hasil

10.Perancangan pesan kesalahan jika memasukan file yang bukan merupakan gambar

Perancangan antarmuka pesan error jika user setelah memilih submenu open image di menu di file dengan memasukan file yang bukan gambar.

Gambar 3.30 Perancangan Antarmuka Pesan jika user memasukan bukan file

(90)

11.Perancangan pesan jika proses sudah selesai

Perancangan antarmuka pesan setelah proses inpainting selesai.

Gambar 3.31 Perancangan Antarmuka Pesan setelah proses berlangsung

3.4.3 Jaringan Semantik

Jaringan semantik adalah diagram yang menggambarkan aliran-aliran menu dan pesan dalam sebuah program. Jaringan semantik dari aplikasi ini yang dibangun yaitu

T01 T02

T03 T04

T05

T06 T07

T08 T09

M02 M01

(91)

81 4.1Implementasi Sistem

Implementasi sistem menjelaskan bagaimana pengimplementasiaan sistem yang telah dibuat. Implementasi disini menjelaskan tentang implementasi perangkat keras, implementasi perangkat lunak dan implementasi antarmuka.

4.1.1 Implementasi Perangkat Keras

Implementasi perangkat keras menjelaskan perangkat keras yang digunakan untuk mengimplementasikan sistem yang telah dibuat. Berikut ini merupakan perangkat keras yang digunakan dalam implementasi sistem ini:

1. Processor : Intel Atom @ 1.66 GHz 2. Memory : 1 GB

3. VGA : 512 MB 4. Hardisk : 10 MB 5. Monitor : 7 inch 6. Mouse dan Keyboard

4.1.2 Implementasi Perangkat Lunak

Implementasi perangkat lunak menjelaskan perangkat lunak yang digunakan dalam implementasi sistem ini. Perangkat lunak yang digunakan adalah sebagai berikut:

Gambar

Gambar 2.8 Alur proses inpainting
Gambar 2.9 Contoh Use Case diagram
Gambar 2.10 Contoh Class diagram
Gambar 2.12 Contoh Activity Diagram
+7

Referensi

Dokumen terkait

Dari hasil penelitian KIM dkk (15), menunjukkan amplifikasi dengan first round- nested PCR menggunakan primer TB 1 dan TB2 pada 48 isolat klinik hasil identifikasi dengan tes

UML atau biasa dikenal dengan Unified Modeling Language adalah sebuah standar bahasa untuk visualisasi dalam merancang dan mendokumentasikan sebuah sistem perangkat

Berdasarkan hasil penelitian yang telah dilakukan pada tanggal 17 Desember 2009 mengenai hubungan pengetahuan remaja putri tentang pemeriksaan payudara sendiri (SADARI)

Untuk mengisi data PTK yang keluar, yang harus dilakukan adalah klik nama PTK yang akan dikeluarkan, kemudian klik [Penugasan 2015/2016] yang terdapat di tabel PTK,

Diagram Perbandingan Nilai Kuat Tekan terhadap Persentasi Serat Nilon Berdasarkan Tabel 5, nilai kuat lentur untuk material pengganti kayu dengan campuran serat nilon

Penilaian yang diberikan kepada masing-masing jawaban subjek pada setiap pernyataan favourable adalah : sangat setuju (SS) mendapat nilai 4, jawaban Setuju (S) mendapat

Pihak perusahaan dapat mengetahui bagaimana sebenarnya pengaruh dimensi kualitas jasa pelayanan terhadap keputusan pemakaian pada jasanya, sehingga dapat

PEMILU ANGGOTA DPRD PROVINSI (DAPIL SUMUT 9) DI KABUPATEN