“WATERMARK CITRA”
Oleh:
JTD 3A
NO NAMA NIM
10 Jauhariyatul Fajriyah 1641160103
Script
function y= watermark(A,B)
%host=imread(A);
host=rgb2gray(imread(A));
%host=im2bw(imread(A));
[m n p]=size(host);
subplot(1,3,1)
imshow(host);
title('Original Image');
[host_LL,host_LH,host_HL,host_HH]=dwt2(host,'haar');
%water_mark=imread(B);
water_mark=rgb2gray(imread(B));
%water_mark=im2bw(imread(B));
water_mark=imresize(water_mark,[m n]);
subplot(1,3,2)
imshow(water_mark)
title('Watermark');
[water_mark_LL,water_mark_LH,water_mark_HL,water_mark_HH]=dwt2
(water_mark,'haar');
water_marked_LL = host_LL + (0.03*water_mark_LL);
watermarked=idwt2(water_marked_LL,host_LH,host_HL,host_HH,'haa
r');
subplot(1,3,3)
imshow(uint8(watermarked));
title('Watermarked image');
imwrite(uint8(watermarked),'watermarked.png');
y='Watermarked succesfully';
val1=max(max(water_mark_LL))
val2=max(max(water_marked_LL))
end
Ukuran Binary
B. Metode DCT
1.RGB
Script
clc;
clear all;
close all;
x=double(imread('kamu.jpg'));
figure(1);
subplot(2,2,1)
imshow(x/255);
title('Gambar 1');
y = x ;
a=zeros (300,500);
a(100:250,100:350)=1;
subplot(2,2,2)
imshow(a)
title('Gambar 2');
save m.dat a -ascii
%watermarking
x1 = x(:,:,1);
x2 = x(:,:,2);
x3 = x(:,:,3);
dx1 = dct2 (x1) ; dx11 = dx1 ;
dx2 = dct2 (x2) ; dx22 = dx2 ;
dx3 = dct2 (x3) ; dx33 = dx3 ;
load m.dat
g = 1000;
[rm,cm] = size(m);
dx1 (1:rm,1:cm) = dx1(1:rm,1:cm) + g * m;
dx2 (1:rm,1:cm) = dx2(1:rm,1:cm) + g * m;
dx3 (1:rm,1:cm) = dx3(1:rm,1:cm) + g * m;
subplot(2,2,3)
imshow(dx1);
title('Gambar 3');
subplot(2,2,4)
imshow(dx2);
title('Gambar 4');
y1 = idct2(dx1);
y2 = idct2(dx2);
y3 = idct2(dx3);
y(:,:,1)= y1 ;
y(:,:,2)= y2 ;
y(:,:,3)= y3 ;
figure(2);
subplot(2,2,1)
imshow(y1);
title('Gambar 5');
subplot(2,2,2)
imshow(y2);
title('Gambar 6');
subplot(2,2,3)
imshow(y3);
title('Gambar 7');
subplot(2,2,4)
imshow(y);
title('Gambar 8');
figure(3);
subplot(2,2,1)
imshow(y/255)
title('Gambar 9');
subplot(2,2,2)
imshow(abs(y-x)*100)
title('Gambar 10');
z=y;
[r,c,s]=size(z);
y=z;
dy1 = dct2(y(:,:,1));
dy2 = dct2(y(:,:,2));
dy3 = dct2(y(:,:,3));
dy1 (1:rm,1:cm) = dy1 (1:rm,1:cm) + g * m;
dy2 (1:rm,1:cm) = dy2 (1:rm,1:cm) + g * m;
dy3 (1:rm,1:cm) = dy3 (1:rm,1:cm) + g * m;
y11 = idct2(dy1);
y22 = idct2(dy2);
y33 = idct2(dy3);
yy(:,:,1) = y11 ;
yy(:,:,2) = y22 ;
yy(:,:,3) = y33 ;
subplot(2,2,3)
imshow(yy/255)
title('Gambar 11');
subplot(2,2,4)
imshow (abs(yy-x)*10000)
title('Gambar 12');
2. Grayscale
3. Binary
Flowchart
4. Kesimpulan
- Penyisipan citra watermark ke dalam citra asli menggunakan DWT adalah dengan
menyisipkan citra watermark ke dalam koefisien wavelet dari citra asli
- Transformasi DCT merupakan salah satu transform coding yang akan
merubah byte data dari domain spasial menjadi domain frekuens
- Penyisipan watermark menggunakan metode Discrete Cosine Transform dapat
melindungi hak cipta pada citra digital.
- Ketika citra atau gambar sudah diberi watermark menggunakan metode DWT hasil
ukuran gambar tidak berubah hanya saja tipenya berubah dari logical menjadi
double.