【MATLAB图像处理实用案例详解(8)】—— 图像数字水印算法

这篇具有很好参考价值的文章主要介绍了【MATLAB图像处理实用案例详解(8)】—— 图像数字水印算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景意义

数字水印技术作为信息隐藏技术的一个重要分支,是将信息(水印)隐藏于数字图像、视频、音频及文本文档等数字媒体中,从而实现隐秘传输、存储、标注、身份识别、版权保护和防篡改等目的。
随着 1996 年第一届信息隐藏国际学术研讨会的召开,数字水印技术的研究得到了迅速的发展,不少政府机构和研究部门加大了对其的研究力度,其中包括美国财政部、美国版权工作组、美国洛斯阿莫斯国家实验室、美国海陆空军研究实验室、欧洲电信联盟、德国国家信息技木研究中心、日本 NTT 信息与通信系研究中心、麻省理工学院、南加利福尼亚大学、普渡大学、剑桥大学、瑞士洛柔联邦工学院、微软公司、CA 公司等研究机构。另外,在 TEEE 和 SPIE 等一些重要国际会议上,也专门开辟了与数字水印相关的专题。欧洲几项较大的工程项目(如 VIVA 和ACTS)中也均有关于图像水印方面的专题研究。我国在这一领域的研究也基本与欧美等科技强国保持同步,目前国内已经有不少科研机构投人到数字水印方面的研究中去。1999年底,第一届全国信息隐藏学术研讨会(CIHW)在北京电子技术应用研究所召开。国家“863 计划”“973项目”(国家重点基础研究发展规划)、国家自然科学基金等也都对图像水印的研究有项目资金支持。
【MATLAB图像处理实用案例详解(8)】—— 图像数字水印算法

二、基本原理

图像数字水印技术以一定的算法将一些标志性信息嵌人到图像中,而不影响原图像的面质和使用。水印信息可以是序列号或有特殊意义的文本等,通过和载体图像的紧密结合而达到识别图像来源、作者等版权信息的目的。与传统加密技术不同,图像水印技术的目的并不在于直接阻止对图像的盗版,而是着眼于如何将版权信息加入到正版图像,并能够从盗版图像中提取出先期加人的版权方面的证据(水印),在能够证明图像确系盜版之后再以法律的手段对盜版者实施制裁。
图像数字水印处理可分为对水印的嵌人处理和对已嵌人的水印的检测处理两部分。从图像处理的角度看,嵌人水印可以看作是在强背景(原始图像)下叠加一个弱信号(水印),由于人的视觉系统对图像的分辨率有限,因此只要叠加的信号在幅度上低于某个对比度门限,就可以使人眼完全感受不到叠加信号的存在,这个对比度门限主要受系统的空间、时间和频率特征的影响。因此,在不改变视觉效果的前提下,对原始图像做一定的调整,嵌入一些额外信息是完全有可能的。

由于图像数字水印的目的不在于限制其正常的图像复制,而在于保证隐藏其內的水印不被侵犯和发现。因此,在向图像嵌人水印时。必领考虑到正常的信息操作对水印所造成的威胁,以及要求水印能够对通常的图像编辑操作具有一定的抵御、免疫能力。根据图像水印的目的和技术要求,可以总结出图像水印的一些特点。
①鲁棒性 (robustness):图像一旦嵌人了水印后,图像与水印将紧密地融合在一起,而且不因因像的某种处理而导致隐含的水印信息丢失。这里所谓的“处理”,包括了噪声干扰、滤波、平滑、增强、重采样、有损编码压缩、D/A 或 A/D转换等各种常规的图像处理手段。图像水印除了能对无意识的图像处理操作具有抵御能力外,还应具各抵扰恶意删除攻击、逃惑攻击等有意识政击的能力,除非攻击方对加人的水印有足够的先验知识,否则任何破坏和去除水印的企图都将严重损坏因像的面质,使破解后的图像毫无利用价值。
②不可检测性(undetectability):水印和图像应具有一致的特性,如统计噪声分布等,这样可以使非法攻击者无从确认该图像是否含有水印信息。
③透明性 (invisibility):此特性主要应用了人眼的生理特点,经过隐藏处理的图像水印不会对原始图像有视觉可察的画质降低现象。
④低复杂性:水印的嵌人和提取识别算法应简单易行。
⑤自恢复性:嵌入了水印的图像在经过一系列的处理和变换后,可能对原图产生了较大的破坏,这就要求从留下的片段中仍可提取出水印(或水印残片),并根据检验出的结果确认出水印的存在。

三、算法介绍

3.1 数字水印嵌入

以一副512X512大小的lena灰度图像和64X64大小的水印灰度图像为例说明水印嵌入的具体步骤
第一步,对512X512的原始图像I系数矩阵分成8X8大小的块,则原图一共被分成64X64块。对每个块进行二维离散余弦变换(DCT)。
第二步,原图就变成了64X64个8X8大小的系数矩阵,正好64X64大小的水印图像J中矩阵的每个系数对应于原始图像的每个块,水印的嵌人利用公式:F’ (u,v)=F(u,v)+aw(i) ,其中F(u,v)为原始图像的DCT系数,a为嵌入强度,w(i)(i=1,2,3,…)是每点的水印像素。
第三步,对这64X64块嵌入水印信息的矩阵做二维DCT逆变换,再合并成一个整图,就得到了嵌入水印后的图像。
代码如下:

%读入原始图像和水印图像并显示
I=imread('lena512.jpg');
figure(1);
subplot(2,2,1);
imshow(I);
title('原始图像');
J=imread('xiaohui64.jpg');
subplot(2,2,2);
imshow(J);
title('水印图像');
%对水印图像进行arnold置乱预处理
H=double(J);
tempImg=H; %图像矩阵赋给tempImg
for n=1:5  %置乱次数
for u=1:64
for v=1:64
temp=tempImg(u,v);
ax=mod((u-1)+(v-1),64)+1;%新像素行位置
ay=mod((u-1)+2*(v-1),64)+1;%新像素列位置
outImg(ax,ay)=temp;
end
end
tempImg=outImg;
end
G=uint8(outImg);%得到置乱后的水印图像
%嵌入水印
for p=1:64
for q=1:64 %p、q都是1到64,是因为有64*64个8*8的块,每次循环处理一个块
BLOCK1=I(((p-1)*8+1):p*8,((q-1)*8+1):q*8);%每个8*8的块
BLOCK1=dct2(BLOCK1);%做2维的DCT变换
BLOCK1(4,5)=BLOCK1(4,5)+0.2*G(p,q);%在每块DCT系数的4行5列处嵌入水印,系数可调
W(((p-1)*8+1):p*8,((q-1)*8+1):q*8)=idct2(BLOCK1);%做DCT反变换
end
end
%显示嵌入水印后的图像
imwrite(uint8(W), 'lena_mark.jpg ', 'jpg');
subplot(2,2,3);
imshow('lena_mark.jpg');
title('嵌入水印后的图像');

【MATLAB图像处理实用案例详解(8)】—— 图像数字水印算法
上图中0.2为可调参数嵌入强度系数,可以发现,随着嵌入强度的增大,嵌入水印后的图像效果越来越差。

3.2 数字水印提取

水印的提取是根据水印的嵌入策略执行相应的逆过程来提取水印。因此,在水印提取过程中,只须将嵌人水印后的图像块经DCT变换后的系数减去相应强度的水印信息就可以提取出嵌人该块的水印信息,再对所有块提取出来的水印信息进行反置乱就得到提取出来的水印图像。
水印提取的具体步骤如下:
第一步,读入嵌入水印后的图像W和原始水印图像I。
第二步,分别对W和I进行分块DCT变换,得到每个块的系数矩阵。
第三步,对每个8X8块的中频系数位置上,利用公式 w ( i ) = F ′ ( u , v ) − F ( u , v ) a w(i) = \frac{F^{'}(u,v)-F(u,v)}{a} w(i)=aF(u,v)F(u,v)计算出每一块的水印信息,合并成一个整图,就得到了提取出来的水印图像。
代码如下:

for p=1:64
for q=1:64
BLOCK1=W(((p-1)*8+1):p*8,((q-1)*8+1):q*8);
BLOCK2=I(((p-1)*8+1):p*8,((q-1)*8+1):q*8);
BLOCK1=dct2(BLOCK1);
BLOCK2=dct2(BLOCK2);
Y(p,q)=(BLOCK1(4,5)-BLOCK2(4,5))/0.2;
end
end
% 对水印进行arnold反置乱
for n=1:43 % 循环次数为48-5
for u=1:64
for v=1:64
temp1=Y(u,v);
bx=mod((u-1)+(v-1),64)+1;
by=mod((u-1)+2*(v-1),64)+1;
outImg1(bx,by)=temp1;
end
end
Y=outImg1;
end
%显示提取出来的水印图像
imwrite(uint8(Y), 'watermark.jpg ', 'jpg');
subplot(2,2,4);
imshow('watermark.jpg');
title('提取出来的水印图像');

四、程序实现

程序运行结果如下:
【MATLAB图像处理实用案例详解(8)】—— 图像数字水印算法


ok,以上便是全部内容了,如果对你有所帮助,记得点个赞哟~文章来源地址https://www.toymoban.com/news/detail-499573.html

到了这里,关于【MATLAB图像处理实用案例详解(8)】—— 图像数字水印算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (数字图像处理MATLAB+Python)第七章图像锐化-第四节:频域高通滤波与综合案例

    频域高通滤波 :是一种基于频域表示的图像处理技术,用于增强或突出图像中高频成分的方法。它通过将图像转换到频域,应用高通滤波器来抑制或减弱低频成分,从而增强图像的边缘和细节 在频域中,可以设计各种类型的高通滤波器来实现不同的频率响应 理想的高通滤波

    2024年02月08日
    浏览(61)
  • 数字图像处理-matlab图像内插

    目标各像素点的灰度值代替源图像中与其最邻近像素的灰度值 参考博客 假设一个2X2像素的图片采用最近邻插值法需要放大到4X4像素的图片,右边该为多少? 最近邻插值法坐标变换计算公式: s r c X = d s t X ∗ ( s r c W i d t h / d s t W i d t h ) srcX=dstX*(srcWidth/dstWidth) src X = d s tX ∗

    2024年02月03日
    浏览(61)
  • 基于matlab的数字图像处理之彩色图像处理

    一、实验目的 (1)了解如何利用RGB分量生成简单的图像。 (2)熟练掌握RGB彩色模型转换到HIS彩色模型的过程。 (3)熟练掌握RGB图像的彩色分割。 (4)熟练掌握彩色图像如何在向量空间中进行边缘检测。 二、实验仪器(软件平台)     计算机、MATLAB软件 三、实验原理

    2024年02月06日
    浏览(48)
  • matlab数字图像处理之图像增强

    图像处理 基本目的之一是改善图像质量,而改善图像最常用的技术是图像增强的目的是为了改善图像的视觉效果,使图像更加清晰,便于人和计算机对图像进一步的分析和处理 图像质量 的基本含义是指人们对一幅图像视觉感受的评价。图像增强的目的就是为了改善图像显示

    2024年02月04日
    浏览(58)
  • 数字图像处理实验之Matlab对图像的基本处理

    1、提取Lena图像的左半上角部分,与原始Lena图像在同一个figure中显示,并做适当命名 效果图 2、利用 imnoise , 对原始Lena图像叠加高斯噪声,产生4幅、14幅、140幅的含噪图像。对这些含噪图像采用 相加  运算,来验证、比较图像相加消除叠加性噪声的效果。将原始图像、1幅噪

    2024年02月03日
    浏览(64)
  • 数字图像处理 关于matlab的图像变换

    熟悉及掌握图像的傅里叶变换、离散余弦变化原理及性质,实现图像的频率域变换。 1. 读入一幅图像,分别为图像添加叠加密度为0.04的椒盐噪声,均值为0方差为0.02的高斯噪声,做FFT变换。将原始图像、原始图像频谱图、添加噪声后的图像,以及噪声图像的频谱图同时显示出

    2024年02月05日
    浏览(54)
  • 数字图像处理之matlab实验(五):形态学图像处理

    常见的形态学处理包括腐蚀、膨胀、开运算、闭运算。不同的操作有不同的作用,同样的操作在不同类型的图片上也有不同效果,具体效果如下表格所示。要求熟练掌握对二值图像的形态学处理。 不同操作对不同类型图像处理效果 一、对二值图像进行处理 1、结构元素 在开

    2024年02月04日
    浏览(65)
  • 数字图像处理之matlab大作业:自制图像处理小工具

    学习的过程向来不是容易的,创造一个作品的过程更是不容易的。因此,在文章的最后,提供了两个现成的示例代码,大家直接可以拿来运行。在完成大作业的时候,大家可以在已有作品的基础上,按照自己的需求进行修改,添加我们课程要求的功能,并体会如何完成一个完

    2024年02月10日
    浏览(46)
  • 【数字图像处理】实验三 图像分割(MATLAB实现)

    目录 一、实验意义及目的 二、实验内容 三、Matlab 相关函数介绍 四、算法原理 五、参考代码及扩展代码流程图 (1)参考代码流程图 (2)扩展代码流程图 六、参考代码 七、实验要求 (1)尝试不同的阈值选择方法,实现灰度图像二值化 (2)变换参数实现形态学滤波,查看滤波

    2024年02月05日
    浏览(51)
  • 【数字图像处理】实验二 图像增强(MATLAB实现)

    目录 一、实验意义及目的 二、实验内容 三、Matlab 相关函数介绍 四、算法原理 五、参考代码及扩展代码流程图  (1)参考代码流程图 (2)扩展代码流程图 六、参考代码 七、实验要求 (1)对以上处理变换参数,查看处理效果; (2)更改伪彩色增强方法为热金属编码或彩

    2023年04月12日
    浏览(86)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包