⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1039049-

📁 基于LSB的数字水印技术
💻
字号:
clear all; 
%读入载体图像 
cover_image=imread('yt.bmp'); 
%读入水印图像 
water_image=imread('sy.bmp');
%water_image=rgb2gray(I);
%imwrite(water_image,'sy2.bmp');
water=double(water_image); 
water=round(water./256);%转换为0,1组成的矩阵 
water=uint8(water);%转换为uint8数 
imwrite(water,'sy3.bmp');
%确定载体图像大小 
mc=size(cover_image,1) 
nc=size(cover_image,2) 
%确定水印图像大小 
mm=size(water,1) %返回矩阵water的行数
nm=size(water,2) %返回矩阵water的列数
for i=1:mc 
    for j=1:nc 
        watermark(i,j)=water(mod(i,mm)+1,mod(j,nm)+1);
    end 
end  
watermarked_image1=cover_image; 
for i=1:mc 
    for j=1:nc 
        watermarked_image2(i,j)=bitset(watermarked_image1(i,j),1,watermark(i,j)); %在原图像“watermarked_image1”的第一位嵌入水印“watermark(i,j)”
        a(i,j)=bitset(watermarked_image1(i,j),2,watermark(i,j));
        b(i,j)=bitset(watermarked_image1(i,j),3,watermark(i,j));
        c(i,j)=bitset(watermarked_image1(i,j),4,watermark(i,j));
        d(i,j)=bitset(watermarked_image1(i,j),5,watermark(i,j));
        e(i,j)=bitset(watermarked_image1(i,j),6,watermark(i,j));
        f(i,j)=bitset(watermarked_image1(i,j),7,watermark(i,j));
        g(i,j)=bitset(watermarked_image1(i,j),8,watermark(i,j));
    end  
end 
imwrite(watermarked_image2,'lsb_watermarked.bmp','bmp'); 
%---------显示原水印图像---------
%figure(1) 
%subplot(1,3,1); 
%imshow(water_image);
%title('原水印')
%xlabel('256*256');
%------------显示载体图像-------
%subplot(1,3,2); 
%imshow(cover_image);
%title('载体图像')
%xlabel('512*512');
%---------在最低位嵌入水印后的图像显示------------
%subplot(1,3,3); 
%imshow(watermarked_image2,[]); 
%title('在最低为平面嵌入水印后')
%xlabel('512*512');

figure(2),
subplot(1,4,1); 
imhist(water_image);
title('原水印')
xlabel('              直方图1');
subplot(1,4,2);
imhist(cover_image );
title('嵌水印前载体')
xlabel(' 直方图2');
subplot(1,4,3);
imhist(watermarked_image2);
title('1位平面嵌水印后')
xlabel(' 直方图3');
subplot(1,4,4);
imhist(g);
title('8位平面嵌水印后')
xlabel(' 直方图4');

%-------------水印依次从低到高位嵌入后的图像显示----------
figure(3)
subplot(2,4,1); 
imshow( watermarked_image2); 
title('1位平面嵌水印')
subplot(2,4,2); 
imshow(a); 
title('2位平面嵌水印')
subplot(2,4,3); 
imshow(b); 
title('3位平面嵌水印')
subplot(2,4,4); 
imshow(c); 
title('4位平面嵌水印')
subplot(2,4,5); 
imshow(d); 
title('5位平面嵌水印')
subplot(2,4,6); 
imshow(e); 
title('6位平面嵌水印')
subplot(2,4,7); 
imshow(f); 
title('7位平面嵌水印')
subplot(2,4,8); 
imshow(g); 
title('8位平面嵌水印')





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -