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