Upload
mike-azlan
View
91
Download
9
Embed Size (px)
DESCRIPTION
PCD-Kompresi Dan Watermarking Citra-Budi
Citation preview
Konsep Kompresi citra adalah seni dan ilmu untuk mengurangi jumlah
data yang dibutuhkan untuk merepresentasikan citra.
◦ Menjadi salah salah satu faktor kesuksesan teknologi digital.
Film pada dasarnya urutan frame dimana setiap frame adalah citra full-color, setiap video player harus memainkan gerakan frame 30 fps.
◦ Maka Standart Definition (SD) digital harus mengakses:
◦ Dan untuk durasi film 2 jam menjadi:
◦ Atau sekitar 224 GB (gigabytes) data, atau sekitar 27 keping DVD dual-layer 8.5 GB (asumsi DVD 12 cm)
2
sec/ 000,104,313)480720(sec
30 bytespixel
byte
frame
pixelsframe
byteshourhour
bytes 1024.22
sec60
sec000,104,31 112
Konsep
Untuk menjadi 1 keping DVD, maka harus dikompres dengan faktor sekitar 26.3. ◦ Kompresi yang lebih tinggi harus dilakukan untuk dapat
menyajikan resolusi film 1980x1080x24 bits/image.
Keuntungan kompresi: ◦ Ukuran citra menjadi lebih compact.
◦ Transmisi di jaringan menjadi lebih cepat.
Kerugian: ◦ Ada waktu yang dibutuhkan untuk melakukan encode dan
decode.
◦ Kualitas citra menjadi turun (meski sulit terdeteksi mata).
Kompresi citra berakar dari topik pembicaraan kompresi data ◦ Kompresi data: proses pengurangan jumlah data yang
dibutuhkan untuk merepresentasikan kuantitas informasi.
3
Konsep
Kompresi data dapat terjadi ketika ada sejumlah representasi yang selalu berulang dalam data (data redundan). ◦ Semakin banyak data redundan biasanya semakin besar
rasio kompresi yang didapat.
Simbol b menyatakan jumlah bit (unit pembawa informasi) yang digunakan untuk representasi data asli, dan b‟ untuk hasil kompresi.
Ada 2 kuantitas kaitannya dengan kompresi: rasio kompresi dan data redundan relatif. ◦ Rasio kompresi:
Rasio 10 (atau 10:1) artinya 10 bit data asli untuk setiap 1 bit data
dalam representasinya.
◦ Data redundan relatif:
4
'b
bC
CR
11
Jenis representasi citra
5
Jenis Keterangan
TIFF Tagged Image File Format. Format file yang fleksibel dan didukung
oleh banyak standart kompresi, seperti LZW.
PNG Portable Network Graphic. Format file losslessly compressed citra
full color dengan transparansi (bisa mencapai 48 bit/piksel)
BMP Windows Bitmap. Format umum untuk citra tidak terkompres.
JPEG Joint Photographic Experts Group, standart untuk kualitas citra
foto. Lossy baseline coding system. Menggunakan teknik DCT blok
8x8, Huffman, Golomb, dan Run-Length
MPEG-1 Motion Pictures Expert Group. Standart untuk CD-ROM. Didukung
semua aplikasi komputer dan DVD player. Didukung kompresi
Huffman, Arithmetic, Run-Length, dsb.
GIF Graphic Interchange Format. Format file yang menggunakan teknik
LZW. Banyak digunakan untuk file animasi kecil di web atau film
dengan resolusi kecil
HDV High Definition Video. Pengembangan DV untuk televisi HD yang
menggunakan kompresi mirip MPEG-2, termasuk predictive coding
Huffman Coding
Didasarkan pada prinsip pohon Huffman (Huffman, 1952).
Metode cerdas untuk membangun sebuah kamus kompresi ◦ Yang dalam beberapa arti optimal untuk data yang
dihadapi.
Metode ini menggunakan karakter dan probabilitas sebagai masukan dengan setiap karakter yang mungkin muncul dalam data. ◦ Semakin tinggi probabilitas maka akan semakin
pendek kode-urutan yang didapat, begitu pula sebaliknya.
Kamus kompresi ekivalen dengan pohon Huffman.
6
Huffman Coding Trees
Salah satu cara pengkodean dapat dilakukan berdasarkan frekuensi (bobot) kemunculan karakter
→ Variable-length coding
Membangun tree dengan minimum external
path weight → Huffman Coding Tree
Setiap karakter dikodekan dalam bentuk
kumpulan bit berdasarkan Huffman
(Coding) tree yang terbentuk
Frekuensi Kemunculan Huruf:
contoh
Huffman Coding Tree Construction
Diberikan frekuensi beberapa huruf
(dari tabel di atas):
Bentuklah sebuah HCT untuk
himpunan karakter di atas
HCT Construction Process:
First, create a collection of n initial Huffman trees, each of which is a single leaf node containing one of the letters.
Put the n partial trees onto a min-heap (a priority queue) organized by weight (frequency).
Next, remove the first two trees (the ones with lowest weight) from the heap. Join these two trees together to create a new tree whose root has the two trees as children, and whose weight is the sum of the weights of the two trees. Put this new tree back on the heap.
This process is repeated until all of the partial Huffman trees have been combined into one
Huffman Coding Tree Construction (1)
Z K M C U D L E
2 7 24 32 37 42 42 120
12
Huffman Tree Construction (2)
13
Huffman Tree Construction (3)
14
Assigning Codes
15
Coding
Proses coding pesan dilakukan dengan
cara mengkodekan setiap huruf
berdasarkan Huffman tree yang terbentuk
(lihat tabel)
Contoh:
Code untuk DEED: 10100101
MUCK: 111111001110111101
Decoding
Decoding pesan dilakukan dengan
cara melihat bit-bit pada string code
dari kiri dan kanan dengan
menggunakan Huffman tree (mulai
dari root) sampai sebuah huruf
didekodekan.
Decoding: contoh
Decode 10100101:
101 = D
100 = U
1110 = C
111101 = K • Decode 1011001110111101
101 = D
0 = E
0 = E
101 = D
Huffman Coding Karakter disimbolkan daun dan
mengikuti tepi dari atas ke bawah untuk mendapatkan kode huruf tertentu.
Untuk membangun pohon yang "optimal" untuk alfabet tertentu dan probabilitas diberikan algoritma berikut:
1. Buat daftar node. Setiap node berisi simbol dan probabilitasnya
2. Cari dua node dengan probabilitas terkecil
3. Jadikan keduanya sebagai anak node baru yang mempunyai probabilitas dari penjumlahan probabilitas keduanya.
4. Lepaskan dua anak tadi dari daftar dan tambahkan node parent yang baru tadi kedalam daftar.
5. Ulangi langkah 2-4 sampai daftar hanya berisi satu node.
18
Contoh
19
1 6 7 7 7
1 0 3 5 5
3 1 3 5 4
3 1 5 5 4
Citra asli
Intensitas Jumlah Probabilitas
0 1 0.05
1 4 0.2
2 0 0
3 4 0.2
4 2 0.1
5 5 0.25
6 1 0.05
7 3 0.15 Representasi
b = 1 byte x 20 piksel = 20 byte = 160 bit
Langkah 1
Langkah 2
20
Langkah 3
Langkah 4
21
Langkah 5
Langkah 6
22
Langkah 7
23
Langkah 8
24
Kamus yang didapat
Intensi
tas
Probabili
tas
Encoding
0 0.05 000110
1 0.2 11
2 0 000111
3 0.2 10
4 0.1 0000
5 0.25 01
6 0.05 00010
7 0.15 001
Lavg = ((0.05)6+(0.2) 2+(0) 6 +(0.2) 2
+(0.1) 4 +(0.25) 2 +(0.05) 5+(0.15) 3)
= (0.3+0.4+0+0.4+0.4+0.5 +0.25+0.45)
= 2.7 bits/piksel
b„ = Lavg jumlah_piksel
= 2.720 = 54 bit
25
1 6 7 7 7
1 0 3 5 5
3 1 3 5 4
3 1 5 5 4
Citra asli
b =160 bit
11 00010 001 001 001
11 000110 10 01 01
10 11 10 01 0000
10 11 01 01 0000
Citra setelah dikompres
b' = 54 bit
96.254
160
'
b
bC
%25.666625.096.2
11
11
CR
Rasio kompresi
Data redundan relatif
Huffman di matlab
Fungsi untuk membuat kamus: ◦ [dict,avglen] = huffmandict(symbols,p)
◦ Dimana symbols adalah vektor intensitas, p adalah probabilitas intensitas dalam citra, dict adalah cell array berisi kamus huffman, avglen adalah panjag rata-rata code word.
Fungsi untuk encode ◦ comp = huffmanenco(sig,dict)
◦ Dimana sig adalah data input (citra asli), comp adalah vektor yang berisi code word hasil encode.
Fungsi untuk decode ◦ dsig = huffmandeco(comp,dict)
26
27
f = [
1 6 7 7 7
1 0 3 5 5
3 1 3 5 4
3 1 5 5 4
];
simbol = [0:7];
for i=0:7
idx = find(f==i);
p(i+1) = size(idx,1);
end
[m,n] = size(f);
p = p./(m*n);
dict = huffmandict(simbol,p); % Create the dictionary.
sig = reshape(f,m*n,1);
hcode = huffmanenco(sig,dict); % Encode the data.
dhsig = huffmandeco(hcode,dict); % Decode the code.
dh = reshape(f,m,n);
Source code contoh
28
>> hcode'
ans =
Columns 1 through 14
1 1 1 1 1 0 1 0 0 0 0 1 0 0
Columns 15 through 28
0 0 1 1 0 1 1 1 1 0 0 1 1 0
Columns 29 through 42
1 0 0 1 0 0 1 0 1 0 1 0 1 0
Columns 43 through 54
0 1 0 1 0 0 0 0 0 0 0 0
Hasil kompresi
11 00010 001 001 001
11 000110 10 01 01
10 11 10 01 0000
10 11 01 01 0000
Block Truncate Coding (BTC)
Block Truncate Coding (BTC) merupakan salah satu jenis teknik lossy image compression.
BTC membagi citra asli kedalam blok kemudian menggunakan quantiser untuk mengurangi jumlah gray level dalam setiap blok dengan tetap menjaga mean dan standar deviasi.
Menggunakan sub-blok 4x4 memberikan rasio kompresi 4:1 dengan asumsi nilai integer 8-bit digunakan selama transmisi atau penyimpanan. ◦ Blok yang lebih besar akan memberikan kompresi yang
lebih besar (nilai “a” dan “b” menyebar ke lebih banyak piksel) tetapi dengan resiko mengurangi kualitas citra asli.
29
Prosedur encoding BTC
Piksel citra 256x256 dibagi kedalam blok, biasanya 4x4.
Untuk setiap blok, dihitung Mean dan Standar Deviasi (piksel dalam blok sama mempunyai Mean dan Standar Deviasi yang sama dalam citra terkompresi).
Setiap nilai dalam blok ditransformasi menjadi dua level nilai (0 atau 1), dengan formula:
◦ Dimana x(i,j) adalah piksel dalam blok citra asli, y(i,j) adalah piksel dalam blok citra terkompresi
◦ adalah rata-rata, nilai juga disimpan.
30
x
Prosedur decoding BTC
Setiap blok berisi 16 bit (formasi 4x4) bersama dengan Mean (8 bit) dan Standar Devisasi (8 bit).
Rekonstruksi dibuat berdasarkan nilai “a” dan “b” :
◦ Dimana standar deviasi,
◦ m jumlah piksel dalam 1 blok,
◦ q adalah jumlah piksel dalam blok yang lebih besar dari
Rekonstruksi citra menggunakan formula:
31
qm
qxa
qm
qxb
x
Contoh
32
Salah satu blok (4x4)
dalam citra asli Mean = 241.875
Standar Deviasi = 4.5
decoding
7725.236916
95.4875.241
a
9775.246916
95.4875.241
b
Salah satu blok (4x4)
dalam citra hasil decoding
encoding
Block Truncate Coding Pada satu blok 4x4 citra asli
◦ b = 16 piksel x 8 bit = 128 bit
Pada satu blok 4x4 citra hasil kompresi
◦ b„ = 16 bit + 8 bit (Mean) + 8 bit (StDev) = 32
Rasio kompresi:
Data redundan relatif:
33
432
128
'
b
bC
%7575.04
11
11
CR
LZW Coding
Teknik sebelumnya berfokus pada pembuangan coding redundan. Dalam LZW (Lempel-Ziv-Welch) juga memperhatikan error free compression.
Memungkinkan transformasi fixed-length code word ke variable length sequence.
Pembentukan kamus pada saat encoding dilakukan dengan membaca secara sekuensial piksel-piksel. Untuk urutan yang tidak ada dalam kamus, maka akan ditentukan code wordnya.
34
LZW Coding
Jika 0-255 (8 bit) digunakan untuk code word intensitas citra asli, maka code word baru bentukannya dimulai dari 256 (9 bit).
Menggunakan code word 9 bit (secara konsep menggantikan 8 + 8 dengan 9).
Jika ukuran kamus terlalu kecil berpengaruh pada kemampuan deteksi sekuens level intensitas jadi lemah, tapi jika terlalu besar akan melemahkan performa kompresi.
35
Contoh 1
36
Citra asli
Rangkaian
saat ini
diakui
Piksel
yang
sedang
diproses
Output
encode
Code
Word Entry kamus
245
245 239 245 256 245-239
239 249 239 257 239-249
249 239 249 258 249-239
239 245 239 259 239-245
245 245 245 260 245-245
245 239
245-239 235 256 261 245-239-235
235 245 235 262 235-245
245 245
245-245 239 260 263 245-245-239
239 245
239-245 245 259 264 239-245-245
245 235 245 265 245-235
235 245 235 266 235-245
245 239
245-239 256
b„ = 12x9 = 108 bit
1852.1108
128
'
b
bC
Rasio kompresi:
Data redundan relatif:
%63.151563.0
1852.1
11
11
C
R
Contoh 2
37
Citra asli
b„ = 10x9 = 90 bit
42.190
128
'
b
bC
Rasio kompresi:
Data redundan relatif:
%69.292969.0
42.1
11
11
C
R
Pengantar: Prisoner’s Problem
5/7/2014 38
Alisa Bobi
Fred
Pesan rahasia: “Lari jam satu”
Lanjutan
Bagaimana Bobi mengirim pesan rahasia
kepada Alisa tanpa diketahui oleh Fred?
Alternatif 1: mengenkripsinya
xjT#9uvmY!rc$
Fred pasti curiga!
5/7/2014 39
Lanjutan
Alternatif 2: menyembunyikannya di dalam pesan lain
Lupakan asal rumor itu jangan ambil manfaatnya setelah aku tutup usia
Fred tidak akan curiga!
Information hiding dengan steganografi!
5/7/2014 40
Pesan (message)
5/7/2014 41
1. Teks
“Torang semua bersodara”
2. Audio
3. Gambar (image)
4. Video
5/7/2014 42
Properti Steganografi
1. Embedded message (hiddentext): pesan
yang
disembunyikan.
2. Cover-object (covertext): pesan yang
digunakan untuk menyembunyikan
embedded message.
3. Stego-object (stegotext): pesan yang
sudah berisi pesan embedded message.
Properti Steganografi
5/7/2014 43
Encoding
(embeddin)
covertext
hiddentext
key
Decoding
(extraction)
stegotext
key
hiddentext
covertext
5/7/2014 44
Contoh-contoh:
Lupakan asal rumor itu jangan ambil manfaatnya setelah aku tutup usia
Covertext:
upakan sal umor tu angan mbil anfaatnya etelah ku utup sia
Hiddentext:
Lari jam satu
Stegotext:
Lupakan asal rumor itu jangan ambil manfaatnya setelah aku tutup usia
Steganografi (steganography) adalah teknik menyembunyikan data rahasia di dalam wadah (media) digital, sehingga keberadaan data rahasia tersebut tidak diketahui oleh orang.
Steganografi membutuhkan dua properti : wadah penampung dan data rahasia yang akan disembunyikan.
5/7/2014 45
Steganografi digital menggunakan media digital sebagai wadah penampung, misalnya citra suara (audio), teks, dan video.
Data rahasia yang disembunyikan juga dapat berupa citra, suara, teks, atau video.
Penggunaan steganografi antara lain bertujuan untuk menyamarkan eksistensi (keberadaan) data rahasia, sehingga sulit dideteksi, dan melindungi hak cipta suatu produk.
5/7/2014 46
Steganografi dapat dipandang sebagai kelanjutan kriptografi. Jika pada kriptografi data yang telah disandikan (chipertext) tetap tersedia, maka dengan steganografi chiperteks dapat disembunyikan sehingga pihak ketiga tidak mengetahui keberadaannya.
Data rahasia yang disembunyikan dapat diekstraksi kembali persis sama seperti keadaan aslinya.
5/7/2014 47
5/7/2014 48
Sejarah Steganografi
Steganografi dengan media kepala budak (Herodatus, penguasa Yunani).
Kepala budak dibotaki, ditulisi pesan, rambut budak dibiarkan tumbuh, budak dikirim.
Penggunaan tinta tak-tampak (invisible
ink). Tinta dibuat dari campuran sari buah,
susu, dan cuka. Tulisan di atas kertas dapat dibaca dengan cara memanaskan kertas tersebut.
5/7/2014 49
Steganografi vs Kriptografi
• Steganografi dapat dianggap pelengkap
kriptografi (bukan pengganti).
• Steganografi: menyembunyikan
keberadaan (existence) pesan
• Kriptografi: menyembunyikan isi (content)
pesan
A. Kriteria Steganografi
Penyembunyian data rahasia ke
dalam citra digital akan mengubah
kualitas citra tersebut. Kriteria yang
harus diperhatikan dalam
penyembunyian data adalah :
1. Imperceptible, keberadaan pesan rahasia tidak dapat dipersepsi
5/7/2014 50
A. Kriteria Steganografi
2. Fidelity, mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tsb terdapat data rahasia.
5/7/2014 51
A. Kriteria Steganografi
3. Robustness, data yang
disembunyikan harus tahan (robust)
terhadap berbagai operasi manipulasi
yang dilakukan pada citra
penampung, seperti pengubahan
kontras, penajaman, pemampatan,
rotasi, perbesaran gambar,
pemotongan (cropping), enkripsi, dsb.
5/7/2014 52
A. Kriteria Steganografi
Bila pada citra penampung dilakukan
operasi-operasi pengolahan citra
tersebut, maka data yang
disembunyikan seharusnya tidak
rusak (harus valid jika jika diekstraksi
kembali).
4. Recovery, data yang disembunyikan
harus dapat diungkapkan kembali
(reveal).
5/7/2014 53
A. Kriteria Steganografi
Karena tujuan steganografi adalah
data hiding, maka sewaktu-waktu
data rahasia di dalam citra
penampung harus dapat diambil
kembali untuk digunakan lebih lanjut.
5/7/2014 54
B. Teknik Menyembunyikan Data
Penyembunyian data dilakukan dengan mengganti bit-bit data di dalam segmen citra dengan bit-bit data rahasia.
Hingga saat ini sudah banyak dikemukakan oleh para ilmuwan metode-metode penyembunyian data. Metode yang paling sederhana adalah metode modifikasi LSB (Least Significant Bit Modification).
5/7/2014 55
B. Teknik Menyembunyikan Data
Pada susunan bit di dalam sebuah
byte (1 byte = 8 bit), ada bit yang
paling berarti (most significant bit)
atau MSB dan bit yang paling kurang
berarti (least significant bit) atau
LSB.
5/7/2014 56
Contoh metode modifikasi LSB untuk
menyisipkan Steganografi pada citra
digital.
Misalnya pada byte 11010010, bit 1 yang pertama (digarisbawahi) adalah bit MSB dan bit 0 yang terakhir (digarisbawahi) adalah bit LSB.
Bit yang cocok untuk diganti adalah bit bit LSB, sebab penggantian hanya mengubah nilai byte tsb. 1 lebih tinggi atau 1 lebih rendah dari nilai sebelumnya.
5/7/2014 57
Contoh metode modifikasi LSB untuk
menyisipkan Steganografi pada citra digital.
Misalkan byte tersebut di dalam gambar
menyatakan warna tertentu, maka
perubahan satu bit LSB tidak akan
mengubah warna tersebut secara berarti,
lagi pula mata manusia tidak dapat
membedakan perubahan yang kecil.
5/7/2014 58
B. Teknik Menyembunyikan Data
Bilangan acak dibangkitkan dengan pseudo-random-number-generator (PRNG).
PRNG menggunakan kunci rahasia untuk membangkitkan posisi pixel yang akan digunakan untuk menyembunyikan bit-bit.
PRNG dibangun dalam sejumlah cara, salah satunya dengan menggunakan algoritma kriptografi DES (Data Encryption Standard)
5/7/2014 59
B. Teknik Menyembunyikan Data
Tujuan dari enkripsi adalah menghasilkan
sekumpulan bilangan acak yang sama
untuk setiap kunci enkripsi yang sama.
Bilangan acak dihasilkan dengan cara
memilih bit-bit dari sebuah blok data hasil
enkripsi.
5/7/2014 60
Metode LSB (spatial domain)
5/7/2014 61
Mengganti bit LSB dengan bit data.
11010010
MSB LSB
LSB = Least Significant Bit
MSB = Most Siginificant Bit
Mengubah bit LSB hanya mengubah nilai byte satu
lebih tinggi atau satu lebih rendah dari nilai sebelumnya
LSB
5/7/2014 62
Misalkan cover-object adalah citra
00110011 10100010 11100010 01101111
(sekelompok pixel berwarna merah)
Misalkan embedded message: 0111
Encoding:
00110010 10100011 11100011 01101110
(pixel berwarna “merah berubah sedikit”)
5/7/2014 63
Ukuran data yang akan disembunyikan bergantung pada ukuran cover-object.
Citra 24-bit ukuran 256 256 pixel = 65536 pixel.
Setiap pixel berukuran 3 byte (komponen RGB), berarti ada 65536 3 = 196608 byte.
Setiap 1 byte menyembunyikan satu bit di LSB-nya, maka ukuran data yang dapat disembunyikan:
196608/8 = 24576 byte
LSB
5/7/2014 64
Untuk memperkuat teknik penyembunyian data, bit-bit data rahasia tidak digunakan mengganti byte-byte yang berurutan, namun dipilih susunan byte secara acak.
Misalnya jika terdapat 50 byte dan 6 bit data yang akan disembunyikan, maka maka byte yang diganti bit LSB-nya dipilih secara acak, misalkan byte nomor 36, 5, 21, 10, 18, 49.
LSB
5/7/2014 65
Keuntungan
Mudah diimplementasikan dan
proses encoding cepat
Kelemahan
Tidak tahan terhadap pengubahan
(modifikasi) terhadap cover object.
LSB
Watermarking
Semua jenis pengolahan citra sebelumnya (baik gambar maupun
video) dapat di transmisikan secara bebas.
Dapat disalin dengan mudah tanpa error
◦ Beresiko menimbulkan akuisisi oleh pihak lain
◦ Bahkan meskipun gambar sudah di enkripsi
◦ Menimbulkan pelanggaran hak cipta
Solusi: watermark (tanda air / tinta transparan)
Tujuan utama melindungi hak kepemilikan:
◦ Copyright Identification: bukti kepemilikan
◦ User Identification or fingerprinting: mengenali illegal copy
◦ Autenticity determination: menjamin bahwa citra tidak rusak
◦ Automated monitoring: monitoring kapan dan dimana citra disalin
◦ Copy protection: Bisa menetapkan aturan penggunaan dan penyalinan citra
66
Visible watermark
Visible watermark adalah sub-citra atau citra semi-transparan (opaque) yang diletakkan diatas citra yang lain (citra yang diberi watermark), sehingga watermark-nya masih dapat dilihat oleh pengamat.
Banyak digunakan di industri siaran televisi.
Formula untuk memasukkan watermark ke citra asli:
◦ Dimana fw adalah citra yang sudah di watermark, f adalah citra asli, w adalah citra watermark, adalah konstanta yang mengontrol penampakan relatif (opaque) dari watermarknya.
67
wffw )1(
Contoh
68
83 89 134 145 56 68 80 170
189 243 224 211
23 129 90 223
Citra asli
watermark
23 129 0 0 90 223 0 0 0 0 0 0
watermark
65 101 94 102 66 115 56 119
132 170 157 148
Opaque = 0.3
Citra asli setelah diwatermark
23 129 0 0 90 223 0 0 0 0 0 0
Watermark setelah
di recover wffw )1(
Contoh
69
f = imread('lena.tif');
f = double(f);
wm = imread('dip.tif');
wm = rgb2gray(wm);
alpha = 0.3;
[m,n] = size(f);
fwm = zeros(m,n);
[r,c] = size(wm);
fwm(101:100+r, 101:100+c) =wm;
hf = (1-alpha) * f + alpha * fwm;
hf = uint8(hf);
figure, imshow(hf);
% Kembalikan watermark
hf = double(hf);
iwm = hf - (1-alpha)*f;
iwm = uint8(iwm);
figure, imshow(iwm);
Opaque = 0.3 Citra watermark
setelah di recover
Citra asli
Citra watermark
Invisible watermark Sama dengan visible watermark tapi watermarknya tidak dapat
diamati oleh mata telanjang.
Persepsi mata manusia tidak dapat membedakan selisih yang kecil pada intensitas citra digital
◦ Sehingga informasi redundan yang terselip dalam citra tidak akan tampak.
◦ Watermark masih dapat direcover untuk mengembalikannya.
Formula yang digunakan:
◦ Catatan: hasil bagi yang digunakan adalah pembulatan kebawah
Secara prinsip, teknik ini men-set nol pada 2 bit LSB setiap piksel, kemudian 2 bit tersebut dipakai untuk memasukkan informasi watermark.
Recover watermark dilakukan dengan men-set nol pada 6 MSB piksel.
70
6444
wffw
Contoh
71
83 89 134 145 56 68 80 170
189 243 224 211
23 129 90 223
Citra asli
watermark
23 129 0 0 90 223 0 0 0 0 0 0
watermark
80 90 132 144 57 71 80 168
188 240 224 208
Opaque = 0.3
Citra asli setelah diwatermark
0 2 0 0 1 3 0 0 0 0 0 0
Watermark setelah
di recover 644
4wf
fw
Contoh
72
f = imread('lena.tif');
f = double(f);
wm = imread('dip.tif');
wm = rgb2gray(wm);
alpha = 0.3;
[m,n] = size(f);
fwm = zeros(m,n);
[r,c] = size(wm);
fwm(101:100+r, 101:100+c) =wm;
hf = 4*(floor(f./4)) + floor(fwm./64);
hf = uint8(hf);
figure, imshow(hf);
% Kembalikan watermark
hf = double(hf);
iwm = hf - 4*(floor(hf./4));
iwm = iwm/3;
figure, imshow(iwm); Invisible watermark Citra watermark
setelah di recover
Citra asli
Citra watermark