✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

⛄ 内容介绍

数字化随着互联网络通信的普及和多媒体技术的盛行成为人们日常生活和工作的主流元素。"数字水印"作为一种新技术也在此背景下应运而生,与传统版权保护和信息安全技术相比,数字水印技术是通过特定的算法将水印信息嵌入宿主信息中,它的目的是要既不能影响原始信息为实际应用的服务价值,又能够通过水印检测器提取出嵌入信息。由于数字水印算法涉及各个学科领域,应用范围也就一再被扩大,就目前来看,它已经成为国内外热点研究的技术。本课题的研究紧跟时代发展脚步,提出一种新的数字水印算法方案。本文所做的工作如下: 本文首先概括介绍了数字水印技术研究现状及其基础知识,包括数字水印的概念、理论框架、分类、应用领域以及常见攻击操作等。然后详细论证了本次水印系统方案设计的可行性。再利用Arnold变换对水印图像进行预处理,结合DCT变换、人类视觉系统以及图像纹理与亮度特性,确定嵌入强度因子,在此基础上提出了一种基于DCT域加密自适应水印嵌入与提取算法方案。

⛄ 部分代码

function [wm]=exwmark(embimg)

% exwmark will extract the watermark which were

% embedded by the wtmark function

% embimg    = Embedded image

% wt        = Extracted Watermark

[row clm]=size(embimg);

m=embimg;

%%%%%%%%%%%%%%%%% To divide image in to 4096---8X8 blocks %%%%%%%%%%%%%%%%%%

k=1; dr=0; dc=0;

% dr is to address 1:8 row every time for new block in x

% dc is to address 1:8 column every time for new block in x

% k is to change the no. of cell

for ii=1:8:row % To address row -- 8X8 blocks of image

    for jj=1:8:clm % To address columns -- 8X8 blocks of image

        for i=ii:(ii+7) % To address rows of blocks

            dr=dr+1;

            for j=jj:(jj+7) % To address columns of block

                dc=dc+1;

                z(dr,dc)=m(i,j);

            end

            dc=0;

        end

        x{k}=z; k=k+1;

        z=[]; dr=0;

    end

end

nn=x;

%% Extract water mark %%

wm=[]; wm1=[]; k=1; wmwd=[]; wmwd1=[];

while(k<1025)

    for i=1:32

    kx=x{k}; % Extracting Blocks one by one

    dkx=blkproc(kx,[8 8],@dct2); % Applying Dct

    nn{k}=dkx; % Save DCT values in new block to cross check

    %% Change me for pixel location

    wm1=[wm1 dkx(8,8)]; % Forming a row of 32 by 8,8 element

    % Extracting water mark without dct

     wmwd1=[wmwd1 kx(8,8)];

      k=k+1;

    end

    wm=[wm;wm1]; wm1=[]; % Forming columns of 32x32

    wmwd=[wmwd;wmwd1]; wmwd1=[];

end

for i=1:32

    for j=1:32

        diff=wm(i,j); 

        if diff >=0

            wm(i,j)=0;

        elseif diff < 0

            wm(i,j)=1;

        end

    end

end

wm=wm';

imwrite(wm,'wex.jpg')

⛄ 运行结果

【图像检测】基于DCT和arnold实现水印篡改检测附matlab代码_自适应

⛄ 参考文献

[1] 马婷, 熊顺清, 左海平. 一种基于Arnold-DCT变换的数字水印的MATLAB实现[J]. 科教导刊, 2010, 000(018):72-73.

[2] 吉小娟. 基于DCT的数字水印算法研究及其应用[D]. 华东交通大学.

[3] 冯茂岩, 冯波, 沈春林. 基于分块DCT变换和Arnold置乱的自适应图像水印算法[J]. 计算机应用, 2008, 28(1):171-173.

[4] 王秀丽, 邱联奎. 基于Arnold置乱和DCT变换的图像水印算法[J]. 通信技术, 2010(4):3.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料