基于DWT數(shù)字水印源碼_第1頁
基于DWT數(shù)字水印源碼_第2頁
基于DWT數(shù)字水印源碼_第3頁
基于DWT數(shù)字水印源碼_第4頁
基于DWT數(shù)字水印源碼_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上DWT水印源碼1%DWT水印源碼%完全根據(jù)DCT1修改,只為了拋磚引玉%人生在于嘗試,快樂。%有錯誤的地方希望大家指正%嵌入源碼clcclear all;% 保存開始時間start_time=cputime;k=20;       blocksize=8;   % 設(shè)置塊的大小% 讀入原圖像file_name='_lena_std_bw.bmp'cover_object=double(imread(file_name);% 原圖像的行數(shù)與列數(shù)Mc=size(cover_object,1);   

2、0;     %原圖像行數(shù)Nc=size(cover_object,2);         %原圖像列數(shù)% 最大嵌入信息量max_message=Mc*Nc/(blocksize2);% 讀入水印圖像file_name='c.bmp'message=double(imread(file_name);%水印圖像的行數(shù)與列數(shù)Mm=size(message,1);               %水印行數(shù)Nm=size(message,2);  

3、            %水印列數(shù)message_vector=reshape(message,1,Mm*Nm);% 檢查水印信息是否過大if (Mm*Nm> max_message)  error('水印太大')end%將隨機數(shù)發(fā)生器的狀態(tài)置為1100randn('state',1100);% 產(chǎn)生watermarked_image,并寫入原圖信息watermarked_image=cover_object;% 將圖像分塊嵌入% 當(dāng) (2,2) > (2,3) 且 message

4、_pad(kk)=0% 當(dāng) (2,2) < (2,3) 且 message_pad(kk)=1%經(jīng)過分析可以得出結(jié)論:在提取水印時,如果cD1(2,2)>cD1(2,3)便是嵌入了水印的黑色像素,%反之則是嵌入了白色像素x=1;y=1;h=waitbar(0,'嵌入水印,請等待');for (kk = 1:length(message_vector)  % 對塊進(jìn)行DWT變換  cA1,cH1,cV1,cD1 = dwt2(cover_object(x:x+blocksize-1,y:y+blocksize-1),'haar');

5、  a=cD1;  % 如果 message_pad(kk)= 0  if (message_vector(kk) = 0)    % 且(2,2) < (2,3) ,交換它們    if (cD1(2,2) < cD1(2,3)          temp=cD1(2,3);          cD1(2,3)=cD1(2,2);          cD1(2,2

6、)=temp;    end    % 如果message_pad(kk) = 1,   elseif (message_vector(kk) = 1)        % 且(2,2) > (2,3) ,交換它們    if (cD1(2,2) >= cD1(2,3)          temp=cD1(2,3);          cD1(2,3)=cD1(2,2);

7、60;         cD1(2,2)=temp;    end  end    % 檢查(2,2) , (2,3)的差是否>= k  if cD1(2,2) > cD1(2,3)    if cD1(2,2) - cD1(2,3) < k        cD1(2,2)=cD1(2,2)+(k/2);        cD1(2,3)=cD1(2,3)-(k/2);  

8、;           end  else       if cD1(2,3) - cD1(2,2) < k        cD1(2,3)=cD1(2,3)+(k/2);         cD1(2,2)=cD1(2,2)-(k/2);    end  end      %IDWT  watermarked_image(x:x+blocksize-1

9、,y:y+blocksize-1)= idwt2(cA1,cH1,cV1,cD1,'haar',Mc,Nc);  % 移動到下一塊  if (x+blocksize) >= Nc    x=1;    y=y+blocksize;  else    x=x+blocksize;  end  waitbar(kk/length(message_vector),h);endclose(h);% 轉(zhuǎn)換為uint8并寫入dwt_watermarked.bmpwaterma

10、rked_image_uint=uint8(watermarked_image);imwrite(watermarked_image_uint,'dwt_watermarked.bmp','bmp');% 顯示運行時間elapsed_time=cputime-start_time,% 計算psnr值psnr=psnr(cover_object,watermarked_image), % 顯示圖像figure(1)imshow(message,);title('水印');figure(2)subplot(1,2,1);imshow(watermar

11、ked_image,)title('嵌入水印圖像')subplot(1,2,2);imshow(cover_object,);title('原圖');%提取源碼clear all;% 保存開始時間start_time=cputime;blocksize=8;   % 設(shè)置塊的大小% 讀入嵌入水印圖像file_name='dwt_watermarked.bmp'watermarked_image=double(imread(file_name);% 嵌入水印圖像的行數(shù)與列數(shù)Mw=size(watermarked_image,1); 

12、60;       %嵌入水印圖像的行數(shù)Nw=size(watermarked_image,2);         %嵌入水印圖像的列數(shù)% 最大嵌入信息量max_message=Mw*Nw/(blocksize2);% 讀入原始水印file_name='c.bmp'orig_watermark=double(imread(file_name);% 原始水印的行數(shù)與列數(shù)Mo=size(orig_watermark,1);    %原始水印的行數(shù)No=size(orig_watermark,2

13、);    %原始水印的列數(shù)% 將圖像分塊提取水印x=1;y=1;h=waitbar(0,'水印提取中,請等待');for (kk = 1:max_message)  % 對塊進(jìn)行dwt變換  cA1,cH1,cV1,cD1 = dwt2(watermarked_image(x:x+blocksize-1,y:y+blocksize-1),'haar');    % 如果cD1(2,2) > cD1(3,3) 那么 message_vector(kk)=0  % 否則 message_v

14、ector(kk)=1  if cD1(2,2)>cD1(3,3)    message_vector(kk)=0;  else    message_vector(kk)=1;  end  % 移動到下一塊  if (x+blocksize) >= Mw    x=1;    y=y+blocksize;  else    x=x+blocksize;  end  waitbar(kk/max_message,h);endclose(h);% 將message重新排列message_vector=message_vector(1,1:Mo*No); %只需前Mo*N

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論