PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
HALAMAN JUDUL
PENERAPAN TEKNIK WATERMARKING METODE DWT (DISCRETE WAVELET TRANSFORM) PADA CITRA DIGITAL SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh: Benedictus Reynusa Paradhipta 115314075
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015 i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
HALAMAN JUDUL (English)
APPLICATION OF DIGITAL IMAGE WATERMARKING TECHNIQUE USING DWT (DISCRETE WAVELETE TRANSFORM) METHOD a Thesis
Presented as Partial Fulfillment of the Requirements to Obtain Sarjana Komputer Degree in Informatics Engineering Study Program
By: Benedictus Reynusa Paradhipta 115314075
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PENERAPAN TEKNIK WATERMARKING METODE DWT (DISCRETE WAVELET TRANSFORMS) PADA CITRA DIGITAL 3
HALAMAN PENGESAHAN
Dipersiapkan dan disusun oleh: Nama
: Benedictus Reynusa Paradhipta
NIM
: 115314075
Telah dipertahankan di depan panitia penguji pada tanggal 23 Juli 2015 dan dinyatakan memenuhi syarat
Susunan Panitia Penguji: Nama Lengkap
Tanda Tangan
Ketua
: Alb. Agung Hadhiatma, S.T., M.T.
_____________
Sekretaris
: Dr. Anastasia Rita Widiarti, M. Kom.
_____________
Anggota
: Sri Hartati Wijono, S.Si., M.Kom.
_____________
Yogyakarta,
Juli 2015
Fakultas Sains dan Teknologi Universitas Sanata Dharma Dekan,
(Paulina Heruningsih Prima Rosa, S.Si., M.Sc)
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
HALAMAN PERSEMBAHAN
“Better is the end of a thing than its beginning, and the patient in spirit is better than the proud in spirit.” ( Ecclesiastes 7:8 )
“When you feel like giving up, remember why you held so long in the first place, because COURAGE is not having the strength to go on; it is going on when you don't have the strength.” -- Theodore Roosevelt
Skripsi ini dipersembahkan untuk: Keluarga dan semua orang terkasih yang selalu percaya kepadaku, The other wing, partner on my path. For my existences.
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya sebuah karya ilmiah.
Yogyakarta, 31 Juli 2015 Penulis
Benedictus Reynusa Paradhipta
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS 6
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma: Nama : Benedictus Reynusa Paradhipta NIM
: 115314075
Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas Sanata Dharma karya ilmiah yang berjudul:
PENERAPAN TEKNIK WATERMARKING METODE DWT (DISCRETE WAVELET TRANSFORMS) PADA CITRA DIGITAL
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikan di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis. Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, 31 Juli 2015 Yang menyatakan,
Benedictus Reynusa Paradhipta
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
ABSTRAK
PENERAPAN TEKNIK WATERMARKING METODE DWT (DISCRETE WAVELET TRANSFORMS) PADA CITRA DIGITAL ABSTRAK
Citra dokumen digital memiliki kelebihan dalam penyimpanan dan pengiriman dalam waktu singkat dibandingkan dengan dokumen yang dicetak. Citra dokumen digital seringkali digunakan sebagai persyaratan dalam registrasi beasiswa online atau lamaran kerja online yang membutuhkan persyaratan berupa ijazah atau sertifikat. Untuk melindungi keaslian citra dokumen atau kepemilikan atas citra dokumen tersebut, teknik watermarking adalah salah satu yang terbaik. Tujuan dari skripsi ini adalah penggunaan teknik watermarking dengan menggunakan metode DWT (Discrete Wavelet Transform) pada citra digital berwarna. Citra digital ditransformasikan ke dalam 4 subband; LL, LH, HL dan HH. Proses penyisipan watermark (embed) dilakukan pada subband LL. Kualitas citra dihitung menggunakan PSNR (Peak Signal-to-Noise Ratio) dan SSIM (Structural Similiarity). Dari percobaan yang dilakukan, konstanta yang digunakan pada proses penyisipan watermark (embed) adalah α = 0.01 sehingga menghasilkan watermark yang tidak kasat mata pada citra ber-watermark dengan nilai PSNR 48,43 dan SSIM 0,949. Konstanta yang digunakan pada proses ekstraksi watermark (extract) adalah α = 10 sehingga menghasilkan watermark yang dapat dikenali secara HVS (Human Visual System) oleh penulis dari citra ber-watermark, bahkan watermark masih dapat dikenali dari citra ber-watermark yang sudah mengalami modifikasi blurring, croping, contrasting , add noise, rotate dan scaling.
Kata kunci : watermarking, watermark, wavelet, DWT, PSNR, SSIM, Robustness
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
ABSTRACT
APPLICATION OF DIGITAL IMAGE WATERMARKING TECHNIQUE USING DWT (DISCRETE WAVELETE TRANSFORM) METHOD ABSTRACT
The document digital image have
more advantageous in storage and
spreading than printed document. The document digital image commonly used for online scholarship registration requirment or in an online job application that require important document in digital media, such as qualification certificate or diploma certificate. In order to protect copyright and authentication of these document digital image, watermarking technic is one of the best solution. This paper proposes a digital private watermarking algorithm based on discrete wavelet transform (DWT) for color image. The original color image is transformed into four subband frequency; LL,LH,HL,HH. The embedding process in on subband LL. The quality of watermarked image calculated by PSNR (Peak Signal-to-Noise Ratio) and SSIM (Structural Similiarity). From this experiment, the constant number used for embed is α = 0.01 produce invisible watermark on watermarked image with PSNR value 48,43 and SSIM value 0,949. The constant number used for extract is α = 10 produce recognizable watermark in HVS (Human Visual System) by writer from watermarked image, even from watermarked image that have modificated by blurring, croping, contrasting , add noise, rotate and scaling.
Keyword: watermarking, watermark, wavelet, DWT, PSNR, SSIM, robustness
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
KATA PENGANTAR
Segala hormat dan puji syukur penulis panjatkan kepada Tuhan Yesus Kristus
karena
limpahan
kebaikan
dan
penyertaan-Nya,
penulis
dapat
menyelesaikan skripsi yang berjudul “Penerapan Teknik Watermarking Metode DWT (Discrete Wavelet Transform) Pada Citra Digital”, sebagai salah satu syarat memperoleh gelar Sarjana pada Program Studi Teknik Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta. Dalam proses penyusunan dan penulisan skripsi ini tidak terlepas dari bantuan, bimbingan serta dukungandari berbagai pihak. Oleh karena itu dalam kesempatan ini dengan segala kerendahan hati mengucapkan terima kasih kepada yang terhormat: 1. Ibu Sri Hartati Wijono, S.Si., M.Kom. selaku dosen pembimbing yang selalu bijaksana memberikan bimbingan, motivasi, kesabaran serta waktunya selama penelitian dan penulisan skripsi ini sehingga penelitian dan penulisan skripsi ini berjalan dengan lancar. 2. Romo Dr. Cyprianus Kuntoro Adi, S.J., M.A., M.Sc. yang selalu memberikan semangat dan dorongan serta menjadi rekan sharing yang sungguh berharga. 3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T. selaku dosen pembimbing akademik yang selalu memberikan motivasi dan inspirasi dalam penulisan skripsi ini. 4. Bapak Alb. Agung Hadhiatma, M.T. selaku dosen penguji yang telah memberikan banyak masukan terhadap skripsi ini. 5. Staf Dosen Teknik Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma yang telah membekali penulis dengan berbagai ilmu selama mengikuti perkuliahan sampai akhir penulisan skripsi. 6. Staf Tata Usaha Fakultas Sains dan Teknologi Universitas Sanata Dharma yang telah banyak membantu penulis selama mengikuti perkuliahan dan penulisan skripsi ini.
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7. Bapak Dada Wiyata, S.E. dan Ibu Cicilia Mujiastuti, kedua orang tua penulis yang dengan luar biasa memberikan segala tulus cinta kasih, sabar dan selalu percaya kepada penulis. 8. Kakak A. Angga Sandi Birawa, S.T. yang selalu menjadi panutan serta pelecut semangat. Adik Cindy dan Flora yang telah memberi dorongan dan kasih sayang. 9. Bapak Drs. R. V. Yuliadi K. dan Ibu Dra. L. Heni S. yang selalu memberi semangat serta perhatian yang tulus kepada penulis. 10. Grasia Anggia Mira Vania, S.Pd. yang selalu hadir dengan senyuman dan tidak pernah lelah mendampingi penulis. Terima kasih atas semua waktu, perjuangan, mimpi serta kasih sayang selama ini. 11. Rekan-rekan seperjuangan, Romo Poldo, Ega dan Bayu, atas semua kesempatan saling berbagi pendapat, ilmu serta kekonyolan bodoh kalian yang membantu penulis selalu kembali bersemangat. 12. Rekan-rekan forum matlabcentral di www.mathworks.com yang dengan senang hati berbagi pengalaman dan membantu penulis dalam pembuatan aplikasi perangkat lunak yang digunakan dalam penelitian skripsi ini. 13. Seluruh civitas akademika Teknik Informatika angkatan 2011, terutama anggota C++ yang telah berjuang bersama dan saling memberi semangat. 14. Teman-teman SMA PL Van Lith Muntilan angkatan XV dan PBI Sanata Dharma 2008 atas segala kesempatan berbagi pengalaman. 15. Semua pihak, baik langsung maupun tidak, yang telah membantu dalam proses penyelesaian skripsi ini. Semoga Tuhan memberikan balasan yang berlipat ganda kepada semuanya. Demi perbaikan selanjutnya, saran dan kritik membangun akan penulis terima dengan senang hati. Akhir kata, semoga skripsi ini bermanfaat bagi sesama.
Yogyakarta, 31 Juli 2015 Penulis, Benedictus Reynusa Paradhipta
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10 DAFTAR ISI HALAMAN JUDUL .................................................................................................... i HALAMAN JUDUL (English) ................................................................................... ii HALAMAN PERSETUJUAN..............................................................................iii HALAMAN PENGESAHAN ..............................................................................iv HALAMAN PERSEMBAHAN .................................................................................. v PERNYATAAN KEASLIAN KARYA ..................................................................... vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI...................................vii ABSTRAK ..................................................................................................................... viii ABSTRACT ................................................................................................................... ix KATA PENGANTAR .................................................................................................. x DAFTAR ISI .................................................................................................................. xii DAFTAR GAMBAR .................................................................................................... xv DAFTAR TABEL ......................................................................................................... xvi BAB I PENDAHULUAN ............................................................................................ 1 1.1.
Latar Belakang ....................................................................................... 1
1.2.
Permasalahan .......................................................................................... 3
1.3.
Pembatasan Masalah .............................................................................. 4
1.4.
Tujuan Penelitian .................................................................................... 4
1.5.
Manfaat Penelitian .................................................................................. 5
BAB II LANDASAN TEORI...................................................................................... 6 2.1.
Citra Digital ............................................................................................ 6
2.2.
Digitalisasi Citra ..................................................................................... 7
2.3.
Resolusi Citra ......................................................................................... 8
2.4.
Tipe Citra ................................................................................................ 9
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.4.1.
Citra Berwana (truecolor) ............................................................... 9
2.4.2.
Citra Grayscale ............................................................................... 9
2.4.3.
Citra Biner ....................................................................................... 10
2.5.
Kualitas Citra Digital .............................................................................. 11
2.5.1.
Peak Signal-to-Noise Ratio (PSNR) ............................................... 11
2.5.2.
Structural Similiarity (SSIM) Index ................................................ 12
2.6.
Watermarking ......................................................................................... 13
2.6.1.
Sejarah Watermarking ..................................................................... 14
2.6.2.
Pengertian Watermarking................................................................ 15
2.6.3.
Manfaat Watermarking ................................................................... 19
2.7.
Discrete Wavelet Transform pada citra digital ....................................... 19
2.7.1.
Penerapan Discrete Wavelet Transform pada kompresi citra ......... 20
2.7.2.
Invers Discrete Wavelet Transform (IDWT) .................................. 23
BAB III METODOLOGI ............................................................................................. 24 3.1.
Data ........................................................................................................ 24
3.2.
Deskripsi Rancangan Umum Perangkat Lunak ...................................... 24
3.3.
Penyisipan watermark ............................................................................ 29
3.3.1. 3.4.
Alur Proses Penyisipan ................................................................... 30
Ekstraksi Watermark .............................................................................. 31
3.4.1.
Alur Proses Ekstraksi ...................................................................... 31
BAB IV IMPLEMENTASI ......................................................................................... 32 4.1.
Representasi Data Dalam Matlab ........................................................... 32
4.2.
Alur Proses Penyisipan ( embed )........................................................... 34
4.3.
Alur Proses Ekstraksi ( extract )............................................................. 36
4.4.
Hitung PSNR dan SSIM ......................................................................... 38
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.4.1
Hitung PSNR................................................................................... 38
4.4.2.
Hitung SSIM (Structural Similiarity) .............................................. 39
4.5.
Penambahan Standart Malicious Attack pada citra ber-watermark ....... 40
BAB V HASIL DAN PEMBAHASAN ..................................................................... 41 5.1.
Kerja Perangkat Lunak ........................................................................... 41
5.2.
Hasil Pengujian ....................................................................................... 42
5.2.1.
Hasil Pengujian Citra Ber-watermark ............................................. 43
5.2.2.
Hasil Pengujian Ekstraksi dari Citra Ber-watermark ...................... 45
5.2.3.
Hasil Pengujian Ketahanan Perangkat Lunak ................................. 48
5.2.4.
Hasil Pengujian Perangkat Lunak Mengenali Citra yang Tidak Ber-
watermark .......................................................................................................... 69 BAB VI KESIMPULAN DAN SARAN ................................................................... 71 6.1.
Kesimpulan ............................................................................................. 71
6.2.
Saran ....................................................................................................... 72
DAFTAR PUSTAKA ................................................................................................... 74 Lampiran......................................................................................................................... 76
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11 DAFTAR GAMBAR Gambar 2.1 Matriks citra digital .......................................................................... 6 Gambar 2.2 Resolusi Citra ................................................................................... 8 Gambar 2.3 Keping citra berwarna ...................................................................... 9 Gambar 2.4 Representasi citra grayscale ............................................................. 10 Gambar 2.5 Skema watermarking ........................................................................ 15 Gambar 2.6 Citra grayscale sebelum dekomposisi .............................................. 22 Gambar 2.7 Citra grayscale hasil dekomposisi ................................................... 22 Gambar 2.8 Dekomposisi citra............................................................................. 23 Gambar 3.1 Diagram block perangkat lunak ....................................................... 25 Gambar 3.2 Use case............................................................................................ 26 Gambar 3.3 User interface (embed) ..................................................................... 27 Gambar 3.4 User interface (extract) .................................................................... 28 Gambar 4.1 Representasi citra1.jpg dalam Matlab .............................................. 32 Gambar 4.2 Representasi watermark1.jpg dalam Matlab .................................... 32 Gambar 4.3 (a) insert citra host, (b) insert citra watermark, (c) insert citra berwatermark ................................................................................................... 33 Gambar 4.4 (a) Hasil dekomposisi citra host, (b) Hasil dekomposisi citra watermark 34 Gambar 4.5. Rekonstruksi dengan IDWT menghasilkan citra ber-watermark .... 35 Gambar 4.6 (a) Hasil dekomposisi citra host, (b) Hasil dekomposisi citra watermark, (c) Hasil dekomposisi citra ber-watermark. .............. 36 Gambar 4.7. Rekonstruksi dengan IDWT menghasilkan citra watermark hasil ekstraksi......................................................................................... 38 Gambar 4.8. Hasil perhitungan PSNR dan SSIM ................................................ 39 Gambar 5.1 Penyisipan watermark (embed) ........................................................ 41 Gambar 5.2 Ekstraksi watermark (extract) .......................................................... 41
xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12 DAFTAR TABEL
Tabel 5.1 File citra asal (host) ............................................................................... 42 Tabel 5.2 File citra watermark ............................................................................. 42 Tabel 5.3 Tabel hasil watermarking dengan watermark1.jpg ............................... 44 Tabel 5.4 Tabel hasil watermarking dengan watermark2.jpg ............................... 44 Tabel 5.5 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.1 ................................................................................................... 46 Tabel 5.6 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.01 ................................................................................................. 47 Tabel 5.7 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.1 yang sudah dikenai Standart Attack ......................................... 49 Tabel 5.8 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.01 yang sudah dikenai Standart Attack ....................................... 53 Tabel 5.9 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.1 yang sudah dikenai Standart Attack ......................................... 57 Tabel 5.10 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.01 yang sudah dikenai Standart Attack ....................................... 61 Tabel 5.11 Tabel pengenalan informasi watermark hasil extract α =10 dari citra berwatermark embed α =0.01 (proses watermarking yang menghasilkan watermark yang tidak kasat mata) yang dikenai Standart Attack variasi pemilihan citra watermark .................................................................... 65 Tabel 5.12 Tabel extract untuk citra digital tidak ber-watermark (citra yang akan dikenali adalah citra asal) ..................................................................... 69 Tabel 5.13 Tabel extract untuk citra digital tidak ber-watermark (citra yang akan dikenali berbeda dengan citra asal). Citra asal yang digunakan Citra1.jpg ................................................................................................................. 70
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1. BAB I PENDAHULUAN
1.1.
Latar Belakang Citra digital memiliki banyak kelebihan dibandingkan citra berbentuk fisik,
salah satunya adalah mudah diduplikasi dan dikirimkan dengan waktu yang singkat. Hal ini kemudian dimanfaatkan untuk pengiriman dokumen berbentuk citra digital untuk registrasi seperti pengajuan beasiswa online atau pengajuan lamaran kerja, berupa dokumen ijazah atau sertifikat dalam bentuk citra digital Sesuai dengan sifatnya, media digital memungkinkan tak terbatasnya salinan yang sulit dibedakan dengan aslinya dan dengan mudah dimanipulasi atau dimodifikasi untuk merubah informasi dari media digital tersebut oleh pihak yang tidak bertanggung jawab. Oleh karena itu perlu dilakukan upaya untuk memberi tanda kepemilikan atau keaslian dari dokumen citra digital tersebut dengan menyisipkan informasi pemilik atau penanda keaslian pada citra dokumen digital tersebut, salah satunya dengan metode watermarking. Watermarking yang baik merupakan suatu teknik penyembunyian suatu data atau informasi “rahasia” berupa citra digital yang disebut watermark, ke dalam suatu citra digital lainnya (disebut dengan citra host), tetapi orang lain tidak menyadari kehadiran adanya data tambahan pada citra tersebut. Jadi seolah-olah tidak ada perbedaan antara host sebelum dan sesudah proses watermarking.
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Seseorang atau suatu lembaga tidak ingin dirugikan karena citra dokumen digital yang sudah dimanipulasi atau dimodifikasi mengalami perubahan informasi dari citra dokumen digital tersebut. Biasanya untuk menghindari manipulasi atau modifikasi informasi citra dokumen digital, seseorang atau suatu lembaga yang memiliki hak atas citra dokumen digital tersebut akan memberi tanda kepemilikan atau informasi lainnya agar dokumen citra digital tersebut tidak mudah dimanipulasi atau dimodifikasi. Ada beberapa teknik watermarking yang digunakan yaitu teknik watermarking yang bekerja pada domain frekuensi, spasial dan feature. Pada domain frekuensi salah satunya adalah dengan metode Discrete Wavelet Transform (DWT), pada domain spasial ada beberapa metode diantaranya Singular Value Decomposition (SVD) dan Least Significant Bit (LSB), sedangkan pada domain feature ada feature point extraction dengan dekomposisi Haar-Wavelet. Discrete Wavelet Transform (DWT) merupakan salah satu metode yang banyak digunakan dalam teknik blind watermarking maupun non-blind watermarking pada domain transform. Watermarking yang berbasis wavelet adalah pendekatan yang populer karena kekuatannya melawan malicious attack (modifikasi citra ber-watermark). Discrete Wavelet Transform (DWT) membagi sebuah dimensi sinyal menjadi dua bagian, yaitu bagian dengan frekuensi tinggi dan frekuensi rendah, yang disebut dengan dekomposisi. Sebuah sinyal dilewatkan melalui highpass filter untuk menganalisis frekuensi tinggi, dan dilewatkan melalui lowpass filter untuk menganalisis frekuensi rendah. Keluaran dari highpass filter dan lowpass filter ini menghasilkan koefisien DWT, sehingga citra asli dapat
2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
direkonstruksi. Proses rekonstruksi ini disebut Inverse Discrete Wavelet Transform (IDWT). Secara umum penyisipan watermark ke dalam citra dilakukan dengan cara membandingkan koefisien DWT dari dekomposisi citra. Koefisien yang memiliki nilai terbesar adalah tempat yang paling signifikan untuk menyisipkan watermark. Penelitian yang sama pernah dilakukan oleh Dean Fathony Alfatwa. Berdasarkan (Alfatwa, 2003) dilakukan dekomposisi DWT dalam beberapa level, watermark yang digunakan berupa citra hitam putih dengan format bitmap image (.bmp) dan bahasa pemrograman yang digunakan adalah Java. Sedangkan dalam skripsi ini, penulis melakukan penelitian terhadap pemilihan konstanta penyisipan pada proses dekomposisi DWT dalam 1 level, watermark yang digunakan berupa citra dengan format Joint Photographic Experts Group berekstensi .jpg/.jpeg yang memiliki keping warna red, green, dan blue (RGB), serta melakukan pengujian terhadap citra ber-watermark yang sudah mengalami modifikasi.
1.2.
Permasalahan Sesuai dengan uraian latar belakang, permasalahan pada skripsi ini adalah: 1. Bagaimana memberi watermark yang tidak kasat mata pada citra digital dokumen menggunakan metode Discrete Wavelet Transform ? 2. Bagaimana kualitas citra digital setelah mengalami proses watermarking ? 3. Apakah watermark hasil ekstraksi dari citra ber-watermark yang mengalami modifikasi (standard malicious attack) tetap dapat dikenali?
3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1.3.
Pembatasan Masalah Dalam tugas akhir ini, penulis membatasi permasalah dengan ruang lingkup
sebagai berikut : 1. Penerapan watermarking hanya pada citra dokumen digital dengan format Joint Photographic Experts Group berekstensi .jpg/.jpeg yang memiliki keping warna red, green, dan blue (RGB). 2. Penerapan watermarking menggunakan metode Discrete Wavelete Transform (DWT) menggunakan wavelete Haar. 3. Citra yang digunakan sebagai watermark merupakan citra dengan format Joint Photographic Expert Group berekstensi .jpg/.jpeg.
1.4.
Tujuan Penelitian Menerapkan teknik watermaking pada citra dokumen digital dengan format
Joint Photographic Experts Group berekstensi .jpg menggunakan metode Discrete Wavelet Transform (DWT) sehingga menghasilkan citra dokumen ber-watermark yang memiliki watermark tidak kasat mata, melakukan pengujian kualitas citra dokumen digital setelah mengalami proses watermarking serta menguji ketahanan citra dokumen digital hasil proses watermarking terhadap standard malicious attack.
4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1.5.
Manfaat Penelitian Manfaat dari penelitian ini antara lain : 1. Memberikan pengetahuan tentang proses pembuatan citra digital berwatermark dengan metode Discrete Wavelet Transform (DWT) 2. Mengetahui kualitas citra dokumen digital yang sudah mengalami proses watermarking. 3. Bagi pemilik dokumen citra digital, memberikan penanda untuk membuktikan keaslian terhadap dokumen citra dokumen digital tersebut. 4. Bagi lembaga, instansi atau perseorangan yang memanfaatkan isi informasi dari citra dokumen digital, memberikan informasi keaslian atas dokumen citra digital yang dimanfaatkannya dengan melihat watermark pada hasil ekstraksi citra dokumen digital.
5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2. BAB II LANDASAN TEORI
2.1.
Citra Digital Citra digital adalah gambar dua dimensi yang bisa ditampilkan pada layar
komputer sebagai himpunan/ diskrit nilai digital yang disebut pixel/ picture elements. Dalam tinjauan matematis, citra merupakan fungsi kontinu dari intensitas cahaya pada bidang dua dimensi. Citra digital adalah citra f(x,y) dimana dilakukan diskritisasi koordinat sampling/ spasial dan diskritisasi tingkat kwantisasi (kabuan/ kecemerlangannya). Citra digital merupakan fungsi intensitas cahaya f(x,y), dimana harga x dan harga y adalah koordinat spasial. Harga fungsi tersebut di setiap titik (x,y) merupakan tingkat kecemerlangan citra pada titik tersebut. Matrik yang dinyatakan Citra digital yaitu dengan matriks berukuran N (baris/tinggi) x M (kolom/lebar).
Gambar 2.1 Matriks citra digital Ada berbagai jenis format citra digital, salah satu yang banyak digunakan di internet dan dikenal secara luas adalah Joint Photographic Experts Group dengan ekstensi .jpg/.jpeg (Edi, 2006). Joint Photographic Experts Group merupakan suatu skema kompresi lossy yang dikembangkan oleh perusahaan dengan nama yang sama. 6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.2.
Digitalisasi Citra Komputer hanya bisa mengolah data yang bersifat numerik. Oleh karena itu,
agar dapat diolah oleh komputer maka sebuah citra harus direpresentasikan secara numerik menggunakan nilai-nilai diskrit. Representasi citra secara numerik inilah yang disebut dengan digitalisasi yang pada dasarnya merupakan proses mengubah nilai kontinu menjadi nilai-nilai diskrit. Alat-alat yang dapat mentransformasikan citra analog menjadi citra digital diantaranya adalah kamera digital, kamera converter, scanner dan lain sebagainya. Proses digitalisasi citra pada dasarnya adalah proses konversi sinyal analog ke digital, dijabarkan kedalam 2 proses berikut: 1. Digitalisasi spasial (x, y), sering disebut sebagai sampling. Sampling menyatakan besarnya kotak-kotak yang disusun dalam baris dan kolom. Dengan kata lain sampling pada citra menyatakan besar kecilnya ukuran piksel pada citra. Untuk memudahkan implementasi, jumlah sampling biasanya diasumsikan perpangkatan dari dua: N = 2n dimana ,
N= jumlah sampling pada suatu baris/kolom n = bilangan bulat positif
Pembagian gambar menjadi ukuran tertentu menentukan resolusi spasial yang diperoleh. Semakin tinggi resolusinya, berarti semakin kecil ukuran piksel (jumlah piksel yang dimiliki citra semakin banyak), semakin halus gambar
yang
diperoleh
karena
informasi
yang
hilang
akibat
pengelompokkan derajat keabuan pada proses sampling semakin kecil.
7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2. Digitalisasi intensitas f(x, y), sering disebut sebagai kuantisasi. Setelah proses sampling pada citra maka proses selanjutnya adalah kuantisasi. Kuantisasi menyatakan besarnya nilai tingkat kecerahan yang dinyatakan dalam nilai tingkat keabuan (grayscale) sesuai dengan jumlah bit biner yang digunakan, dengan kata lain kuantisasi pada citra menyatakan jumlah warna yang ada pada citra. Proses kuantisasi
membagi skala
keabuan (0, L) menjadi G buah level yang dinyatakan dengan suatu harga bilangan bulat (integer), G level diambil perpangkatan dari 2.
2.3.
Resolusi Citra Masing-masing elemen dari matriks yang tidak lain adalah elemen dari citra
digital yang merupakan bagian terkecil dari suatu citra disebut dengan picture element atau piksel. Jadi jika sebuah citra mempunyai ukuran 5 x 5 piksel artinya citra tersebut mempunyai 5 baris dan 5 kolom dalam sebuah matriks. Sedangkan banyaknya piksel yang digunakan untuk membentuk suatu citra digital disebut resolusi. Semakin tinggi resolusi maka semakin tinggi pula tingkat detail citra tersebut sehingga citra yang terbentuk akan semakin baik.
x
0
1
2
3
4
kolom/lebar = 5
0 1 2 3 4 y baris/tinggi = 5
piksel
Gambar 2.2 Resolusi Citra
8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.4.
Tipe Citra Berdasarkan format penyimpanan nilai warnanya citra digital terbagi dalam
tiga tipe yaitu : 2.4.1. Citra Berwana (truecolor) Red (Merah), Green (Hijau) dan Blue (Biru) merupakan warna dasar yang dapat diterima oleh mata manusia. Setiap piksel pada citra berwarna mewakili warna yang merupakan kombinasi dari ketiga warna dasar RGB. Setiap titik pada citra berwarna membutuhkan data sebesar 3 byte. Setiap warna dasar memiliki intensitas tersendiri dengan nilai minimum nol (0) dan nilai maksimum 255.
Gambar 2.3 Keping citra berwarna
2.4.2. Citra Grayscale Citra grayscale merupakan citra digital yang hanya memiliki satu nilai kanal pada setiap pikselnya, artinya nilai dari Red = Green = Blue. Nilai-nilai tersebut digunakan untuk menunjukkan intensitas warna. Citra yang ditampilkan dari citra jenis ini terdiri atas warna abu-abu, bervariasi pada warna hitam pada bagian yang intensitas terlemah dan warna putih pada intensitas terkuat. Citra grayscale berbeda dengan citra ”hitam-putih”, dimana
9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
pada konteks komputer, citra hitam putih hanya terdiri atas 2 warna saja yaitu ”hitam” dan ”putih” saja. Pada citra grayscale, warna bervariasi antara hitam dan
putih,
tetapi
variasi
warna
diantaranya
sangat
banyak.
Citra grayscale seringkali merupakan perhitungan dari intensitas cahaya pada setiap piksel pada spektrum elektromagnetik single band. Citra grayscale disimpan dalam format 8 bit untuk setiap sampel piksel, yang memungkinkan sebanyak 256 intensitas. Untuk mengubah citra berwarna yang mempunyai nilai matrik masing-masing R, G dan B menjadi citra grayscale dengan nilai X, maka konversi dapat dilakukan dengan mengambil rata-rata dari nilai R, G dan B sehingga dapat dituliskan menjadi: X = (R+G+B)/3
Gambar 2.4 Representasi citra grayscale
2.4.3. Citra Biner Citra biner (binary image) adalah citra digital yang hanya memiliki 2 kemungkinan warna, yaitu hitam dan putih. Citra biner disebut juga dengan citra B/W (Black/White) atau citra monokrom. Hanya dibutuhkan 1 bit untuk mewakili nilai setiap piksel dari citra biner. Pembentukan citra biner memerlukan nilai batas keabuan yang akan digunakan sebagai nilai patokan. Piksel dengan derajat keabuan lebih besar dari
10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
nilai batas akan diberi nilai 1 dan sebaliknya piksel dengan derajat keabuan lebih kecil dari nilai batas akan diberi nilai 0. 2.5.
Kualitas Citra Digital Penghitungan kualitas citra dapat dilakukan dengan dua cara, yaitu
menghitung peak signal-to-noise ratio (PSNR) sebagai pembanding kualitas citra hasil rekonstruksi dengan citra asal. Cara yang kedua adalah menghitung galat/ error citra ber-watermark yang dihasilkan dari proses watermarking. 2.5.1. Peak Signal-to-Noise Ratio (PSNR) Istilah peak signal-to-noise ratio (PSNR) adalah sebuah istilah dalam bidang teknik yang menyatakan perbandingan antara kekuatan sinyal maksimum yang mungkin dari suatu sinyal digital dengan kekuatan derau yang mempengaruhi kebenaran sinyal tersebut. Oleh karena banyak sinyal memiliki jangkauan dinamis yang luas, maka PSNR diekspresikan dalam skala logarithmic decibel. PSNR didefinisikan melalui signal-to-noise ratio (SNR). Signal-to-noise ratio (SNR) digunakan untuk mengukur tingkat kualitas sinyal. Nilai ini dihitung berdasarkan perbandingan antara sinyal dengan nilai derau. Kualitas sinyal berbanding lurus dengan dengan nilai SNR. Semakin besar nilai SNR semakin baik kualitas sinyal yang dihasilkan. Nilai PSNR dari citra berwatermark lebih dari 40db mengindikasikan bahwa kualitas citra berwatermark tinggi (Cheddad, Curran dan Kevitt 2010). Pertama yang dilakukan adalah menghitung nilai mean squared error (MSE) dari suatu citra hasil rekonstruksi. MSE dihitung untuk seluruh piksel dalam citra. Root mean squared error (RMSE) adalah akar dari MSE.
11
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
𝑀𝑆𝐸 =
∑[𝐹 (𝑖,𝑗 )−𝑓(𝑖,𝑗)]2 𝑁2
(2.1)
N2 menyatakan hasil perkalian panjang dan lebar citra dalam pixel. F(i,j) merupakan citra hasil rekonstruksi, sedangkan 𝑓(𝑖, 𝑗) adalah citra asal.
Berdasarkan persamaan MSE tersebut, maka nilai PSNR dapat dihitung dengan persamaan sebagai berikut. Nilai PSNR direpresentasikan dalam skala desibel (dB).
𝑃𝑆𝑁𝑅 = 20 log10 (
255
𝑅𝑀𝑆𝐸
)
(2.2)
Nilai 255 pada persamaan diatas merupakan batas atas dari sebuah piksel.
2.5.2. Structural Similiarity (SSIM) Index Structural Similiarity (SSIM) Index adalah sebuah metode untuk mengukur kemiripan atau kesamaan dari 2 buah gambar. SSIM index mengolah matrix dari 2 gambar yang dibandingkan. Sebenarnya SSIM didesain sebagai metode baru
yang lebih baik dari PSNR dan MSE. SSIM
menggunakan informasi struktural dari degradasi gambar, dimana tiap-tiap pixel gambar memiliki dependensi yang membawa informasi penting tentang struktural dari gambar secara visual. Matriks SSIM didapat dari penghitungan 2 matriks gambar x,y yang memiliki ukuran n x n. Rumus dari SSIM adalah sebagai berikut:
𝑆𝑆𝐼𝑀 =
( 2 𝜇𝑥 𝜇𝑦 + 𝐶1 ) ( 2 𝜎𝑥𝑦 + 𝐶2 ) 2 + 𝐶 ) ( 𝜎2+ 𝜎2 + 𝐶 ) (𝜇𝑥2 + 𝜇𝑦 1 2 𝑥 𝑦
(2.3)
12
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
𝜇𝑥 adalah rata-rata dari x
𝜎𝑦2
𝜇𝑦 adalah rata-rata dari y
𝜎𝑥𝑦 adalah covarian dari x dan y
adalah varian dari y
𝜎𝑥2 adalah varian dari x 𝐶1 = (𝑘1 𝐿)2 , 𝐶1 = (𝑘2 𝐿)2 merupakan dua variabel untuk menstabilkan divisi yang memiliki denominator yang rendah. 𝐿 adalah rentang pixel-values (biasanya adalah 2#𝑏𝑖𝑡𝑠 𝑝𝑒𝑟 𝑝𝑖𝑥𝑒𝑙 − 1 ) 𝑘1 = 0.01 dan 𝑘1 = 0.01 adalah nilai default Hasil dari perhitungan SSIM adalah nilai desimal antara 0 sampai 1, dimana nilai desimal semakin mendekati 1 berarti 2 gambar yang dibandingkan semakin menyerupai atau dapat dikatakan sebagai gambar yang sama jika nilai desimal hasil SSIM adalah 1 (Wang, Bovik, Sheikh dan Simoncelli, 2004: 600612).
2.6.
Watermarking Saat ini banyak peralatan – peralatan digital yang dapat dengan mudah
melakukan duplikasi dan modifikasi terhadap suatu data citra digital tanpa meninggalkan jejak terhadap perubahan yang dilakukan, sehingga kredibilitas data tersebut tidak dapat lagi dipertanggungjawabkan. Oleh sebab itu diperlukan suatu metode yang dapat mendeteksi adanya perubahan yang dilakukan terhadap data citra digital, metode yang dapat digunakan adalah metode watermarking.
13
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.6.1. Sejarah Watermarking Sejarah watermarking sudah dimulai sejak 700 tahun yang lalu. Pada akhir abad 13, pabrik kertas di Fabriano Italia, membuat kertas yang diberi watermark atau tanda-air dengan cara menekan bentuk cetakan gambar atau tulisan pada kertas yang baru setengah jadi. Ketika kertas dikeringkan, terbentuklah suatu kertas yang ber-watermark. Kertas ini biasanya digunakan oleh seniman dan sastrawan untuk menulis karya mereka. Kertas yang sudah dibubuhi watermark tersebut sekaligus dijadikan identifikasi bahwa karya seni di atasnya adalah milik mereka. Perkembangan watermarking selanjutnya adalah watermarking pada media digital. Watermarking pada media digital ini mulai dikembangkan pada tahun 1990 di Jepang dan tahun 1993 di Swiss . Digital watermarking masih merupakan salah satu teknik baru di bidang proteksi data-data digital, hingga saat ini teknologi watermarking masih dalam tahap pengembangan karena masih belum ditemukan teknik yang ideal untuk implementasinya. Hal - hal yang terkait dengan ketahanan (robustness) dan ekstraksi masih menjadi permasalahan utama dalam pengimplementasian watermarking. Teknik watermarking dapat diklasifikasi menjadi dua kategori yaitu, metode Domain Spasial dan metode Domain Transformasi. Metode Domain Spasial lebih mudah pemakaiannya karena tidak menggunkan transformasi, tetapi tidak tahan terhadap serangan (Hameed, Kamran, Mumtaz, and Gilani,2008).
14
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.6.2. Pengertian Watermarking Watermarking adalah proses penyisipan sebuah data rahasia (watermark) ke sebuah gambar dimana citra yang sudah ber-watermark sulit atau bahkan tidak dapat dibedakan oleh pengelihatan visual (Al-khassaweneh and Selin 2008). Watermarking berkembang seiring perkembangan zaman dengan munculnya watermarking pada media digital atau disebut dengan digital watermarking. Digital watermarking dapat dijalankan pada berbagai media digital seperti citra digital, file suara dan video. Secara umum watermarking adalah proses penyisipan citra digital dengan citra watermark.
Citra asli
Embedding
Citra ber-watermark
Citra watermark
Gambar 2.5 Skema watermarking
Watermarking pada citra digital sendiri memiliki beberapa jenis teknik yang memiliki keunggulan dan kelemahan masing-masing. Biasanya teknik watermarking yang kuat (robust) susah dipecahkan oleh berbagai serangan tetapi memiliki kualitas gambar ber-watermark yang kurang memuaskan, demikian juga sebaliknya, teknik watermarking yang menghasilkan kualitas gambar yang memuaskan biasanya kurang kuat menghadapi serangan. Secara garis besar teknik watermarking dibedakan menjadi dua yaitu:
15
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1.
Private Watermarking / Non-Blind Watermarking Teknik watermarking yang membutuhkan citra asli dan citra berwatermark untuk megekstraksi watermark.
2.
Public Watermarking / Blind Watermarking Teknik watermarking yang tidak membutuhkan citra asli atau watermark yang disisipkan untuk melakukan ekstraksi.
Lebih jauh lagi, watermark bisa juga berupa kode yang membawa informasi mengenai pemilik hak cipta, pencipta atau pembeli yang sah dan segala sesuatu yang diperlukan untuk menangani hak kepemilikan media digital. Watermark sengaja ditanamkan secara permanen pada data digital sedemikian hingga pengguna yang berwenang dapat dengan mudah membacanya, disisi lain watermark tersebut haruslah tidak mengubah isi media kecuali sedikit atau perubahan tersebut tidaklah tampak atau kurang begitu tampak bagi indera manusia. Hal ini disebabkan karena pengubahan dari citra digital asal ke citra ber-watermark hanya berpengaruh sedikit terhadap perubahan warna dari citra digital, sehingga sistem penglihatan manusia (Human Visual System) tidak dapat mempersepsi perubahan tersebut. Mutu dari teknik watermarking meliputi beberapa parameter utama berikut ini : a. Fidelity : Perubahan yang disebabkan oleh tanda (mark) semestinya tidak mempengaruhi nilai isi, idealnya tanda harusnya tidak dapat dilihat, sehingga tidak dapat dibedakan antara data yang ber-watermark dan data yang asli. Salah satu trade-off antara karakteristik
16
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
watermarking yang sangat kelihatan adalah antara robustness dengan fidelity. Dalam beberapa literatur, fidelity kadang disebut dengan invisibility untuk jenis data citra dan video. Yang dimaksud dengan fidelity disini adalah derajat degradasi host data sesudah diberi watermark dibandingkan dengan sebelum diberi watermark. Biasanya bila robustness dari watermark tinggi maka memiliki fidelity yang rendah, sebaliknya robustness yang rendah dapat membuat fidelity yang tinggi. Jadi sebaiknya dipilih trade-off yang sesuai, sehingga keduanya dapat tercapai sesuai dengan tujuan aplikasi. Untuk host data yang berkualitas tinggi maka fidelity dituntut setinggi mungkin sehingga tidak merusak data aslinya, sedangkan host data yang memiliki noise (kualitas kurang) maka fidelity-nya bisa rendah. b. Robustness : watermark di dalam host data harus tahan terhadap beberapa operasi pemrosesan digital atau manipulasi data (malicious attack). Manipulasi data yang umum (standard malicious attack) digunakan seperti: blurring, cropping, scaling, rotating, adding noise, change contrast. Pada robust watermark, data disisipkan dengan sangat kuat, sehingga jika ada yang berusaha menghapusnya maka gambar atau suara yang disisipi akan ikut rusak dan tidak punya nilai komersial lagi. c. Security : Watermarking harus tahan terhadap usaha segaja memindahkan / mencopy watermark dari satu multimedia data ke multimedia data lainnya.
17
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Pada ketiga kriteria diatas, fidelity merupakan kriteria paling tinggi (Sirait, 2008). Proses watermarking (embed) perlu didukung dengan proses ekstrasi watermark (extract) dari citra ber-watermark. Proses ekstraksi (extract) ini bertujuan untuk mengetahui watermark yang disisipkan dalam citra digital yang ber-watermark tersebut. Umumnya proses ekstraksi (extract) melibatkan proses pembandingan citra digital asal dengan citra ber-watermark untuk mendapatkan watermark yang disisipkan. Watermarking dengan Discrete Wavelet Transform (DWT) ini dipilih sebagai metode penyisipan watermarking karena beberapa alasan yaitu : 1. DWT merupakan yang paling dekat terhadap HVS (Human Visual System) (Terzija, 2006). 2. Distorsi yang disebabkan oleh wavelet domain dalam perbandingan kompresi tinggi tidak terlalu mengganggu dibandingkan domain lain dalam bit rate yang sama (Terzija, 2006). 3. Bit-error rate yang rendah. Bit-error rate merupakan perbandingan antara bit yang salah diekstraksi dengan total bit yang disisipkan (Kutter, dan Fabien 1999).
18
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.6.3. Manfaat Watermarking 1.
Proteksi Hak Cipta Tujuan watermarking dalam perlindungan hak cipta adalah sebagai bukti otentik atas hak kepemilikan pencipta atas ckonten yang dibuat atau diproduksinya. Watermarking sangat ideal untuk pembuatan label hak cipta, karena bukan hanya tak terlihat tetapi juga tidak dapat dipisahkan dari data yang disisipi. Hal ini merupakan alasan utama sehingga proteksi menggunakan label hak cipta menjadi aplikasi yang sangat terkemuka saat ini (Lu, 2005).
2. Penanda (fingerprinting) Fungsi watermarking pada fingerprinting mirip dengan serial number (S/N.).
Tujuan
watermarking
adalah
mengidentifikasi
setiap
penggunaan dan distribusi suatu content. 3. Proteksi terhadap penggandaan (copy protection) Watermarking berfungsi melindungi konten dari duplikasi dan pembajakan. 4. Autentikasi citra Watermarking berfungsi dalam proses autentikasi, sehingga modifikasi dari suatu citra dapat terdeteksi
2.7.
Discrete Wavelet Transform pada citra digital Transformasi wavelet diskrit (discrete wavelet transform) secara umum
merupakan dekomposisi citra pada frekuensi subband citra tersebut. Komponen subband transformasi wavelet dihasilkan dengan cara penurunan level 19
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
dekomposisi. Implementasi transformasi wavelet diskrit dapat dilakukan dengan cara melewatkan sinyal melalui sebuah tapis lolos rendah (low pass filter/LPF) dan tapis lolos tinggi (high pass filter/HPF) dan melakukan downsampling pada keluaran masing-masing filter Lowpass terhadap baris
Lowpass terhadap kolom Highpass terhadap kolom
Citra Highpass terhadap baris
Lowpass terhadap kolom Highpass terhadap kolom
LL LL
HL
: hasil lowpass terhadap baris dan kolom
LH : hasil lowpass terhadap baris diteruskan dengan highpass terhadap kolom
LH
HH
HL : hasil highpass terhadap baris diteruskan lowpass terhadap kolom HH : hasil highpass terhadap baris dan kolom
2.7.1. Penerapan Discrete Wavelet Transform pada kompresi citra Kompresi dalam citra menggunakan DWT berhubungan dengan dekomposisi terhadap citra tersebut. Citra yang merupakan sinyal bergerak ini didekomposisi sama seperti cara dekomposisi sinyal yang telah dipaparkan pada bagian sebelumnya.
20
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Secara umum, citra (sinyal bergerak) merupakan rangkaian gelombang yang memiliki banyak puncak dan lembah. Masing-masing gelombang dalam rangkaian gelombang dari sebuah citra biasanya mewakili channel warna (Merah, Hijau, dan Biru). Puncak dan lembah citra dipusatkan ke titik nol, selanjutnya transformasi sinyal menyimpan jarak dari titik nol menuju titik sepanjang gelombang, jarak ini disebut dengan koefisien. Koefisien yang berdekatan kemudian dirata-rata untuk mendapatkan gelombang yang lebih sederhana dan menghasilkan citra dengan resolusi atau tingkat kedetilan setengah dari semula. Koefisien yang telah dirata –rata kemudian dibagi lagi seterusnya hingga mendapatkan gelombang yang sangat sederhana. Proses ini merupakan dekomposisi pada citra. Transformasi wavelet dapat menghasilkan versi resolusi citra yang sangat sederhana, oleh karena itu diperlukan perkiraan bentuk umum serta warna (informasi) dari citra untuk dapat merekonstruksi sebuah citra. Transformasi wavelet dapat mengidentifikasi variasi yang signifikan dalam sebuah citra. Variasi ini berhubungan dengan tempat di mana proses penyederhanaan terjadi. Pada saat dekomposisi citra menggunakan koefisien yang dirata-rata, selisih dari koefisien tersebut dicatat. Semakin kecil selisih dari koefisien maka variasi di dalam citra tersebut sedikit, dan ini merupakan kandidat yang bagus untuk proses penyederhanaan. Semakin besar selisih koefisien maka ini menandakan detil dari citra tersebut sangat signifikan dan perlu untuk dipertahankan, biasanya yang memilki detil ini adalah garis atau tepi dari citra. Contoh dari proses dekomposisi dan rekonstruksi citra adalah, misalkan ada sebuah citra satu dimensi yang memiliki empat nilai saja
21
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
(empat piksel dalam sebuah baris, memiliki tingkat abu-abu yang berbeda), yaitu:
Gambar 2.6 Citra grayscale sebelum dekomposisi
Selanjutnya diambil rata-rata dari pasangan pertama dan kedua hingga menghasilkan tingkat abu-abu sebagai berikut:
Gambar 2.7 Citra grayscale hasil dekomposisi
Setelah citra telah disederhanakan, perlu untuk mencatat informasi dari citra ini yaitu berupa selisih dari koefisien rata-rata. Selisih ini perlu dicatat karena setelah citra disederhanakan maka resolusinya berkurang menjadi setengah dan ada informasi yang hilang. Padahal informasi ini dibutuhkan untuk merekontruksi citra tersebut. Secara teknis, dekomposisi citra yang merupakan sinyal bergerak dapat digambarkan seperti dekomposisi sinyal menggunakan transformasi wavelet. Citra dengan dua dimensi (baris dan kolom) dapat didekomposisi seperti berikut:
22
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LL2
HL2
LH2
HH2
HL1
Dekomposisi
LH1
HH1
Citra asli Gambar 2.8 Dekomposisi citra
2.7.2. Invers Discrete Wavelet Transform (IDWT) Transformasi balik diskrit wavelet merupakan kebalikan dari DWT maju. Pada tahap ini dilakukan proses rekonstruksi dengan arah yang berlawanan dari proses sebelumnya. Yaitu dengan proses up-sampling dan pem-filter-an
dengan
koefisien-koefisien
filter
balik.
Proses
up-
sampling dilakukan dengan mengembalikan dan menggabungkan sinyal seperti semula. Proses ini dilakukan dengan menyisipkan sebuah kolom berharga nol di antara setiap kolom dan melakukan konvolusi pada setiap baris dengan filter satu dimensi. Hal yang sama dilakukan dengan menyisipkan sebuah baris nol di antara setiap baris dan melakukan konvolusi pada setiap kolom dengan filter yang lainnya.
23
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3. BAB III METODOLOGI
3.1.
Data Data yang digunakan dalam pengujian ini adalah file image / citra dokumen
digital dengan format joint photographic experts group berekstensi .jpg/.jpeg yang didapat melalui proses digitalisasi citra dokumen menggunakan scanner. Sedangkan file citra watermark dibuat menggunakan aplikasi Paint Editor yang ada pada sistem operasi Windows. Citra watermark yang digunakan memiliki 2 varian penampang, yaitu citra watermark dengan satu penampang image tunggal dan citra watermark dengan banyak penampang image yang tersebar. Varian ini dipilih untuk menguji mana jenis varian penampang yang baik sebagai citra watermark.
3.2.
Deskripsi Rancangan Umum Perangkat Lunak Perangkat lunak dirancang untuk dapat melakukan proses penyisipan
watermark ke dalam sebuah citra digital dengan teknik private watermarking / Nonblind watermarking. Perangkat lunak ini dibangun pada satu lingkungan pengembangan saja yaitu pada PC (Personal Computer), sehingga proses watermarking (embed) dan ekstraksi (extract) dilakukan pada lingkungan pengembangan yang sama. User diharuskan memilih proses yang diinginkan pada awal berjalannya sistem. Proses watermarking (embed) berguna untuk melakukan watermarking pada citra host, sedangkan proses ekstraksi (extract) berguna untuk melakukan ekstraksi watermark dari citra digital yang sudah ber-watermark.
24
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Perangkat lunak ini dibangun di dalam lingkungan desktop komputer dengan sistem operasi Windows 8 Pro 64 bit. Perangkat lunak ini dibangun menggunakan Matlab (Matrix Laboratory) versi 2012b. Perangkat keras yang digunakan dalam pengembangan perangkat lunak ini adalah seperangkat komputer dengan spesifikasi sebagai berikut: 1. Notebook dengan layar monitor LED 14 inch 2. Processor Intel(R) Core(TM) i3-3110M CPU @2.40GHz 3. Memory 4 GB 4. Hard Disk 500 GB 5. Perangkat tambahan : scanner Ekstraksi watermark (extract) dirancang untuk dapat melakukan pembandingan antara citra host dengan citra ber-watermark untuk mendapatkan watermark. Secara umum arsitektur perangkat lunak yang dibangun pada kedua lingkungan dapat dilihat pada gambar diagram blok gambar 3.1.
Embed
Citra host
Pembentukan kembali citra dengan IDWT
Penyisipan watermark
Dekomposisi dengan DWT Citra watermark
Extract Pembentukan kembali citra dengan IDWT
Citra watermark
Ekstraksi watermark
Dekomposisi dengan DWT
Citra host
Citra berwatermark
Citra watermark
Gambar 3.1 Diagram blok perangkat lunak
25
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Proses embed yang dilakukan adalah pertama citra host dan citra watermark di dekomposisi dengan DWT menggunakan wavelete Haar untuk mencari nilai koefisien fLL masing-masing citra. Kemudian dilakukan penyisipan watermark dengan memodifikasi koefisien fLL citra host dengan koefisien fLL citra watermark, kemudian dilakukan proses Invers DWT yang merupakan proses pembentukan kembali citra sehingga menghasilkan citra ber-watermark. Proses extract yang dilakukan adalah pertama citra host, citra watermark dan citra ber-watermark di dekomposisi dengan DWT menggunakan wavelete Haar untuk mencari nilai koefisien fLL masing-masing citra. Kemudian dilakukan proses ekstraksi untuk mendapatkan koefisien fLL citra watermark baru hasil dengan memodifikasi koefisien fLL citra ber-watermark dengan menggunakan koefisien fLL citra host dan fLL citra watermark , kemudian dilakukan proses Invers DWT yang merupakan proses pembentukan kembali citra sehingga menghasilkan citra watermark baru. 3.2.1. Use Case dan User Interface
Menyisipkan watermark
Mengekstrak watermark
Gambar 3.2 Use case
26
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Aktor User
Use Case Menyisipkan watermark
Mengekstrak watermark
Deskripsi Proses ini adalah menyisipkan citra watermark pada citra host sehingga menghasilkan citra berwatermark Proses ini adalah ekstraksi watermark pada citra berwatermark sehingga menghasilkan citra watermark baru
1. Halaman penyisipan watermark (embed)
Gambar 3.3 User interface (embed)
Use Case
: Menyisipkan watermark, gambar 3.2.
Deskripsi
: Proses ini adalah menyisipkan citra watermark pada citra host sehingga menghasilkan citra ber-watermark
Pre – Condition
: Citra watermark dan citra host sudah ada.
Post – Condition : Citra ber-watermark terbentuk dan dapat disimpan
27
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Aksi Aktor
Reaksi Perangkat Lunak
1.
Menekan tombol “browse”
Memasukkan citra watermark dan citra host kedalam perangkat lunak
2.
Menekan tombol “Proses”
Melakukan dekomposisi dan modifikasi koefisien citra 3. Menampilkan citra ber-watermark yang sudah terbentuk
Menekan tombol “Save”
4. Menyimpan citra ber-watermark yang sudah terbentuk kedalam direktori yang dikehendaki user
2. Halaman ekstraksi watermark (extract)
Gambar 3.4 User interface (extract) Use Case
: Mengekstrak watermark, gambar 3.2.
Deskripsi
: Proses ini adalah ekstraksi watermark pada citra berwatermark sehingga menghasilkan citra watermark baru.
Pre – Condition
: Citra ber- watermark, citra watermark dan citra host sudah ada.
Post – Condition : Citra watermark baru terbentuk dan dapat disimpan
28
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Aksi Aktor
Reaksi Perangkat Lunak
1.
Menekan tombol “browse”
Memasukkan citra ber-watermark, citra watermark dan citra host kedalam perangkat lunak
2.
Menekan tombol “Proses”
Melakukan dekomposisi dan modifikasi koefisien citra 3. Menampilkan citra watermark baru yang sudah terbentuk
Menekan tombol “Save”
3.3.
4. Menyimpan citra watermark baru yang sudah terbentuk kedalam direktori yang dikehendaki user
Penyisipan watermark Dekomposisi citra digital yang akan disisipi watermark atau citra host
merupakan langkah pertama yang harus dilakukan untuk dapat menyisipkan watermark ke dalamnya. Dekomposisi citra digital ini dilakukan dengan menggunakan Discrete Wavelet Transform(DWT), proses yang perlu dijalankan untuk mendekomposisi citra adalah sbb: 1. Dekomposisi citra dengan Discrete Wavelet Transform (DWT) sehingga menghasilkan rentang frekuensi LL, LH,HL, dan HH. 2. Dekomposisi citra digital satu tingkat sehingga menghasilkan LL1, LH1, HL1, dan HH1.
29
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.3.1. Alur Proses Penyisipan Penyisipan watermark dilakukan cara memodifikasi koefisien pada rentang frekuensi LL, LH, HL atau HH yang merupakan rentang frekuensi hasil dekomposisi citra yang dilakukan dengan Discrete Wavelet Transform (DWT). Data watermark ini dapat serangkaian bilangan w dengan panjang L yang disisipkan pada koefisien rentang frekuensi yang di pilih ( f ). 𝑓 ′ = 𝑓 + 𝛼. 𝑤(𝑘) dimana,
𝑘 = 1, … , 𝐿
f koefisien sinyal asal f’ koefisien sinyal asal yang sudah dimodifikasi α konstanta untuk menentukan kekuatan penyisipan watermark
Penyisipan citra watermark diawali dengan mengubah susunan citra watermark ke dalam rangkaian matriks. Selanjutnya penyisipan watermark dilakukan dengan langkah-langkah sbb: 1. Dekomposisi citra host dan citra watermark 1 level DWT. 2. Mencari koefisien terbesar f LL citra host dan mencari koefisien terbesar f LL citra watermark dari rentang frekuensi LL hasil dekomposisi 3. Memodifikasi f LL citra host dengan menggunakan f LL citra watermark. Koefisian baru dari f LL host = f LL host + (α * f LL watermark) 4. Menjalankan Inverse Discrete Wavelet Transform (IDWT) untuk membentuk citra ber-watermark.
30
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.4.
Ekstraksi Watermark Ekstraksi watermark (extract) dilakukan menggunakan citra asal atau citra
host. Pendeteksian ada tidaknya watermark dalam citra dilakukan dengan menggunakan pembandingan koefisien yang bersesuaian pada citra ber-watermark dengan nilai ambang. Jika koefisien dari rentang frekuensi yang berkorelasi lebih besar daripada nilai ambang maka watermark terdeteksi di dalam citra.
3.4.1. Alur Proses Ekstraksi Secara umum proses ekstraksi watermark ini merupakan kebalikan dari proses penyisipan watermark yang telah dijelaskan sebelumnya. 1. Dekomposisi citra ber-watermark dan citra watermark 1 level DWT. 2. Mencari koefisien terbesar f LL citra ber-watermark dan mencari koefisien terbesar fLL citra watermark dari rentang frekuensi LL hasil dekomposisi 3. Memodifikasi f LL citra ber-watermark dengan menggunakan f LL citra watermark. Koefisian baru dari f LL citra ber-watermark =(fLLwatermak - fLLhost)/ α 4. Menjalankan Inverse Discrete Wavelet Transform (IDWT) untuk membentuk citra watermark.
31
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4. BAB IV IMPLEMENTASI
4.1.
Representasi Data Dalam Matlab Citra digital harus direpresentasikan dalam bentuk matriks agar dapat
dilakukan proses dekomposisi. Untuk itu, digunakan salah satu fungsi dari Matlab Image File Operation yaitu [...]=imread(filename)
Gambar 4.1 Representasi citra1.jpg dalam Matlab
Gambar 4.2 Representasi watermark1.jpg dalam Matlab 32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Untuk dapat memilih file citra digital yang akan digunakan dalam proses watermarking (embed) dan proses ekstraksi watermark (extract), fungsi Matlab tersebut dipergunakan dalam WatermarkGUI.m (lampiran 1) dan ExtractGUI.m (lampiran 2) sebagai akses dari tombol browse yang terdapat dalam Graphical User Interface (GUI) perangkat lunak. Citra digital yang dimasukkan dirubah kedalam ukuran resolusi 2480 x 3508 yang merupakan ukuran standard kertas A4. Potongan coding fungsi browse untuk proses input citra oleh user: function browse1_Callback(hObject, eventdata, handles) global filename pathname; [filename,pathname]=uigetfile('*.jpg;*.jpeg','Choose Image : '); if isequal(filename,0) || isequal(pathname,0) return; else browse1 = imread([pathname,filename]); host = imresize(browse1, [2480 3508]); %standart A4 untuk resolusi cetak end imshow(host,'Parent',handles.image1); (Lampiran 1)
Sebelum dilakukan proses penyisipan, citra host dan citra watermark harus dimasukkan kedalam perangkat lunak. Sedangkan sebelum proses ekstraksi, citra host, citra watermark dan citra ber-wartermark harus dimasukkan kedalam perangkat lunak.
(a)
(b)
(c)
Gambar 4.3 (a) insert citra host, (b) insert citra watermark, (c) insert citra berwatermark
33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.2.
Alur Proses Penyisipan ( embed ) 1. Dekomposisi citra host dan citra watermark. Dekomposisi citra digital dilakukan dengan menggunakan fungsi dwt2D_1level() yang ada pada dwt2D_1level.m (lampiran 3). dwt2D_1level.m merupakan adaptasi dan modifikasi dari fungsi Wavelet Toolbox dari Matlab Image Processing Toolbox, dengan menggunakan wavelet haar. Hasil dekomposisi dapat dilihat pada gambar 4.4. Potongan coding dekomposisi pada Matlab: [h_LL,h_LH,h_HL,h_HH]=dwt2D_1level(rgbimage,'haar'); dec2d = [ h_LL, h_LH; h_HL, h_HH ]; dec2d=uint8(dec2d); (lampiran
(a)
1)
(b)
Gambar 4.4 (a) Hasil dekomposisi citra host, (b) Hasil dekomposisi citra watermark
2. Mencari koefisien fLL dari citra host. Karena proses dekomposisi hanya dilakukan dalam satu tingkat, sehingga koefisien fLL dari citra host hanya ada satu koefisien saja. Sehingga
proses
penyisipan
watermark
dilakukan
dengan
memodifikasi koefisien ini.
34
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3. Memodifikasi fLL citra host menggunakan fLL citra watermark. Modifikasi yang dilakukan pada fLL citra host akan menjadi koefisien fLL baru yang akan digunakan dalam proses rekonstruksi. Modifikasi yang dilakukan adalah dengan menambahkan koefisien fLL citra host dengan koefisien fLL citra citra watermark yang sudah dikalikan dengan suatu nilai konstanta (α). Varian nilai konstanta (α) yang digunakan menjadi bahan percobaan yang dilakukan pada bab V. newhost_LL = h_LL + (0.001*w_LL)
(Lampiran 1)
4. Merekonstruksi citra Proses rekonstruksi citra dilakukan dengan menggunakan
fungsi
idwt2D_1level() yang ada pada idwt2D_1level.m (lampiran 4). idwt2D_1level.m merupakan adaptasi dan modifikasi dari fungsi Wavelet Toolbox dari Matlab Image Processing Toolbox, dengan menggunakan wavelet haar. Hasil rekonstruksi dapat dilihat pada gambar 4.5. Potongan coding rekonstruksi citra pada Matlab: rgb2=idwt2D_1level(newhost_LL,h_LH,h_HL,h_HH,'haar'); rgb2=uint8(rgb2); imshow(rgb2,'Parent',handles.watermarking); title(handles.watermarking,'Citra Digital yang sudah diberi watermark'); (Lampiran
1)
Gambar 4.5. Rekonstruksi dengan IDWT menghasilkan citra ber-watermark
35
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.3.
Alur Proses Ekstraksi ( extract ) 1. Dekomposisi citra host, citra watermark dan citra ber-watermark Dekomposisi citra digital dilakukan dengan menggunakan fungsi dwt2D_1level() yang ada pada dwt2D_1level.m (lampiran 3). dwt2D_1level.m merupakan adaptasi dan modifikasi dari fungsi Wavelet Toolbox dari Matlab Image Processing Toolbox, dengan menggunakan wavelet haar. Hasil dekomposisi dapat dilihat pada gambar 4.6. Potongan coding dekomposisi pada Matlab: [h_LL,h_LH,h_HL,h_HH]=dwt2D_1level(rgbimage,'haar'); dec2d = [ h_LL, h_LH; h_HL, h_HH ]; dec2d=uint8(dec2d); (lampiran
(a)
1)
(b)
(c) Gambar 4.6 (a) Hasil dekomposisi citra host, (b) Hasil dekomposisi citra watermark, (c) Hasil dekomposisi citra ber-watermark. 36
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2. Mencari koefisien fLL dari citra ber-watermark. Karena proses dekomposisi hanya dilakukan dalam satu tingkat, sehingga koefisien fLL dari citra ber-watermark hanya ada satu koefisien saja. Sehingga proses ekstraksi watermark dilakukan dengan memodifikasi koefisien ini. 3. Memodifikasi fLL citra ber-watermark menggunakan fLL citra watermark dan fLL citra host. Modifikasi yang dilakukan pada fLL citra ber-watermark akan menjadi koefisien fLL watermark hasil ekstraksi yang akan digunakan dalam proses rekonstruksi. Modifikasi yang dilakukan adalah dengan mengurangkan koefisien fLL citra host dengan koefisien fLL citra watermark kemudian dibagi dengan suatu nilai konstanta (α). Varian nilai konstanta (α) yang digunakan menjadi bahan percobaan yang dilakukan pada bab V. newwatermark_LL=(wm_LL-h_LL)/0.001;
(Lampiran 2)
4. Merekonstruksi citra Proses rekonstruksi citra dilakukan dengan menggunakan
fungsi
idwt2D_1level() yang ada pada idwt2D_1level.m (lampiran 4). idwt2D_1level.m merupakan adaptasi dan modifikasi dari fungsi Wavelet Toolbox dari Matlab Image Processing Toolbox, dengan menggunakan wavelet haar. Kemudian citra hasil rekonstruksi ditampilkam dalam Graphical User Interface perangkat lunak. Hasil rekonstruksi dapat dilihat pada gambar 4.7.
37
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
rgb2=idwt2D_1level(newhost_LL,h_LH,h_HL,h_HH,'haar'); rgb2=uint8(rgb2); imshow(rgb2,'Parent',handles.watermarking); title(handles.watermarking,'Citra Digital yang sudah diberi watermark'); (Lampiran
2)
Gambar 4.7. Rekonstruksi dengan IDWT menghasilkan citra watermark hasil ekstraksi. 4.4.
Hitung PSNR dan SSIM Proses menghitung PSNR dan SSIM dilakukan dengan membandingkan
piksel dari citra host dan citra ber-watermark yang merupakan hasil dari proses watermarking.
4.4.1
Hitung PSNR
Penghitungan nilai PSNR dari citra ber-watermark dilakukan dengan cara mencari MSE. Coding fungsi MSE dan PSNR pada Matlab : function [ out ] = MSE( pic1,pic2 ) %Mean Squared Error [m, n]=size(pic1); for i=1:m for j=1:n e=e+double((pic1(i,j)-pic2(i,j))^2); end end out=e/(m*n); end
38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
function [ out ] = PSNR( pic1,pic2 )%Peak Signal to-NoiseRatio e=MSE(pic1,pic2); out=20*log10(255/sqrt(e)); end (Lampiran 5)
4.4.2. Hitung SSIM (Structural Similiarity) Penghitungan nilai SSIM menggunakan fungsi SSIM() yang ada pada SSIM.m (Lampiran 6). Hasil output hitung PSNR dan SSIM dapat dilihat pada gambar 4.8. Source code dari SSIM.m bersumber dari https://ece.uwaterloo.ca/~z70wang/research/ssim/ dan dipublikasikan pada Journal IEEE Transactions on Image Processing, vol. 13, no. 4, pp. 600-612 oleh Z. Oleh Wang, A. C. Bovik, H. R. Sheikh dan E. P. Simoncelli tahun 2004. Potongan coding hitung SSIM pada Matlab: img1 = imread('citra_asal.jpg'); imgrez1 = imresize(img1,[3410 2473]); img2 = imread('hasil1_mark2.jpg'); imgrez2 = imresize(img2,[3410 2473]); A = rgb2gray(imgrez1); B = rgb2gray(imgrez2); [mssim, ssim_map] = SSIM(A, B); [ out ] = PSNR(A,B); fprintf('The SSIM value is %0.4f.\n',mssim); fprintf('The PSNR value is %0.4f.\n',out);
(Lampiran 7)
Gambar 4.8. Hasil perhitungan PSNR dan SSIM
39
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.5.
Penambahan Standart Malicious Attack pada citra ber-watermark Seluruh proses modifikasi citra ber-watermark menggunakan fungsi-fungsi
yang sudah disediakan oleh Matlab. Potongan oding dari fungsi-fungsi yang digunakan : %add noise salt and pepper 10% (mean=0, variance=0.1) B = imnoise(A,'salt & pepper',0.1); %add noise gaussian 10% (mean=0 , variance = 0.1) C = imnoise(A,'gaussian',0.1); %blur radius 10 pixel blur10 = fspecial('disk',10); D = imfilter(A,blur10,'replicate'); %blur radius 5 pixel blur5 = fspecial('disk',5); E = imfilter(A,blur5,'replicate'); %rotate 5 derajat F = imrotate(A,5); % imshow(F); %rotate 90 derajat G = imrotate(A,90); %contrast adjust RGB high_out = 0.9 H= imadjust(A,[0 0 0; 0.9 0.9 0.9],[]); %Scaling up 20% I1 = imresize(A, 1.2); %Scaling down 20% I2 = imresize(A, 0.8); (Lampiran
8)
40
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5.
BAB V
HASIL DAN PEMBAHASAN 5.1. Kerja Perangkat Lunak Kerja perangkat lunak memiliki 2 fungsi utama yaitu: 1. Penyisipan watermark (embed) : menghasilkan citra ber-watermark, dapat dilihat pada gambar 5.1. 2. Ekstraksi watermark (extract)
: menghasilkan citra watermark dari
proses ekstraksi citra ber-watermak, dapat dilihat pada gambar 5.2.
Gambar 5.1 Penyisipan watermark (embed)
Gambar 5.2 Ekstraksi watermark (extract)
41
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5.2. Hasil Pengujian Citra digital yang digunakan sebagai media penyisipan watermark ditampilkan pada Tabel 5.1, sedangkan untuk citra watermark ditampilkan pada Tabel 5.2. Tabel 5.1 File citra asal (host) Nama file
Citra1.jpg
Ukuran Citra
Citra
3410 x 2473 pixel
Tabel 5.2 File citra watermark Nama file
watermark1.jpg
Ukuran Citra
Citra
2000 x 1500 pixel
42
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
watermark2.jpg
2000 x 1500 pixel
5.2.1. Hasil Pengujian Citra Ber-watermark Hasil pengujian menggunakan 2 varian citra watermark yang berbeda dengan menggunakan varian konstanta (α) yang menentukan kekuatan penyisipan watermark. Konstanta (α) yang digunakan dalam proses embed adalah 0.1 dan 0.01, Hasil dari proses embed menghasilkan citra baru (citra ber-watermark) yang tidak berbeda jauh dengan citra asal (host) yang ditampilkan pada Tabel 5.3. dan Tabel 5.4. Hal ini dibuktikan dengan nilai PSNR dari citra ber-watermark lebih dari 40db yang mengindikasikan bahwa kualitas citra ber-watermark tinggi (Cheddad, Curran dan Kevitt 2010). Hal ini juga diperkuat dengan nilai SSIM (Structural Similiarity) yang lebih dari 0,9 dimana ketika nilai SSIM adalah 1 maka mengindikasikan bahwa citra yang dibandingkan adalah citra yang sama (Wang, Bovik, Sheikh dan Simoncelli, 2004: 600-612).
43
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 5.3 Tabel hasil watermarking dengan watermark1.jpg
No
1.
2.
Konstanta embed (α)
Citra host
Nilai PSNR dan SSIM
Hasil watermarking
α = 0.1
PSNR = 53,29 SSIM = 0,936
α = 0.01
PSNR = 48,43 SSIM = 0,949
Tabel 5.4 Tabel hasil watermarking dengan watermark2.jpg
No
1.
2.
Konstanta embed (α)
Citra host
Hasil watermarking
Nilai PSNR dan SSIM
α = 0.1
PSNR = 50,23 SSIM = 0,917
α = 0.01
PSNR = 48,61 SSIM = 0,949
44
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5.2.2. Hasil Pengujian Ekstraksi dari Citra Ber-watermark Pengujian ekstraksi citra ber-watermark ini dilakukan dengan menggunakan beberapa varian konstanta (α) dalam proses extract. Varian konstanta (α) yang digunakan dalam proses extract adalah 0.01, 0.1, 1 dan 10. Proses extract dilakukan pada citra ber-watermark, dimana citra ber-watermark tersebut dihasilkan dari proses embed yang menggunakan konstanta (α) 0.01 dan 0.1 . Dari hasil pengujian ini membuktikan bahwa semakin besar nilai konstanta (α) dalam proses extract maka hasil ekstraksi watermark yang didapat akan semakin terlihat jelas secara Human Visual System (HVS). Hal ini ditunjukan pada Tabel 5.5 untuk ekstraksi dari citra ber-watermark yang didapat dari proses embed dengan konstanta (α) 0,1 dan pada Tabel 5.6 untuk ekstraksi dari citra ber-watermark yang didapat dari proses embed dengan konstanta (α) 0,01.
45
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 5.5 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.1
No
Hasil embed α = 0.1
extract α = 0.01
extract α = 0.1
extract α = 1
extract α = 10
1.
2.
46
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 5.6 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.01
No
Hasil embed α = 0.01
extract α = 0.01
extract α = 0.1
extract α = 1
extract α = 10
1.
2.
47
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5.2.3. Hasil Pengujian Ketahanan Perangkat Lunak Pengujian Ketahanan Perangkat Lunak ini dilakukan dengan memberikan modifikasi
terhadap citra ber-watermark (Attack). Standart Attack yang
digunakan meliputi modifikasi atau perubahan terhadap citra digital yang sering dilakukan baik secara sengaja maupun tidak sengaja. Standart Attack yang digunakan : 1.
Radian blurring 5 pixel
: memberikan efek blur
2.
Radian blurring 10 pixel
: memberikan efek blur
3.
Add Contrast
: menambah nilai contrast highout 0.9
4.
Croping
: memotong bagian atas citra 100 pixel
5.
Centered Croping
: mengambil bagian tengah citra 30%
6.
Add Gausian Noise
: menambah noise(median =0, varian =0.1)
7.
Add Salt and Pepper Noise : menambah noise(median =0, varian =0.1)
8.
Left Rotate 5º
: memutar citra ke kiri sebesar 5º
9.
Left Rotate 90º
: memutar citra ke kiri sebesar 90º
10. Scaling down20%
: memperkecil citra sebesar 20 %
11. Scaling up 20 %
: memperbesar citra sebesar 20%
Dari pengujian ini didapati bahwa perangkat lunak yang dibangun ini tahan Standart Attack, hal ini dibuktikan dengan hasil ekstraksi watermark dari citra berwatermark yang telah diberi Standart Attack masih dapat dikenali secara Human Visual System (HVS) oleh penulis. Hasil pengujian ini dapat dilihat pada Tabel 5.7 hingga Tabel 5.10
48
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 5.7 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.1 yang sudah dikenai Standart Attack (watermark1.jpg) No
1.
2.
3.
Jenis Serangan
Hasil Serangan
extract α = 0.01
extract α = 0.1
extract α = 1
extract α = 10
Radian blur 5 pixel
Radian blur 10 pixel
Contrast highout 0.9
49
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.
Crop top 100 pixel
5.
Centered crop 30%
6.
Gaussian noise m=0 v=0.1
7.
Salt and Pepper noise m=0 v=0.1
50
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8.
Rotate 5º
9.
Rotate 90º
10.
Scale down 20%
51
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11.
Scale up 20%
52
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 5.8 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.01 yang sudah dikenai Standart Attack (watermark1.jpg) No
1.
2.
3.
Jenis Serangan
Hasil Serangan
extract α = 0.01
extract α = 0.1
extract α = 1
extract α = 10
Radian blur 5 pixel
Radian blur 10 pixel
Contrast highout 0.9
53
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.
Crop top 100 pixel
5.
Centered crop 30%
6.
Gaussian noise m=0 v=0.1
7.
Salt and Pepper noise m=0 v=0.1
54
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8.
Rotate 5º
9.
Rotate 90º
10.
Scale down 20%
55
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11.
Scale up 20%
56
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 5.9 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.1 yang sudah dikenai Standart Attack (watermark2.jpg) No
1.
2.
3.
Jenis Serangan
Hasil Serangan
extract α = 0.01
extract α = 0.1
extract α = 1
extract α = 10
Radian blur 5 pixel
Radian blur 10 pixel
Contrast highout 0.9
57
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.
Crop top 100 pixel
5.
Centered crop 30%
6.
Gaussian noise m=0 v=0.1
7.
Salt and Pepper noise m=0 v=0.1
58
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8.
Rotate 5º
9.
Rotate 90º
10.
Scale down 20%
59
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11.
Scale up 20%
60
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 5.10 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.01 yang sudah dikenai Standart Attack (watermark2.jpg) No
1.
2.
3.
Jenis Serangan
Hasil Serangan
extract α = 0.01
extract α = 0.1
extract α = 1
extract α = 10
Radian blur 5 pixel
Radian blur 10 pixel
Contrast highout 0.9
61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.
Crop top 100 pixel
5.
Centered crop 30%
6.
Gaussian noise m=0 v=0.1
7.
Salt and Pepper noise m=0 v=0.1
62
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8.
Rotate 5º
9.
Rotate 90º
10.
Scale down 20%
63
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11.
Scale up 20%
64
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 5.11 Tabel pengenalan informasi watermark hasil extract α =10 dari citra ber-watermark embed α =0.01 (proses watermarking yang menghasilkan watermark yang tidak kasat mata) yang dikenai Standart Attack variasi pemilihan citra watermark
No
1.
2.
3.
Jenis Serangan
Radian blur 5 pixel
watermark1.jpg
watermark dikenali?
Ya
Pengenalan informasi watermark secara HVS
Dikenali dengan baik
watermark2.jpg
watermark dikenali?
Ya
Radian blur 10 pixel
Ya
Dikenali dengan baik
Ya
Contrast highout 0.9
Ya
Dikenali dengan baik
Ya
Pengenalan informasi watermark secara HVS
Dikenali dengan baik
Tidak dikenali dengan baik
Dikenali dengan baik
65
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.
Crop top 100 pixel
5.
Centered crop 30%
6.
Gaussian noise m=0 v=0.1
7.
Salt and Pepper noise m=0 v=0.1
Ya
Ya
Ya
Ya
Dikenali dengan baik
Tidak dikenali dengan baik
Dikenali dengan baik
Dikenali dengan baik
Tidak
Tidak dikenali sama sekali
Ya
Tidak dikenali dengan baik
Ya
Tidak dikenali dengan baik
Ya
Tidak dikenali dengan baik
66
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Ya
Tidak dikenali dengan baik
Tidak
Tidak dikenali sama sekali
Ya
Tidak dikenali dengan baik
Tidak
Tidak dikenali sama sekali
Scale down 20%
Ya
Dikenali dengan baik
Ya
Tidak dikenali dengan baik
Scale up 20%
Ya
Dikenali dengan baik
Ya
Tidak dikenali dengan baik
8.
Rotate 5º
9.
Rotate 90º
10.
11.
67
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Dari Tabel 5.11. didapati bahwa berdasarkan pengenalan informasi dari watermark hasil extract citra ber-watermark yang sudah dikenai standard attack menunjukkan pada penggunaan watermark1.jpg tahan terhadap : Radian blurring 5 pixel, Radian blurring 10 pixel, Add Contrast, Croping top 100 pixel, Add Gausian Noise, Add Salt and Pepper Noise, Scaling down20% dan Scaling up 20 %. Sedangkan penggunaan watermark2.jpg hanya tahan terhadap Radian blurring 5 pixel dan Add Contrast
saja. Hal ini didasarkan pada pengenalan informasi
watermark yang dikenali dengan baik. Tabel 5.11. juga menunjukkan penggunaan konstanta embed α = 0.01 tidak tahan terhadap standard attack berupa Centered crop 30%, Left Rotate 5º, Left Rotate 90º karena informasi dari watermark hasil extract tidak dapat dikenali dengan baik meskipun watermark itu sendiri dapat dikenali secara HVS.
68
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5.2.4. Hasil Pengujian Perangkat Lunak Mengenali Citra yang Tidak Ber-watermark Pengujian ini dilakukan untuk mengetahui kemampuan perangkat lunak dalam mengenali citra digital yang tidak ber-watermark. Pengujian dilakukan dengan melakukan proses ekstraksi terhadap citra yang tidak disisipi dengan watermark. Pengujian ini menunjukkan bahwa hasil ekstraksi watermark dari citra digital yang tidak ber-watermark akan menghasilkan watermark yang sama dan dapat dikenali secara Human Visual System (HVS) apabila citra tidak berwatermark yang diekstrak adalah sama dengan citra asal, hal ini dapat dilihat pada Tabel 5.12. Tetapi watermark yang dihasilkan dari ekstraksi dimana citra yang akan dikenali berbeda dengan citra asal, maka watermark tidak dapat dikenali, hal ini dapat dilihat pada Tabel 5.13. Tabel 5.12 Tabel extract untuk citra digital tidak ber-watermark (citra yang akan dikenali adalah citra asal) No.
Citra Asal
Citra1 1.
.jpg
Citra yang akan dikenali
Hasil Ekstraksi Citra dengan watermark1.jpg
Hasil Ekstraksi Citra dengan watermark2.jpg
watermak dikenali?
Ya
Citra2 2.
.jpg
Ya
Citra3 3.
.jpg
Ya
69
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Citra4 4.
Ya
.jpg
Citra5 5.
Ya
.jpg
Tabel 5.13 Tabel extract untuk citra digital tidak ber-watermark (citra yang akan dikenali berbeda dengan citra asal). Citra asal yang digunakan Citra1.jpg No.
Citra Asal
Citra1 1.
.jpg
Citra yang akan dikenali
Hasil Ekstraksi Citra dengan watermark1.jpg
Hasil Ekstraksi Citra dengan watermark2.jpg
watermak dikenali?
Tidak
Citra1 2.
.jpg
Tidak
Citra1 3.
.jpg
Tidak
Citra1 4.
.jpg
Tidak
70
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6. BAB VI KESIMPULAN DAN SARAN
6.1. Kesimpulan Berdasarkan uraian yang sudah dijelaskan pada skripsi ini dengan menganalisa hasil kerja perangkat lunak yang mengimplementasikan metode Discrete Wavelet Transform (DWT), maka dapat diambil kesimpulan sebagai berikut: 1. Penyisipan citra watermark ke dalam citra asal (host) menggunakan metode Discrete Wavelet Transform (DWT) adalah dengan menyisipkan citra watermark ke dalam koefisien citra asal (host). Dekomposisi citra digital menggunakan metode Discrete Wavelet Transform (DWT) dilakukan dengan mengambil koefisien wavelet dari citra digital tersebut, koefisien tersebut juga digunakan untuk dapat merekonstruksi citra kembali menggunakan Inverse Discrete Wavelet Transform (IDWT) 2. Untuk dapat menghasilkan citra dokumen digital dengan fidelity yang baik, maka pemilihan konstanta (α) = 0.01 pada proses embed adalah yang terbaik menurut penulis karena pada citra ber-watermark, watermark yang disisipkan tidak dapat dilihat (tidak kasat mata) secara Human Division System (HVS) oleh penulis serta memiliki nilai PSNR 48.43 dan SSIM 0.949. Untuk mendapatkan watermark yang dapat dikenali oleh penulis, konstanta (α) = 1 atau 10 pada proses extract adalah yang terbaik.
71
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3. Dari hasil percobaan yang dilakukan, menunjukkan bahwa teknik watermarking dengan menggunakan Discrete Wavelet Transform (DWT) memiliki ketahanan (robustness) yang cukup baik karena citra watermark yang dari proses extract citra ber-watermark yang sudah mengalami malicious attack: blurring, croping, contrasting, add noise, rotate dan scaling, dapat dikenali secara Human Division System (HVS) oleh penulis.
6.2. Saran Beberapa saran untuk pengembangan antara lain: 1. Wavelet yang digunakan dalam penerapan Teknik Watermarking Metode Discrete Wavelet Transform (DWT) ini adalah wavelet Haar, untuk pengembangan selanjutnya dapat diuji coba dengan menggunakan wavelet yang lain seperti Daubechies, Meyer dan Morlet. 2. Dekomposisi yang digunakan dalam Teknik Watermarking Metode Discrete Wavelet Transform (DWT) ini hanya menggunakan transformasi 1 level, untuk pengembangan selanjutnya dapat dicoba dengan 2 level atau n level. 3. Pengujian ketahanan terhadap malicious attack hanya dilakukan dengan beberapa jenis standart attack saja, untuk pengembangan selanjutnya bisa diuji coba dengan variasi malicious attack lainnya seperti proses smoothing, clearing, sharpening dan compression.
72
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4. Citra dokumen digital yang digunakan hanya citra dokumen dengan format Joint Potographics Expert berekstensi .jpg/.jpeg saja, untuk pengembangan selanjutnya bisa menggunakan format citra yang lain seperti .bmp, .gif, .png, dan .tiff.
73
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA
Alfatwa , Dean Fathony (2003). Watermarking Pada Citra Digital Menggunakan Discrete Wavelete Transform. Skripsi. Teknologi Bandung. Bandung. Al-khassaweneh, Mahmood and Selin Aviyente. (2008). Image Watermarking Based on Wavelet Hard Thresholding. European Signal Processing Conference, EUSIPCO. Vol. 13, pp. 277-280. Cheddad, A., Condell, J., Curran, K., Kevitt, P.Mc., (2010). Digital Image Steganography: Survey and Analysis of Current Methods. Northern Ireland, UK. Elsevier. Edi S. Mulyanta (2006). Dari Teori Hingga Praktik : Pengolahan Digital Image dengan Photoshop CS2. Yogyakarta : Andi Offset. Hameed, Kamran, Adeel Mumtaz, and S.A.M. Gilani. (2008). Digital Image Watermarking in the Wavelet Transform Domain. Proceedings of World Academy of Science, Engineering and Technology, Vol. 13. Hendrawan, Shanty Meliani (2003). Robust and Non Blind Watermarking pada Citra Digital dengan Teknik Spread Spectrum. Skripsi. Institut Teknologi Bandung. Bandung. Kutter, Martin; Fabien A. P. Petitcolas (1999). A Fair Benchmark for Image Watermarking Systems. Proceedings of Electronic Imaging ’99, Security and Watermarking of Multimedia Contents, vol. 3657, pp. 226–239, San Jose, California, U.S.A., 25–27 January 1999. Lu, Chun-Shien (2005) Multimedia Security : Steganography and Digital Watermarking Techniques for Protection of Intellectual Property. Thesis. Institute of Information Science Academia Sinica. Taiwan.
74
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Paulus, S. Si, M. Kom, Erick. dan Yessica Nataliani, S. Si, M. Kom. (2007). GUI Matlab. Yogyakarta : Andi Offset. Sirait, Rummi (2008). Teknologi Watermarking Pada Citra Digital. Thesis. Program Pascasarjana. Universitas Indonesia. Jakarta. Terzija, Nataša (2006). Robust Digital Image Watermarking Algorithms for Copyright Protection. Thesis. Universität Duisburg-Essen. Jerman. Wijaya, Marvin Ch dan Agus Prijono. (2007). Pengolahan Citra Digital Menggunakan Matlab. Bandung : Informatika Bandung. Z. Wang, A. C. Bovik, H. R. Sheikh and E. P. Simoncelli (2004). Image quality assessment: From error visibility to structural similarity. Journal IEEE Transactions on Image Processing, vol. 13, no. 4, pp. 600-612.
75
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Lampiran Lampiran 1 WatermarkingGUI.m function varargout = WatermarkingGUI(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @WatermarkingGUI_OpeningFcn, ... 'gui_OutputFcn', @WatermarkingGUI_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before WatermarkingGUI is made visible. function WatermarkingGUI_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to WatermarkingGUI (see VARARGIN) % Choose default command line output for WatermarkingGUI handles.output = hObject; % Update handles structure guidata(hObject, handles); usd=imread('logo_usd.jpg'); host=imread('host.jpg'); mark=imread('watermark.jpg'); proses=imread('proses.jpg'); imshow(usd,'Parent',handles.logo); imshow(host,'Parent',handles.image1); imshow(mark,'Parent',handles.image2); imshow(proses,'Parent',handles.watermarking);
76
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% --- Outputs from this function are returned to the command line. function varargout = WatermarkingGUI_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in browse1. function browse1_Callback(hObject, eventdata, handles) global filename pathname; [filename,pathname]=uigetfile('*.jpg;*.jpeg','Choose Image : '); if isequal(filename,0) || isequal(pathname,0) return; else browse1 = imread([pathname,filename]); host = imresize(browse1, [2480 3508]); %standart A4 untuk resolusi cetak end imshow(host,'Parent',handles.image1); % --- Executes on button press in browse2. function browse2_Callback(hObject, eventdata, handles)
77
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
global filename1 pathname1; [filename1,pathname1]=uigetfile('*.jpg;*.jpeg','Choose Image : '); if isequal(filename1,0) || isequal(pathname1,0) return; else browse2 = imread([pathname1,filename1]); watermark = imresize(browse2, [2480 3508]); %standart A4 untuk resolusi cetak end imshow(watermark,'Parent',handles.image2);
% --- Executes on button press in proses. function proses_Callback(hObject, eventdata, handles) global filename pathname; global filename1 pathname1; read=imread([pathname,filename]); rgbimage = imresize(read, [2480 3508]); %standart A4 untuk resolusi cetak imshow(rgbimage,'Parent',handles.watermarking); title(handles.watermarking,'Citra Digital Asli'); pause(0.5); [h_LL,h_LH,h_HL,h_HH]=dwt2D_1level(rgbimage,'haar'); dec2d = [ h_LL, h_LH; h_HL, h_HH ]; dec2d=uint8(dec2d); imshow(dec2d,'Parent',handles.watermarking); title(handles.watermarking,'dwt2D_1level dari Citra Digital Asli'); pause(0.5); %watermark read1=imread([pathname1,filename1]); rgbimage1 = imresize(read1, [2480 3508]); %standart A4 untuk resolusi cetak imshow(rgbimage1,'Parent',handles.watermarking); title(handles.watermarking,'Watermark'); pause(0.5); [w_LL,w_LH,w_HL,w_HH]=dwt2D_1level(rgbimage1,'haar'); dec2d = [ w_LL, w_LH; w_HL, w_HH ]; dec2d=uint8(dec2d); imshow(dec2d,'Parent',handles.watermarking); title(handles.watermarking,'dwt2D_1level dari Watermark'); pause(0.5); %watermarking newhost_LL = h_LL + (0.001*w_LL); %output rgb2=idwt2D_1level(newhost_LL,h_LH,h_HL,h_HH,'haar'); rgb2=uint8(rgb2); imshow(rgb2,'Parent',handles.watermarking);
78
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
title(handles.watermarking,'Citra Digital yang sudah diberi watermark'); % --- Executes on button press in save. function save_Callback(hObject, eventdata, handles) img = getimage(handles.watermarking); [FileName, PathName] = uiputfile('*.jpg', 'Save As'); if PathName==0, return; end Name = fullfile(PathName,FileName); imwrite(img, Name, 'jpg');
Lampiran 2 ExtractGUI.m function varargout = ExtractGUI(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @ExtractGUI_OpeningFcn, ... 'gui_OutputFcn', @ExtractGUI_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before ExtractGUI is made visible. function ExtractGUI_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to ExtractGUI (see VARARGIN) % Choose default command line output for ExtractGUI handles.output = hObject; % Update handles structure guidata(hObject, handles); usd=imread('logo_usd.jpg'); host=imread('host.jpg'); mark=imread('watermark.jpg'); marked=imread('watermarked.jpg'); imshow(usd,'Parent',handles.logo); imshow(host,'Parent',handles.image1); imshow(mark,'Parent',handles.image2); imshow(marked,'Parent',handles.image3);
79
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% --- Outputs from this function are returned to the command line. function varargout = ExtractGUI_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in browse1. function browse1_Callback(hObject, eventdata, handles) global filename pathname; [filename,pathname]=uigetfile('*.jpg;*.jpeg','Choose Image : '); if isequal(filename,0) || isequal(pathname,0) return; else browse1 = imread([pathname,filename]); host = imresize(browse1, [2480 3508]); %standart A4 untuk resolusi cetak end imshow(host,'Parent',handles.image1); % --- Executes on button press in browse2. function browse2_Callback(hObject, eventdata, handles) global filename1 pathname1; [filename1,pathname1]=uigetfile('*.jpg;*.jpeg','Choose Image : '); if isequal(filename1,0) || isequal(pathname1,0) return; else browse2 = imread([pathname1,filename1]); watermark = imresize(browse2, [2480 3508]); %standart A4 untuk resolusi cetak end imshow(watermark,'Parent',handles.image2); % --- Executes on button press in proses. function proses_Callback(hObject, eventdata, handles) global filename pathname; global filename1 pathname1; global filename2 pathname2; % rgbimage=imread('host.jpg'); read=imread([pathname,filename]); rgbimage = imresize(read, [2480 3508]); %standart A4 untuk resolusi cetak imshow(rgbimage,'Parent',handles.image3); title(handles.image3,'Citra Digital Asli'); pause(0.5) [h_LL,h_LH,h_HL,h_HH]=dwt2D_1level(rgbimage,'haar'); dec2d = [... h_LL, h_LH; ... h_HL, h_HH ... ]; dec2d=uint8(dec2d); imshow(dec2d,'Parent',handles.image3); title(handles.image3,'dwt2D_1level dari Citra Digital Asli');
80
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
pause(0.5); %watermark read1=imread([pathname1,filename1]); rgbimage1 = imresize(read1, [2480 3508]); %standart A4 untuk resolusi cetak imshow(rgbimage1,'Parent',handles.image3); title(handles.image3,'Watermark'); pause (0.5); [w_LL,w_LH,w_HL,w_HH]=dwt2(rgbimage1,'haar'); dec2d = [ w_LL, w_LH; w_HL, w_HH ]; dec2d=uint8(dec2d); imshow(dec2d,'Parent',handles.image3); title(handles.image3,'dwt2D_1level dari Watermark'); pause(0.5); %watermarked read2=imread([pathname2,filename2]); rgbimage3 = imresize(read2, [2480 3508]); %standart A4 untuk resolusi cetak imshow(rgbimage3,'Parent',handles.image3); title(handles.image3,'Citra Digital yang sudah diberi watermark'); pause(0.5); [wm_LL,wm_LH,wm_HL,wm_HH]=dwt2(rgbimage3,'haar'); dec2 = [ wm_LL, wm_LH; wm_HL, wm_HH ]; dec2=uint8(dec2); imshow(dec2,'Parent',handles.image3); title(handles.image3,'dwt2D_1level dari Citra Digital yang sudah diberi watermark'); pause(0.5); %watermarking newwatermark_LL= (wm_LL-h_LL)/1; %output rgb2=idwt2D_1level(newwatermark_LL,w_LH,w_HL,w_HH,'haar'); gray = rgb2gray(rgb2); bw = im2bw(gray, 0.90); % inversrgb2 = imcomplement(bw); imshow(bw,'Parent',handles.image3); title(handles.image3,'Watermark yang sudah diekstrak'); function save_Callback(hObject, eventdata, handles) img = getimage(handles.image3); [FileName, PathName] = uiputfile('*.jpg', 'Save As'); if PathName==0, return; end Name = fullfile(PathName,FileName); imwrite(img, Name, 'jpg'); % --- Executes on button press in browse3. function browse3_Callback(hObject, eventdata, handles) global filename2 pathname2; [filename2,pathname2]=uigetfile('*.jpg;*.jpeg','Choose Image : '); if isequal(filename2,0) || isequal(pathname2,0) return;
81
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
else browse3 = imread([pathname2,filename2]); marked = imresize(browse3, [2480 3508]); %standart A4 untuk resolusi cetak end imshow(marked,'Parent',handles.image3);
Lampiran 3 dwt2D_1level.m function [a,h,v,d] = dwt2D_1level(x,varargin)%Variable length input argument list. nbIn = nargin; %%NARGIN Number of function input arguments. narginchk(2,7) if ischar(varargin{1}) [Lo_D,Hi_D] = wfilters(varargin{1},'d'); next = 2; else Lo_D = varargin{1}; Hi_D = varargin{2}; next = 3; end % cek argumen untuk Size, Shift and Extension. DWT_Attribute = getappdata(0,'DWT_Attribute'); if isempty(DWT_Attribute) , DWT_Attribute = dwtmode('get'); end dwtEXTM = DWT_Attribute.extMode; % Default: Extension. shift = DWT_Attribute.shift2D; % Default: Shift. for k = next:2:nbIn-1 switch varargin{k} case 'mode' , dwtEXTM = varargin{k+1}; case 'shift' , shift = mod(varargin{k+1},2); end end % Hitung size. lf = length(Lo_D); sx = size(x); % Extend, Decompose & Extract coefficients. first = 2-shift; flagPer = isequal(dwtEXTM,'per'); if ~flagPer sizeEXT = lf-1; last = sx+lf-1; else sizeEXT = lf/2; last = 2*ceil(sx/2); end x = double(x); if length(sx)==2 y = wextend('addcol',dwtEXTM,x,sizeEXT); z = conv2(y,Lo_D(:)','valid'); a = convdown(z,Lo_D,dwtEXTM,sizeEXT,first,last); h = convdown(z,Hi_D,dwtEXTM,sizeEXT,first,last); z = conv2(y,Hi_D(:)','valid');
82
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v = convdown(z,Lo_D,dwtEXTM,sizeEXT,first,last); d = convdown(z,Hi_D,dwtEXTM,sizeEXT,first,last); else a = h = v = d = for
end a = h = v = d =
cell(0,3); cell(0,3); cell(0,3); cell(0,3); k = 1:3 y = wextend('addcol',dwtEXTM,x(:,:,k),sizeEXT); z = conv2(y,Lo_D(:)','valid'); a{k} = convdown(z,Lo_D,dwtEXTM,sizeEXT,first,last); h{k} = convdown(z,Hi_D,dwtEXTM,sizeEXT,first,last); z = conv2(y,Hi_D(:)','valid'); v{k} = convdown(z,Lo_D,dwtEXTM,sizeEXT,first,last); d{k} = convdown(z,Hi_D,dwtEXTM,sizeEXT,first,last); cat(3,a{:}); cat(3,h{:}); cat(3,v{:}); cat(3,d{:});
end function y = convdown(x,F,dwtEXTM,lenEXT,first,last) y = x(:,first(2):2:last(2)); y = wextend('addrow',dwtEXTM,y,lenEXT); y = conv2(y',F(:)','valid'); y = y'; y = y(first(1):2:last(1),:); %-------------------------------------------------------%
Lampiran 4 idwt2D_1level.m function x = idwt2D_1level(a,h,v,d,varargin) narginchk(2,7) if isempty(a) && isempty(h) && isempty(v) && isempty(d), x = []; return; end if ischar(varargin{1}) [Lo_R,Hi_R] = wfilters(varargin{1},'r'); next = 2; else Lo_R = varargin{1}; Hi_R = varargin{2}; next = 3; end % Cek arguments untuk Size, Shift and Extension. DWT_Attribute = getappdata(0,'DWT_Attribute'); if isempty(DWT_Attribute) , DWT_Attribute = dwtmode('get'); end dwtEXTM = DWT_Attribute.extMode; % Default: Extension. shift = DWT_Attribute.shift2D; % Default: Shift. sx = []; k = next; while k<=length(varargin) if ischar(varargin{k}) switch varargin{k}
83
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
case 'mode' , dwtEXTM = varargin{k+1}; case 'shift' , shift = mod(varargin{k+1},2); end k = k+2; else sx = varargin{k}; k = k+1; end end x = upsconv2(a,{Lo_R,Lo_R},sx,dwtEXTM,shift)+ ... % Approximation. upsconv2(h,{Hi_R,Lo_R},sx,dwtEXTM,shift)+ ... % Horizontal Detail. upsconv2(v,{Lo_R,Hi_R},sx,dwtEXTM,shift)+ ... % Vertical Detail. upsconv2(d,{Hi_R,Hi_R},sx,dwtEXTM,shift); % Diagonal Detail.
Lampiran 5 PSNR.m function [ out ] = MSE( pic1,pic2 ) %Mean Squared Error [m, n]=size(pic1); for i=1:m for j=1:n e=e+double((pic1(i,j)-pic2(i,j))^2); end end out=e/(m*n); end function [ out ] = PSNR( pic1,pic2 ) %Peak Signal to-Noise Ratio e=MSE(pic1,pic2); out=20*log10(255/sqrt(e)); end
Lampiran 6 function [mssim, ssim_map] = SSIM(img1, img2, K, window, L) if (size(img1) ~= size(img2)) ssim_index = -Inf; ssim_map = -Inf; return; end [M N] = size(img1); if (nargin == 2) if ((M < 11) || (N < 11)) ssim_index = -Inf; ssim_map = -Inf; return end window = fspecial('gaussian', 11, 1.5);
%
84
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
K(1) = 0.01; settings K(2) = 0.03; L = 255; end
% default % %
C1 = (K(1)*L)^2; C2 = (K(2)*L)^2; window = window/sum(sum(window)); img1 = double(img1); img2 = double(img2); mu1 = filter2(window, img1, 'valid'); mu2 = filter2(window, img2, 'valid'); mu1_sq = mu1.*mu1; mu2_sq = mu2.*mu2; mu1_mu2 = mu1.*mu2; sigma1_sq = filter2(window, img1.*img1, 'valid') - mu1_sq; sigma2_sq = filter2(window, img2.*img2, 'valid') - mu2_sq; sigma12 = filter2(window, img1.*img2, 'valid') - mu1_mu2; if (C1 > 0 && C2 > 0) ssim_map = ((2*mu1_mu2 + C1).*(2*sigma12 + C2))./((mu1_sq + mu2_sq + C1).*(sigma1_sq + sigma2_sq + C2)); else numerator1 = 2*mu1_mu2 + C1; numerator2 = 2*sigma12 + C2; denominator1 = mu1_sq + mu2_sq + C1; denominator2 = sigma1_sq + sigma2_sq + C2; ssim_map = ones(size(mu1)); index = (denominator1.*denominator2 > 0); ssim_map(index) = (numerator1(index).*numerator2(index))./(denominator1(index).*deno minator2(index)); index = (denominator1 ~= 0) & (denominator2 == 0); ssim_map(index) = numerator1(index)./denominator1(index); end mssim = mean2(ssim_map); return img1=imread (image1); img2=imread (image2); [mssim ssim_map] = SSIM(img1, img2);
85
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Lampiran 7 PSNR_SSIM.m img1 = imread('citra_asal.jpg'); imgrez1 = imresize(img1,[3410 2473]); img2 = imread('hasil1_mark2.jpg'); imgrez2 = imresize(img2,[3410 2473]); A = rgb2gray(imgrez1); B = rgb2gray(imgrez2); [mssim, ssim_map] = SSIM(A, B); [ out ] = PSNR(A,B); fprintf('The SSIM value is %0.4f.\n',mssim); fprintf('The PSNR value is %0.4f.\n',out);
Lampiran 8 addAttack.m clear all; clc; close all; % A=imread('hasil1_mark1.jpg'); A=imread('hasil1_mark2.jpg'); %add noise salt and pepper 10% (mean=0, variance=0.1) B = imnoise(A,'salt & pepper',0.1); %add noise gaussian 10% (mean=0 , variance = 0.1) C = imnoise(A,'gaussian',0.1); %blur radius 10 pixel blur10 = fspecial('disk',10); D = imfilter(A,blur10,'replicate'); %blur radius 5 pixel blur5 = fspecial('disk',5); E = imfilter(A,blur5,'replicate'); %rotate 5 derajat F = imrotate(A,5); % imshow(F); %rotate 90 derajat G = imrotate(A,90); %contrast adjust RGB high_out = 0.9 H= imadjust(A,[0 0 0; 0.9 0.9 0.9],[]); %Scaling up 20% I1 = imresize(A, 1.2); %Scaling down 20% I2 = imresize(A, 0.8); % imwrite(B,'hasil1_mark1(noise_salt_pepper_10%).jpg','jpg'); % imwrite(C,'hasil1_mark1(nois_egaussian).jpg','jpg'); % imwrite(D,'hasil1_mark1(blur_10_pixel).jpg','jpg'); % imwrite(E,'hasil1_mark1(blur_5_pixel).jpg','jpg'); % imwrite(F,'hasil1_mark1(rotate_5_derajat).jpg','jpg'); % imwrite(G,'hasil1_mark1(rotate_90_derajat).jpg','jpg'); % imwrite(H,'hasil1_mark1(contrast_highout_0,9).jpg','jpg'); % imwrite(I1,'hasil1_mark1(scaling_up_20%).jpg','jpg'); % imwrite(I2,'hasil1_mark1(scaling_down_20%).jpg','jpg'); %mark2
86
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
imwrite(B,'hasil1_mark2(noise_salt_pepper_10%).jpg','jpg'); imwrite(C,'hasil1_mark2(nois_egaussian).jpg','jpg'); imwrite(D,'hasil1_mark2(blur_10_pixel).jpg','jpg'); imwrite(E,'hasil1_mark2(blur_5_pixel).jpg','jpg'); imwrite(F,'hasil1_mark2(rotate_5_derajat).jpg','jpg'); imwrite(G,'hasil1_mark2(rotate_90_derajat).jpg','jpg'); imwrite(H,'hasil1_mark2(contrast_highout_0,9).jpg','jpg'); imwrite(I1,'hasil1_mark2(scaling_up_20%).jpg','jpg'); imwrite(I2,'hasil1_mark2(scaling_down_20%).jpg','jpg');
87