资源简介

武汉理工大学信息理论课程设计代码及报告,选题为数字水印算法,代码已经实现,可重用

资源截图

代码片段和文件信息

clc; 
M=8;

omark=double(imread(‘C:\Users\micheal\Desktop\信息理论课设\new code&picture\3.tif‘))/255;
mo=size(omark1);
no=size(omark2);
% 以下生成水印信息 %
mark=wextend(‘2D‘‘sym‘omarkM); %///////////////////////////////////
[mono]=size(mark);
alpha=30;
rand1=randn(18);
rand2=randn(18);
%%%%%% 读取宿主图像 %%%%%%%%
cimage=imread(‘C:\Users\micheal\Desktop\信息理论课设\new code&picture\2.tif‘);%////////////////////////////////F:\1\nwu.tif   F:\1\Cameraman.tif
figure(1);
subplot(231)imshow(cimage[])title(‘直接提取的图像‘);
[mcnc]=size(cimage);
cda0=blkproc(cimage[88]‘dct2‘); 
%%%%%%% 嵌入水印 %%%%%%%%%
cda0=wextend(‘2D‘‘sym‘cda0M);%////////////////////////////////////////
cda1=cda0;  
for i=M+1:mo-M 
for j=M+1:no-M 
     x=i;y=j;
        if mark(ij)==1
        k=rand1;
        else
        k=rand2; 
        end
    cda1(x+1y+8)=cda0(x+1y+8)+alpha*k(1);
    cda1(x+2y+7)=cda0(x+2y+7)+alpha*k(2);
    cda1(x+3y+6)=cda0(x+3y+6)+alpha*k(3);
    cda1(x+4y+5)=cda0(x+4y+5)+alpha*k(4);
    cda1(x+5y+4)=cda0(x+5y+4)+alpha*k(5);
    cda1(x+6y+3)=cda0(x+6y+3)+alpha*k(6);
    cda1(x+7y+2)=cda0(x+7y+2)+alpha*k(7);
    cda1(x+8y+1)=cda0(x+8y+1)+alpha*k(8);
    end
end
%%%%%% 嵌入水印后图象 %%%%%
cda2=cda1(M+1:mo-MM+1:no-M);
wimage=blkproc(cda2[88]‘idct2‘); 
wimage_1=uint8(wimage);
imwrite(wimage_1‘withmark.bmp‘‘bmp‘);
subplot(232)imshow(wimage[])title(‘嵌入水印后图象‘);
%%%%%%%%%%%%%% 进行攻击测试 %%%%%%%%%%%
disp(‘1-->加入白噪声‘);
disp(‘2-->高斯低通滤波‘);
disp(‘3-->剪切图像‘);
disp(‘4-->旋转攻击‘);
disp(‘5-->直接检测‘)
begin=input(‘请选择攻击(1-5):‘)
switch begin
%%%%%%% 加入白噪声 %%%%%%%%
    case 1
Aimage1=wimage;
Wnoise=20*randn(size(Aimage1));
Aimage1=Aimage1+Wnoise;
subplot(234)imshow(Aimage1[])title(‘加入白噪声后的图象‘);
att=Aimage1;
imwrite(att‘whitenoiseimage.bmp‘);
%%%%%%% 高斯低通滤波 %%%%%%%
    case 2
Aimage2=wimage;
H=fspecial(‘gaussian‘[44]0.5);
Aimage2=imfilter(Aimage2H);
subplot(234)imshow(Aimage2[])title(‘高斯低通滤波后的图象‘);
att=Aimage2;
imwrite(att‘gaussianimage.bmp‘)
%%%%%%%% 剪切攻击 %%%%%%%%
    case 3
Aimage3=wimage;
Aimage3(1:1281:128)=256;
subplot(234)imshow(Aimage3[])title(‘剪切后的图象‘);
att=Aimage3;
imwrite(att‘cutpartimage.bmp‘);
%%%%%%%% 旋转攻击 %%%%%%%%
    case 4
Aimage4=wimage;
Aimage4=imrotate(Aimage410‘bilinear‘‘crop‘);
Aimage_4=mat2gray(Aimage4);
subplot(234)imshow(Aimage_4[])title(‘旋转10 度后的图象‘);
att=Aimage_4;
imwrite(att‘rotatedimage.bmp‘);
%%%%%%% 没有受到攻击 %%%%%%%
    case 5
subplot(234)imshow(wimage[])title(‘直接提取的图像‘);
att=wimage;
imwrite(att‘directimage.bmp‘);
end
%%%%%%%%%%%%% 提取水印 %%%%%%%%%%%%%%
tmark_0=wimage;

tmark_0=wextend(‘2D‘‘sym‘tmark_0M);%///////////////////////////////////
tmark_0=blkproc(tmark_0[88]‘dct2‘);
tmark_1=tmark_0;%//////////////////////////////
pass=zeros(18);
for i=M+1:mo-M
    for j=M+1:no-M
         x=i;y=j;
      
        pass(1)=tmark_0(x+1y+8);
        pass(2)=tmark_0(x+2y+7);
        pass(3)=tmark_0(x+3y+6);
        pa

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    6885600  2013-07-02 15:53  数字水印算法.docx

     文件      33951  2013-07-01 14:13  new code&picture\2.jpg

     文件      66024  2013-07-02 00:24  new code&picture\2.tif

     文件       8208  2013-07-02 00:23  new code&picture\3.jpg

     文件      14632  2013-07-02 00:24  new code&picture\3.tif

     文件      66614  2013-07-02 13:38  new code&picture\cutpartimage.bmp

     文件      66614  2013-07-02 13:35  new code&picture\gaussianimage.bmp

     文件     130130  2013-07-02 13:43  new code&picture\QQ截图20130702134307.jpg

     文件      66614  2013-07-02 13:42  new code&picture\rotatedimage.bmp

     文件       6231  2013-07-02 00:28  new code&picture\Untitled2.m

     文件       4321  2013-07-02 13:32  new code&picture\Untitled8.m

     文件       1403  2013-07-01 22:58  new code&picture\Untitled9.m

     文件      66614  2013-07-02 13:32  new code&picture\whitenoiseimage.bmp

     文件      66614  2013-07-02 13:42  new code&picture\withmark.bmp

     文件     132291  2013-07-02 13:39  new code&picture\剪切.jpg

     文件      74632  2013-07-01 22:54  new code&picture\新建文件夹\airplane.jpg

     文件      66614  2013-07-02 01:03  new code&picture\新建文件夹\cutpartimage.bmp

     文件      66614  2013-07-02 01:04  new code&picture\新建文件夹\directimage.bmp

     文件      66614  2013-07-02 01:02  new code&picture\新建文件夹\gaussianimage.bmp

     文件      67471  2013-07-01 22:40  new code&picture\新建文件夹\linux.jpg

     文件      18675  2013-07-01 22:48  new code&picture\新建文件夹\linux2.jpg

     文件       5755  2013-07-01 21:44  new code&picture\新建文件夹\mark2.jpg

     文件      66614  2013-07-02 01:04  new code&picture\新建文件夹\rotatedimage.bmp

     文件      26659  2013-07-01 22:33  new code&picture\新建文件夹\sea.jpg

     文件       8208  2013-07-01 22:34  new code&picture\新建文件夹\simplepanda.jpg

     文件      66614  2013-07-02 00:28  new code&picture\新建文件夹\whitenoiseimage.bmp

     文件      66614  2013-07-02 01:04  new code&picture\新建文件夹\withmark.bmp

     文件      18375  2013-07-01 22:42  new code&picture\新建文件夹\write.jpg

     文件      38868  2013-07-02 01:03  new code&picture\新建文件夹\剪切图像.jpg

     文件      39382  2013-07-02 01:02  new code&picture\新建文件夹\加入白噪声.jpg

............此处省略11个文件信息

评论

共有 条评论