| 初级会员 
				 
				注册日期: 2007-05-31 
					帖子: 1
				 
				
				
				声望力: 0      | 
				 基于dwt的灰度图像水印算法设计与实现 
 
			
			这是我的毕业设计题目,我编了一些程序也参考了一些资料。希望对matlab 有相当技术的人帮我看看我的这两段程序。我在matlab上调了,也能通过,但总觉的没有达到目的,谁能帮我加个注释,帮我分析一下,先谢了!
 1.在原始图像中嵌入水印信息
 clear all;
 s=48;
 t1=32;
 t2=16;
 file_name='lena.bmp';
 cover_object=double(imread(file_name));
 mc=size(cover_object,1);
 nc=size(cover_object,2);
 file_name='jinxin.bmp';
 message=double(imread(file_name));
 r1=size(message,1);
 c1=size(message,2);
 [cA1,cH1,cV1,cD1]=dwt2(cover_object,'haar');
 [cA2,cH2,cV2,cD2]=dwt2(cA1,'haar');
 [cA3,cH3,cV3,cD3]=dwt2(cA2,'haar');
 for ii=1:r1
 for jj=1:c1
 if(message(ii,jj)==1)&(cA3(ii,jj)>=0)
 cA3(ii,jj)=cA3(ii,jj)-rem(cA3(ii,jj),s)+t1;
 elseif  (message(ii,jj)==0)&(cA3(ii,jj)>=0)
 cA3(ii,jj)=cA3(ii,jj)-rem(cA3(ii,jj),s)+t2;
 elseif(message(ii,jj)==1)&(cA3(ii,jj)<0)
 
 cA3(ii,jj)=cA3(ii,jj)-rem(cA3(ii,jj),s)-t1;
 else
 cA3(ii,jj)=cA3(ii,jj)-rem(cA3(ii,jj),s)-t2;
 end
 end
 end
 cA2=idwt2(cA3,cH3,cV3,cD3,'haar',[mc/4,nc/4]);
 cA1=idwt2(cA2,cH2,cV2,cD2,'haar',[mc/2,nc/2]);
 watermarked_image = idwt2(cA1,cH1,cV1,cD1,'haar',[mc,nc]);
 figure(1)
 subplot(2,2,1);imshow(cA1,[]);
 subplot(2,2,2);imshow(cA2,[]);
 subplot(2,2,3);imshow(cA3,[]);
 subplot(2,2,4);imshow(cD1,[]);
 figure(2)
 imshow(cA3,[]);
 figure(3)
 imshow(message);
 SPImage=imnoise(cover_object,'salt & pepper',0.01);
 figure(4);
 imshow(SPImage);
 imwrite(SPImage,'E:\matlab\work\lena.bmp');
 
 
 2.从嵌入水印后的图像中提取水印信息
 
 
 clear all;
 s=64;
 t1=48;
 t2=16;
 file_name='corrected.bmp';
 watermarked_image=double(imread(file_name));
 mw=size(watermarked_image,1);
 nw=size(watermarked_image,2);
 [cA1,cH1,cV1,cD1]=dwt2(watermarked_image,'haar');
 [cA2,cH2,cV2,cD2]=dwt2(cA1,'haar');
 [cA3,cH3,cV3,cD3]=dwt2(cA2,'haar');
 m1=size(cA3,1);
 n1=size(cA3,2);
 for ii=1:m1
 for jj=1:n1
 if abs(rem(cA3(ii,jj),s))>=(t1+t2)/2
 cA3(ii,jj)=1;
 else
 cA3(ii,jj)=0;
 end
 end
 end
 figure(1)
 imshow(cA3,[])
 title('提取出的水印信号')
 x=imread('jinxin.bmp');
 x=double(x);
 |