Potongan Program IMPLEMENTASI TEKNIK WATERMARKING PADA CITRA DIGITAL MENGGUNAKAN METODE DISCRETE FOURIER TRANSFORM (DFT).

53 BAB IV IMPLEMENTASI DAN EVALUASI

4.1 Kebutuhan Sistem

Sebelum melakukan implementasi dan menjalankan aplikasi untuk proses watermarking citra digital dengan metode Discrete Fourier Transform DFT, dibutuhkan spesifikasi perangkat keras dan juga perangkat lunak dengan kondisi tertentu agar dapat berjalan dengan baik. Berikut ini adalah perangkat keras yang digunakan untuk menjalankan aplikasi watermarking citra digital dengan metode Discrete Fourier Transform DFT: a. Notebook dengan prosesor AMD Turiontm 64 X2 Mobile. b. Memori RAM 1 GB. Kebutuhan perangkat lunak yang digunakan untuk menjalankan aplikasi watermarking citra digital dengan metode Discrete Fourier Transform DFT ini adalah sebagai berikut : a. Sistem Operasi Microsoft Windows XP Profesional SP2. b. Matlab 7.0.4 c. Adode Photoshop CS 3

4.2 Potongan Program

Dalam sub bab ini akan dijelaskan mengenai beberapa potongan program matlab sebagai implementasi dari algoritma yang sudah dijelaskan pada bab sebelumnya. Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. 54 a. Membuka dan menyimpan file [namafile,direktori] = uigetfile .bmp , Buka Gambar ; [namafile,direktori] = uiputfile .bmp , Simpan Gambar ; Fungsi “uigetfile” digunakan untuk membuka file. Fungsi “uigetfile” menghasilkan dua keluaran, yaitu variable namafile dan variable direktori. Variable namafile digunakan untuk menyimpan nama file yang dibuka dan variable direkori digunakan untuk menyimpan path direktori. Fungsi untuk menyimpan file adalah “uiputfile”. b. Transformasi Arnold Cat’s Map Transformasi Arnold Cats Map tempImg=message; for n=1:iTimes for u=1:Mm for v=1:Nm temp=tempImgu,v; ax=modu+v,Mm+1; ay=modu+2v,Nm+1; outImgax,ay=temp; end end tempImg=outImg; end Gambar pesan biner dengan susunan awal di acak dengan transformasi Arnold Cat’s Map sebelum dilakukan penyisipan ke domain frekuensi DFT. c. Membagi dan menghitung nilai DFT 2 dimensi dari blok 8 x 8 pixel perhitungan DFT 2-D blok 8x8 fft_block=fft2cover_objecty:y+blocksize-1,x:x+blocksize- 1; Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. 55 Dalam proses penyisipan dan pembacaan pesan, sebuah gambar cover ataupun gambar ter-watermark dibagi menjadi blok 8 x 8 pixel. Sebuah blok 8 x 8 pixel akan mewakili penyisipan dari satu bit pesan. d. Menghitung nilai phase blok 8 x 8 pixel Hitung nilai phase DFT angle_block=anglefft_block; Perhitungan nilai phase dari blok DFT 8 x 8 pixel nantinya akan digunakan dalam proses pengembalian nilai DFT pada proses invers DFT, yang diperlukan dalam membentuk gambar hasil sisipan kembali seperti bentuk gambar awal gambar cover. e. Proses Penyisipan Pesan ll=1; if message_vectorkk==0 for ii=1:blocksize for jj=1:blocksize if filter_mii,jj==1 abs_block_o=abs_blockii,jj; abs_blockii,jj=abs_blockii,jj1+kpn_sequence_zeroll; abs_blockblocksize-ii+1,blocksize- jj+1=abs_blockblocksize-ii+1,blocksize- jj+1+abs_blockii,jj-abs_block_o; ll=ll+1; end end end else for ii=1:blocksize for jj=1:blocksize if filter_mii,jj==1 abs_block_o=abs_blockii,jj; abs_blockii,jj=abs_blockii,jj1+kpn_sequence_onell; abs_blockblocksize-ii+1,blocksize- jj+1=abs_blockblocksize-ii+1,blocksize- jj+1+abs_blockii,jj-abs_block_o; Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. 56 ll=ll+1; end end end end Pada proses penyisipan pesan, bit pesan tidak dimasukkan secara langsung ke dalam domain frekuensi DFT melainkan dikondisikan berdasarkan dari perhitungan nilai magnitude pada tiap-tiap blok DFT 8 x 8 pixel. f. Menghitung invers DFT 2 dimensi dari blok 8 x 8 pixel watermark ed_imagey:y+blocksize-1,x:x+blocksize-1=absifft2 abs_block.expiangle_block; Perhitungan nilai invers DFT 2 dimensi digunakan untuk mengembalikan nilai magnitude DFT, sehingga gambar dapat bentuk kembali menjadi gambar awal. g. Mengubah tipe data gambar dan menampilkan gambar merubah tipe watermarked_image_int menjadi uint8 watermark ed_image_int=uint8watermarked_image255; menampilkan watermarked_image_int ke axes setproyek.figSisip, CurrentAxes ,proyek.axes4; setimshowwatermarked_image_int; setproyek.axes4, Userdata ,watermarked_image_int; Gambar yang diolah dalam proses sisip bertipe double, sehingga gambar harus di ubah kembali menjadi tipe uint8 sebelum gambar yang telah tersisipi ditampilkan. Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. 57 h. Pembacaan Pesan ll=1; for ii=1:blocksize for jj=1:blocksize if filter_mii,jj==1 sequencell=abs_block_wii,jj; ll=ll+1; end end end perhitungan korelasi nol dan perhitungan korelasi satu correlation_zerokk = corr2pn_sequence_zero,sequence; correlation_onekk = corr2pn_sequence_one,sequence; pengambilan pesan vektor pesan for kk=1:max_message if correlation_zerokkcorrelation_onekk message_vectorkk=0; else message_vectorkk=1; end end Pada potongan source code pembacaan pesan pada proses pembacaan pesan, apabila hasil perhitungan korelasi-nol lebih besar dari perhitungan korelasi-satu maka bit pesan bernilai ‘0’ dan sebaliknya apabila perhitungan korelasi-nol lebih kecil dari perhitungan korelasi-satu maka bit pesan bernilai ‘1’ . i. Perhitungan PNSR menghitung PNSR tmp1 = sumsumabsgbr1-gbr2.2; [M,N] = sizegbr1; RMSE = 1MNtmp10.5; PSNR1 = 20log10255RMSE; Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. 58 Perhitungan PNSR dilakukan untuk mengukur kualitas citra digital yang dihasilkan setelah dilakukan proses penyisipan pesan, apakah gambar hasil sisipan tersebut berbeda jauh dari gambar cover-nya. j. Perhitungan Korelasi NC perhitungan NcNormalized Correlation d1=0; d2=0; d3=0; for i = 1:M for j = 1:N d1=d1+ImageAi,jImageBi,j ; d2=d2+ImageAi,jImageAi,j ; d3=d3+ImageBi,jImageBi,j ; end end dNC=d1sqrtd2sqrtd3; Perhitungan Korelasi NC dilakukan untuk mengukur apakah watermark yang diekstraksi dari citra yang diuji memiliki kemiripan dengan watermark asli Jika koefisien korelasi mendekati atau sama dengan nilai batas tersebut.

4.3 Implementasi