




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上一、題目:dwt水印二、目的:編程實(shí)現(xiàn)水印的嵌入與還原三、算法及其實(shí)現(xiàn):水印的嵌入與還原小波變換具有空間-頻率的多尺度性,對(duì)圖像的分解可以連續(xù)地從低分辨率過渡到高分辨率,也可以對(duì)圖像整體進(jìn)行變換,DWT還具有多分辨率特性,可以很好地與人類視覺系統(tǒng)(HVS)特性相匹配。本算法將載體圖像進(jìn)行小波分解,利用公式實(shí)現(xiàn)水印信息的嵌入。將2值圖像中0和1的值變成-1和1。將水印入宿主圖形重要的小波系數(shù)上。水印的提取完全是水印嵌入的逆過程。四、實(shí)現(xiàn)工具:Matlab五、程序代碼:(1)dwt1_embed.m%嵌入源碼clcclear all;% 保存開始時(shí)間start_time=
2、cputime;k=20; blocksize=8; % 設(shè)置塊的大小% 讀入原圖像file_name='zimu.bmp'cover_object=double(imread(file_name);% 原圖像的行數(shù)與列數(shù)Mc=size(cover_object,1); %原圖像行數(shù)Nc=size(cover_object,2); %原圖像列數(shù)% 最大嵌入信息量max_message=Mc*Nc/(blocksize2);% 讀入水印圖像file_name='c.bmp'message=double(imread(file_name);%水印圖像的行數(shù)與列數(shù)Mm
3、=size(message,1); %水印行數(shù)Nm=size(message,2); %水印列數(shù)message_vector=reshape(message,1,Mm*Nm);% 檢查水印信息是否過大if (Mm*Nm> max_message) error('水印太大')end%將隨機(jī)數(shù)發(fā)生器的狀態(tài)置為1100randn('state',1100);% 產(chǎn)生watermarked_image,并寫入原圖信息watermarked_image=cover_object;% 將圖像分塊嵌入% 當(dāng) (2,2) > (2,3) 且 message_pad(
4、kk)=0% 當(dāng) (2,2) < (2,3) 且 message_pad(kk)=1%經(jīng)過分析可以得出結(jié)論:在提取水印時(shí),如果cD1(2,2)>cD1(2,3)便是嵌入了水印的黑色像素,%反之則是嵌入了白色像素x=1;y=1;h=waitbar(0,'嵌入水印,請(qǐng)等待');for (kk = 1:length(message_vector) % 對(duì)塊進(jìn)行DWT變換 cA1,cH1,cV1,cD1 = dwt2(cover_object(x:x+blocksize-1,y:y+blocksize-1),'haar'); a=cD1; % 如果 mess
5、age_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)=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); cD1(2,
6、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); 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,y:y+blocksi
7、ze-1)= idwt2(cA1,cH1,cV1,cD1,'haar',Mc,Nc); % 移動(dòng)到下一塊 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.bmpwatermarked_image_uint=uint8(watermarked_image);imwrite(watermarked_image_uint,'dwt_
8、watermarked.bmp','bmp');% 顯示運(yùn)行時(shí)間elapsed_time=cputime-start_time,% 計(jì)算psnr值psnr=psnr(cover_object,watermarked_image), % 顯示圖像figure(1)imshow(message);title('水印');figure(2)subplot(1,2,1);imshow(watermarked_image,)title('嵌入水印圖像')subplot(1,2,2);imshow('zimu.bmp');title(
9、'原圖');(2)dwt1_recover.m%DWT源碼%提取源碼clear all;% 保存開始時(shí)間start_time=cputime;blocksize=8; % 設(shè)置塊的大小% 讀入嵌入水印圖像file_name='dwt_watermarked.bmp'watermarked_image=double(imread(file_name);% 嵌入水印圖像的行數(shù)與列數(shù)Mw=size(watermarked_image,1); %嵌入水印圖像的行數(shù)Nw=size(watermarked_image,2); %嵌入水印圖像的列數(shù)% 最大嵌入信息量max_m
10、essage=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);%原始水印的列數(shù)% 將圖像分塊提取水印x=1;y=1;h=waitbar(0,'水印提取中,請(qǐng)等待');for (kk = 1:max_message) % 對(duì)塊進(jìn)行dwt變換 cA1,cH1,cV1,cD1 = dwt2(watermark
11、ed_image(x:x+blocksize-1,y:y+blocksize-1),'haar'); % 如果cD1(2,2) > cD1(3,3) 那么 message_vector(kk)=0 % 否則 message_vector(kk)=1 if cD1(2,2)>cD1(3,3) message_vector(kk)=0; else message_vector(kk)=1; end % 移動(dòng)到下一塊 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*No個(gè)message=reshape(message_vector,Mo,No);% 顯示運(yùn)行時(shí)間elapsed_time=cputime-start_time,% 顯
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 校級(jí)課題申報(bào)書字?jǐn)?shù)
- 旅游課題申報(bào)書范文
- 鄉(xiāng)村教師培訓(xùn)課題申報(bào)書
- 合同范本 發(fā)布單位
- 高校廉政課題申報(bào)書
- 代理采購電器合同范本
- 合伙退出機(jī)制合同范本
- 加工承攬訂制合同范本
- 課題申報(bào)立項(xiàng)書模版
- 發(fā)票臨時(shí)增量合同范本
- 第一課我的服飾巧搭配(課件)鄂教版勞動(dòng)六年級(jí)上冊(cè)
- 小兒急性腸炎查房課件
- DL∕T 2024-2019 大型調(diào)相機(jī)型式試驗(yàn)導(dǎo)則
- 江蘇2024年江蘇省新聞出版學(xué)校招聘人員筆試歷年典型考題及考點(diǎn)附答案解析
- 大酒店風(fēng)險(xiǎn)分級(jí)管控和隱患排查治理雙體系文件
- 2024年蘇州市職業(yè)大學(xué)單招職業(yè)適應(yīng)性測試題庫附答案
- (高清版)JTGT 3610-2019 公路路基施工技術(shù)規(guī)范
- 術(shù)后惡心嘔吐防治專家意見
- MOOC 醫(yī)學(xué)免疫學(xué)-南昌大學(xué) 中國大學(xué)慕課答案
- JB-T 8640-2014 額定電壓26-35kV及以下電力電纜附件型號(hào)編制方法
- 手術(shù)室穿脫手術(shù)衣小講課
評(píng)論
0/150
提交評(píng)論