91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

基于小波變換的數字水印算法matlab代碼,含有各種攻擊的效果對比,對做畢設的同學應該有幫助

資源截圖

代碼片段和文件信息

clc
clear?all;


k=20;??????????
blocksize=8;???%?設置塊的大小

%?讀入原圖像
file_name=‘_lena_std_bw.bmp‘;
cover_object=double(imread(file_name));
?
%?原圖像的行數與列數
Mc=size(cover_object1);?????????%原圖像行數
Nc=size(cover_object2);?????????%原圖像列數

%?最大嵌入信息量
max_message=Mc*Nc/(blocksize^2);

%?讀入水印圖像
file_name=‘c.bmp‘;
message=double(imread(file_name));

%%水印圖像的行數與列數
Mm=size(message1);???????????????%水印行數
Nm=size(message2);???????????????%水印列數

message_vector=reshape(message1Mm*Nm);

%?檢查水印信息是否過大
if?(Mm*Nm>?max_message)
??error(‘水印太大‘)
end

%?產生watermarked_image并寫入原圖信息
watermarked_image=cover_object;


%?將圖像分塊嵌入
%?當?(22)?>?(23)?且?message_pad(kk)=0
%?當?(22)?
%%在提取水印時,如果cD1(22)>cD1(23)便是嵌入了水印的黑色像素,
%%反之則是嵌入了白色像素
x=1;
y=1;
h=waitbar(0‘嵌入水印,請等待‘);
for?(kk?=?1:length(message_vector))

??%?對塊進行DWT變換
??[cA1cH1cV1cD1]?=?dwt2(cover_object(x:x+blocksize-1y:y+blocksize-1)‘haar‘);
??%?如果?message_pad(kk)==?0
??if?(message_vector(kk)?==?0)

????%?且(22)?????if?(cD1(22)???????????temp=cD1(23);
??????????cD1(23)=cD1(22);
??????????cD1(22)=temp;
????end
??
??%?如果message_pad(kk)?==?1?
??elseif?(message_vector(kk)?==?1)
????
????%?且(22)?>?(23)?,交換它們
????if?(cD1(22)?>=?cD1(23))
??????????temp=cD1(23);
??????????cD1(23)=cD1(22);
??????????cD1(22)=temp;
????end
??end
??
??%?檢查(22)?,?(23)的差是否>=?k
??if?cD1(22)?>?cD1(23)
????if?cD1(22)?-?cD1(23)?????????cD1(22)=cD1(22)+(k/2);
????????cD1(23)=cD1(23)-(k/2);?????????
????end
??else?
??????if?cD1(23)?-?cD1(22)?????????cD1(23)=cD1(23)+(k/2);?
????????cD1(22)=cD1(22)-(k/2);
????end
??end
????
??%IDWT
??watermarked_image(x:x+blocksize-1y:y+blocksize-1)=?idwt2(cA1cH1cV1cD1‘haar‘[McNc]);


??%?移動到下一塊
??if?(x+blocksize)?>=?Nc
????x=1;
????y=y+blocksize;
??else
????x=x+blocksize;
??end
??waitbar(kk/length(message_vector)h);
end
close(h);

%?轉換為uint8并寫入dwt_watermarked.bmp
watermarked_image_uint=uint8(watermarked_image);
imwrite(watermarked_image_uint‘dwt_watermarked.bmp‘‘bmp‘);

%?計算psnr值
psnr=psnr(cover_objectwatermarked_image)?

%?顯示圖像
%figure(1)
%imshow(message[]);
%title(‘水印‘);
figure(2)
subplot(121);
imshow(watermarked_image[])
title(‘嵌入水印圖像‘)
subplot(122);
imshow(cover_object[]);
title(‘原圖‘);




%提取源碼
clear?all;

blocksize=8;???%?設置塊的大小

%?讀入嵌入水印圖像
file_name=‘dwt_watermarked.bmp‘;
watermarked_image=double(imread(file_name));

%?嵌入水印圖像的行數與列數
Mw=size(watermarked_image1);?????????%嵌入水印圖像的行數
Nw=size(watermarked_image2);?????????%嵌入水印圖像的列數

%?最大嵌入信息量
max_message=Mw*Nw/(blocksize^2);

%?讀入原始水印
file_name=‘c.bmp‘;
orig_watermark=double(imread(file_name));

%?原始水印的行數與列數
Mo=size(orig_watermark1);????%原始水印的行數
No=size(orig_watermark2);????%原始水印的列數

%?將圖像分塊提取水印
x=1;
y=1;
h=waitbar(0‘水印提取中,請等待‘);
for?(kk?=?1:max_message)?

??%?對塊進行dwt變換
??[cA1cH1cV1cD1]?=?dwt2(watermarked_im

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????263222??2009-04-03?14:02??算法代碼\attack.bmp

?????文件??????14877??2008-05-28?12:51??算法代碼\attackf.jpg

?????文件????????574??2008-05-23?15:33??算法代碼\c.BMP

?????文件????????969??2008-05-23?15:26??算法代碼\c.jpg

?????文件????????190??2008-05-23?15:31??算法代碼\d.BMP

?????文件???????7205??2008-05-27?23:54??算法代碼\dwt.asv

?????文件???????7172??2008-05-30?10:18??算法代碼\dwt.m

?????文件?????263222??2009-04-03?14:01??算法代碼\dwt_watermarked.bmp

?????文件??????44465??2008-05-23?14:58??算法代碼\lina.jpg

?????文件????????572??2008-05-12?11:03??算法代碼\psnr.m

????..A.SH.?????27648??2010-01-16?15:28??算法代碼\Thumbs.db

?????文件?????263222??2008-05-23?14:58??算法代碼\_lena_std_bw.bmp

?????目錄??????????0??2010-01-16?15:28??算法代碼

-----------?---------??----------?-----??----

???????????????893338????????????????????13


評論

共有 條評論