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

简介: 【图像检测】基于DCT和arnold实现水印篡改检测附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,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')

⛄ 运行结果

⛄ 参考文献

[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电子书和数学建模资料


相关文章
|
2月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
114 0
|
2月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
|
2月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
147 8
|
2月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
144 8
|
2月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
|
2月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
159 8
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
213 0
|
2月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
109 0
|
2月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
156 12
|
2月前
|
人工智能 数据可视化 网络性能优化
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
106 9

热门文章

最新文章