Watermarking dengan metode LSB (Least Significant Bit)

tools : MATLAB
clear all;

% membaca gambar utama
file_name='rumah.jpg';
cover_object=imread(file_name);


% membaca gambar pesan
file_name='A.bmp';
message=imread(file_name);


% menconversi gambar pesan menjai nilai grayscale
message=double(message);
message=round(message./256);
message=uint8(message);


% definisi ukuran gambar utama
Mc=size(cover_object,1);    %Height
Nc=size(cover_object,2);    %Width



% definisi gambar pesan
Mm=size(message,1);         %Height
Nm=size(message,2);         %Width

%y = uint8(wgn(Mm,Nm,1));

 dengan modulus dan menambah nilai 1 pada tiap array yang ada pada nilai
% merubah gambar pesan menjadi watermark
for ii = 1:Mc
    for jj = 1:Nc
        watermark(ii,jj)=message(mod(ii,Mm)+1,mod(jj,Nm)+1);
    end
end


penyisipan gambar pesan dengan gambar utama  
%mengatur LSB gambar utama  nilai untu MSB watermark
watermarked_image=cover_object;
for ii = 1:Mc
    for jj = 1:Nc
        watermarked_image(ii,jj)=bitset(watermarked_image(ii,jj),1,watermark(ii,jj));
    end
end



% menulis file watermarking
imwrite(watermarked_image,'lsb_watermarked.bmp','bmp');

 
% manmpilan hasil gambar watermarking
figure(1)
imshow(watermarked_image,[])
title('Watermarked Image')



hasil watermarking
Encode watermarking
Source

clear all;

 mengambil nama file watermarking yang ada.
% membaca pesan watermarked
file_name='lsb_watermarked.bmp';
watermarked_image=imread(file_name);


% ukuran gambar watermark
Mw=size(watermarked_image,1);   %Height
Nw=size(watermarked_image,2);   %Width

Mengambil nilai gambar pesan yang ada pada gambar utama
% menerapkan LSB watermarked untuk merubah watermak
for ii = 1:Mw
    for jj = 1:Nw
        watermark(ii,jj)=bitget(watermarked_image(ii,jj),1);
    end
end

 merubah nilai menjadi double
% ukuran recovery watermark
watermark=256*double(watermark);


% ukuran dan tampilan recover watermark
figure(1)
imshow(watermark,[])
title('Recovered Watermark')

hasil :


 
hasil watermarking



Encode watermarking
Source

clear all;

 mengambil nama file watermarking yang ada.
% membaca pesan watermarked
file_name='lsb_watermarked.bmp';
watermarked_image=imread(file_name);


% ukuran gambar watermark
Mw=size(watermarked_image,1);   %Height
Nw=size(watermarked_image,2);   %Width

Mengambil nilai gambar pesan yang ada pada gambar utama
% menerapkan LSB watermarked untuk merubah watermak
for ii = 1:Mw
    for jj = 1:Nw
        watermark(ii,jj)=bitget(watermarked_image(ii,jj),1);
    end
end

 merubah nilai menjadi double
% ukuran recovery watermark
watermark=256*double(watermark);


% ukuran dan tampilan recover watermark
figure(1)
imshow(watermark,[])
title('Recovered Watermark')

hasil :


 
hasil watermarking



Comments

Post a Comment

terima kasih