%
Name:ChrisShoemaker
% Course:EER - 280 - DigitalWatermarking
% Project:LeastSignificantBitSubstitution
% WatermarkEmbeding
clearall;
% savestarttime
start_time = cputime;
% read in thecover object
file_name = ' _lena_std_bw.bmp ' ;
[cover_object,map] = imread(file_name);
% read in themessageimage
file_name = ' key.bmp ' ;
[message,map1] = imread(file_name);
message1 = message;
% convertto double for normalization,thenbackagain
message = double (message);
message = fix(message. / 2 );
message = uint8(message);
% determinesizeofcover object
Mc = size(cover_object, 1 ); % Height
Nc = size(cover_object, 2 ); % Width
% determinesizeofmessage object
Mm = size(message, 1 ); % Height
Nm = size(message, 2 ); % Width
% titlethemessage object out tocover object sizetogeneratewatermark
for ii = 1 :Mc
for jj = 1 :Nc
watermark(ii,jj) = message(mod(ii,Mm) + 1 ,mod(jj,Nm) + 1 );
end
end
% nowwe set thelsbofcover_object(ii,jj)tothevalueofwatermark(ii,jj)
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
% writethewatermarkedimage out toafile
imwrite(watermarked_image, ' lsb_watermarked.bmp ' , ' bmp ' );
% displayprocessingtime
elapsed_time = cputime - start_time,
% calculatethePSNR
psnr = psnr(cover_object,watermarked_image,Mc,Nc),
% displaywatermarkedimage
figure( 1 )
imshow(watermarked_image,[])
title( ' WatermarkedImage ' )
figure( 2 )
imshow(cover_object,[])
title( ' originalimage ' )
for ii = 1 :Mc
for jj = 1 :Nc
watermark1(ii,jj) = message1(mod(ii,Mm) + 1 ,mod(jj,Nm) + 1 );
end
end
% watermark1 = watermark1 * 256 ;
% message1 = message1 * 256 ;
figure( 3 )
imshow(watermark1,[])
title( ' thewatermark ' )
figure( 4 )
imshow(message1,[])
title( ' thewatermark ' )
% Course:EER - 280 - DigitalWatermarking
% Project:LeastSignificantBitSubstitution
% WatermarkEmbeding
clearall;
% savestarttime
start_time = cputime;
% read in thecover object
file_name = ' _lena_std_bw.bmp ' ;
[cover_object,map] = imread(file_name);
% read in themessageimage
file_name = ' key.bmp ' ;
[message,map1] = imread(file_name);
message1 = message;
% convertto double for normalization,thenbackagain
message = double (message);
message = fix(message. / 2 );
message = uint8(message);
% determinesizeofcover object
Mc = size(cover_object, 1 ); % Height
Nc = size(cover_object, 2 ); % Width
% determinesizeofmessage object
Mm = size(message, 1 ); % Height
Nm = size(message, 2 ); % Width
% titlethemessage object out tocover object sizetogeneratewatermark
for ii = 1 :Mc
for jj = 1 :Nc
watermark(ii,jj) = message(mod(ii,Mm) + 1 ,mod(jj,Nm) + 1 );
end
end
% nowwe set thelsbofcover_object(ii,jj)tothevalueofwatermark(ii,jj)
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
% writethewatermarkedimage out toafile
imwrite(watermarked_image, ' lsb_watermarked.bmp ' , ' bmp ' );
% displayprocessingtime
elapsed_time = cputime - start_time,
% calculatethePSNR
psnr = psnr(cover_object,watermarked_image,Mc,Nc),
% displaywatermarkedimage
figure( 1 )
imshow(watermarked_image,[])
title( ' WatermarkedImage ' )
figure( 2 )
imshow(cover_object,[])
title( ' originalimage ' )
for ii = 1 :Mc
for jj = 1 :Nc
watermark1(ii,jj) = message1(mod(ii,Mm) + 1 ,mod(jj,Nm) + 1 );
end
end
% watermark1 = watermark1 * 256 ;
% message1 = message1 * 256 ;
figure( 3 )
imshow(watermark1,[])
title( ' thewatermark ' )
figure( 4 )
imshow(message1,[])
title( ' thewatermark ' )