DCT域图像水印技术

基于离散余弦变换(DCT)的水印算法 基于离散余弦变换(DCT)的水印算法是一种在数字图像中嵌入水印信息的技术,利用DCT将图像从空间域转换到频域,从而实现水印的嵌入和提取。这种技术具有良好的能量集中性和低相关性,能够在保证水印嵌入和提取的同时减小图像失真。 阅读详情

DCT域图像水印技术

1数字水印技术的概念和特点

数字水印(Digital Watermark)技术是将与多媒体内容相关或不相关的一些标示信息直接嵌入多媒体内容当中,但不影响原内容的使用价值,并不容易被人的知觉系统觉察或注意到。通过这些隐藏在多媒体内容中的信息,可以达到确认内容创建者、购买者,或者是否真实完整。数字水印是信息隐藏技术的一个重要研究方向。

作为数字水印技术基本上具有下面几个方面的特点:

安全性:数字水印的信息应是安全的,难以篡改或伪造,同时,应当有较低的误检测率,当原内容发生变化时,数字水印应当发生变化,从而可以检测原始数据的变更;当然数字水印同样对重复添加有有强的抵抗性

隐蔽性:数字水印应是不可知觉的,而且应不影响被保护数据的正常使用;不会降质;

鲁棒性:是指在经历多种无意或有意的信号处理过程后,数字水印仍能保持部分完整性并能被准确鉴别。可能的信号处理过程包括信道噪声、滤波、数/模与模/数转换、重采样、剪切、位移、尺度变化以及有损压缩编码等。主要用于版权保护的数字水印易损水印(Fragile Watermarking),主要用于完整性保护,这种水印同样是在内容数据中嵌入不可见的信息。当内容发生改变时,这些水印信息会发生相应的改变,从而可以鉴定原始数据是否被篡改。

水印容量:嵌入的水印信息必须足以表示多媒体内容的创建者或所有者的标志信息,或购买者的序列号,这样有利于解决版权纠纷,保护数字产权合法拥有者的利益。尤其是隐蔽通信领域的特殊性,对水印的容量需求很大。

2 基于DCT域的图像数字水印技术

离散余弦变换(Discrete Cosine Transform)属于正交变换图像编码方法中的一种。正交变换图像编码始于1968年。当时安德鲁斯(Andrews)等人发现大多数自然图像的高频分量相对幅度较低,可完全舍弃或者只用少数码字编码,提出不对图像本身编码,只对其二维傅立叶(DFT)系数进行编码和传输。但DFT是一种正交变换,运算量很大,常常使实时处理发生困难,第二年他们就用Walsh-Hadamard变换(WHT)取代DFT可以使运算量明显减少,这是因为WHT变换只有加减法而无需乘法。但是更有意义的是离散余弦变换和离散正旋变换的出现,它们具有快速算法,精确度高。其中最重要的是1974年提出的DCT,因为其变换矩阵的基向量很近似于托伯利兹矩阵的特征向量,而托伯利兹矩阵又体现了人类语言及图像信号的相关性。因此,DCT常常被认为是语音与图像信号变换的准最佳变换。

图像是二维的,所以在研究时主要用到二维DCT,以及二维IDCT来对图像进行处理。

2.1 离散余弦变换(DCT)的定义

数字图像X(m,n)是具有M行N列的一个矩阵。为了同时减弱或去除图像数据相关性,可以运用二维DCT,将图像从空间域转换到DCT变换域。

根据定义,二维离散余弦变换(DCT)定义如下:

式中:m,k=0,1,…,M-1; n,

 

=0,1,…,N-1。

二维逆离散余弦变换(IDCT)的定义如下:

式中:m,k=0,1,…,M-1; n,

=0,1,…N-1。

2.2 离散余弦变换的特点

在基于DCT的变换编码中,图像是先经分块(8×8或16×16)后再经DCT,这种变换是局部的,只反映了图像某一部分的信息。当然也可以对整幅图像的特点,但是运算速度比分块DCT要慢。图像经DCT后,得到的DCT图像有三个特点:

一是系数值全部集中到0值附近(从直方图统计的意义上),动态范围很小,这说明用较小的量化比特数即可表示DCT系数;

二是DCT变换后图像能量集中在图像的低频部分,即DCT图像中不为零的系数大部分集中在一起(左上角),因此编码效率很高。

三是没有保留原图像块的精细结构,从中反映不了原图像块的边缘、轮廓等信息,这一特点是由DCT缺乏时局域性造成的。

如下左图2—1是原始图像经过DCT变换后的系数图像为图2—2。两条线划分出图像的低频、中频和高频分别所在的矩形区域。可以看出,图像DCT变换后大部分参数接近于零,只有左上角的低频部分有较大的数值,中频部分参数值相对较小,而大部分高频参数值非常小,接近于零。


  图 2—1:原图像        图 2—2:变换后的系数图像

2.3 离散余弦变换的数字水印算法

根据离散余弦变换后的参数性质,本文采用了以ZigZag方式重排变换域系数的方法,选出中频分量,用数字水印序列对其进行非线性调制。水印检测时,待检测图像仍按比方式选择变换域系数,与待水印进行相关运算,与阈值比较来判断是否所含水印。

离散余弦域的数字水印算法的具体实现分为三步:宿主图像的变换,数字水印的嵌入,数字水印的检测。

2.3.1 宿主图像的DCT变换

对于N×N大小的256灰度级的宿主图像I进行N×N二维离散余弦变换(DCT)。以ZigZag方式对于DCT变换后的图像频率系数重新排列成一维向量Y={y1, y2,…yN×N}.

并取出序列中第L+1到L+M的中频系数部分,得到YL={ YL+1, YL+2,…, YL+M}

2.3.2 数字水印的嵌入

假设数字水印W为一服从标准正态分布的随机实数序列,用数字序列表示为W={W1 ,W2 ,…WM }。用W对Y序列中第L+1到L+M的中频系数部分的值进行修改,按以下公式进行:

经过修改的系数序列Y′ ={ Y1′, Y2′,... Y′N×N} 以ZigZag逆变换形式重组,再进行N×N DCT逆变换,得到嵌有数字水印的图像I′。

2.3.3 数字水印的检测

待检测的可能含有水印的图像I" 。假设I"未损失大量信息,可以近似认为I"= I′。在此假设下可以运用统计的方法来检测水印。

(1)待检水印域待检图像中频系数相关性的测定

同样对I′进行DCT变换,以ZigZag方式将DCT系数排成一维向量Y "= { Y1 ", Y2 ",... YN×N"}。由于假设I"=I′,则Y"= Y ′。

取出Y"(等于Y′)中第L+1到L+M的中频系数部分YL "={ YL+1 ", YL+2"’,... YL+M"}。假设待检测的数字水印X={X1,X2,... XM}为一符合标准正态分布的实数伪随机序列。则可以通过待检水印与图像中频系数作相关运算来判断是否所加入了水印。只有在待检水印为所加入的水印时,才能得到较大的相关值。否则相关值很小,接近于零。

用符号E表示数学期望,得到:

(2)阈值的确定

根据中心极限定理,参照水印匹配与不匹配两种情况得到阈值为

。由于原始图像难以得到,因此从实用性出发,阈值定义为:       

综上所述,满足

时,则表明检测到匹配水印。否则,未检测到匹配的水印。

3 基于离散余弦变法(DCT)实现数字水印技术

3.1matlab源程序

%嵌入水印的程序代码

M=256; %原图像长度

N=32; %水印图像长度

K=8;

I=zeros(M,M);J=zeros(N,N);BLOCK = zeros(K,K);

%显示原图像

subplot(3,2,1);I=imread('mona.bmp','bmp');imshow(I);title('原始公开图像');

%显示水印图像

subplot(3,2,2);J=imread('flag.bmp','bmp');imshow(J);title('水印图像');

%嵌入水印

for p=1:N

 for q=1:N

  x=(p-1)*K+1;

  y=(q-1)*K+1;

  BLOCK=I(x:x+K-1,y:y+K-1);

  BLOCK=dct2(BLOCK);

  if J(p,q)==0

    a=-1;

  else

    a=1;

  end

  BLOCK(1,1)=BLOCK(1,1)*(1+a*0.03);

  BLOCK=idct2(BLOCK);

  I(x:x+K-1,y:y+K-1)=BLOCK;

 end

end

%显示嵌入水印后的图像

subplot(3,2,3);imshow(I);title('嵌入水印后的图像');

imwrite(I,'watermarked.bmp','bmp');

%从嵌入水印的图像中提取水印

I=imread('mona','bmp');

J=imread('watermarked.bmp','bmp');

for p=1:N

for q=1:N

x=(p-1)*K+1;

y=(q-1)*K+1;

BLOCK1=I(x:x+K-1,y:y+K-1);

BLOCK2=J(x:x+K-1,y:y+K-1);

BLOCK1=idct2(BLOCK1);

BLOCK2=idct2(BLOCK2);

a=BLOCK2(1,1)/BLOCK1(1,1)-1;

if a<0

W(p,q)=0;

else

W(p,q)=1;

end

end

end

%显示提取的水印

subplot(3,2,4);

imshow(W);

title('从含水印图像中提取的水印');

%水印攻击测试

M=256;

N=32;

K=8;

I=zeros(M,M);

J=zeros(M,M);

w=zeros(N,N);

BLOCK1=zeros(K,K);

BLOCK2=zeros(K,K);

%对嵌入水印后的图像进行JPEG压缩

L=imread('watermarked.bmp','bmp');

imwrite(L,'attack.jpg','jpeg','Quality',45);

J=imread('attack.jpg','jpeg');

subplot(3,2,5);imshow(J);title('压缩后的图像');

I=imread('mona','bmp');

%从压缩的图像中提取水印

for p=1:N

for q=1:N

x=(p-1)*K+1;

y=(q-1)*K+1;

BLOCK1=I(x:x+K-1,y:y+K-1);

BLOCK2=J(x:x+K-1,y:y+K-1);

BLOCK1=idct2(BLOCK1);

BLOCK2=idct2(BLOCK2);

a=BLOCK2(1,1)/BLOCK1(1,1)-1;

if a<0

W(p,q)=0;

else

W(p,q)=1;

end

end

end

%显示提取的水印

subplot(3,2,6);

imshow(W);

title('从经过压缩的图像中提取的水印');

3.2程序结果图

3.3小结

实验中用的原始图像是大小为256×256的8级灰度图像,水印图像为32×32带有数字水印字样的二值图像。实验结果表明,原始图像嵌入水印后和原始图像看起来没有差别。对信号进行JPEG压缩处理操作,都能很好的抽取出水印。

基于DCT的数字水印算法 基于MATLAB的离散余弦的数字水印系统一、课题介绍数字水印技术近年来得到了较大的发展,基于变换域的水印技术是目前研究的热点。数字水印是利用数字作品中普遍存在的冗余数据和随机性,把标识版权的水印信息嵌入到数字作品中,从而可以起到保护数字作品的版权或其完整性的一种技术。一个有效的数字水印系统至少具备以下三个最基本的特性:1.安全性:数据信息隐藏于数据图像中,不是文件头中,文件格式的变换不应导致水印信... 阅读详情

相关推荐

【毕业设计系列】054:基于dct和Arnold算法的视频数字水印(抗H264压缩攻击)

在大学课题设计和毕业设计中,要求实现基于DCT和Arnold置乱算法的数字图像水印,包括水印嵌入和水印提取两部分, 在水印嵌入中采用二级DCT分解,并对水印图像采用Arnold置乱算法,该算法可以对抗多种攻击方式,比如高斯滤波,中值滤波,H264压缩。

限时优惠:付费49.9元,订阅MATLAB毕业设计专栏,可赠送该付费专栏中任意代码1份! 638

【图像隐写】基于matlab LSB数字水印嵌入提取【含Matlab源码 2412期】

LSB数字水印嵌入提取 完整代码,直接运行,适合小白!可提供运行操作视频!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1824

65、图像水印与信息安全全解析

本文全面解析了图像水印与信息安全相关的核心技术、应用场景以及未来发展趋势。内容涵盖水印技术分类(如可见水印、不可见水印、鲁棒水印等)、变换域水印(DCT域和DWT域)、水印攻击类型与防御策略、图像认证方法(包括选择性认证和可逆认证)以及图像取证技术(如基于传感器噪声和元数据的分析)。同时,文章结合艺术作品版权保护、新闻媒体和电子商务等实际应用案例,展示了水印与信息安全技术的重要性。最后,探讨了未来技术融合趋势,包括人工智能、区块链在图像安全领域的应用,以及应对深度伪造等新兴挑战的策略。

tomato的博客 112

【图像修复】基于matlab GUI Lucy_Richardson迭代法图像修复【含Matlab源码 846期】

Lucy_Richardson迭代法图像修复 完整代码,直接运行,适合小白!可提供运行操作视频!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2041

30、图像水印技术全解析

本文全面解析了图像水印技术,涵盖其在DCT域和DWT域的算法原理、性能特点及应用场景。重点讨论了无意义水印和有意义水印的具体实现方法及其在版权保护、内容认证和隐密通信等领域的应用。同时分析了水印技术的发展趋势,包括与深度学习的结合、多模态水印和自适应水印技术的前景。文章旨在为读者提供一个系统性的水印技术概述,并为实际应用中的技术选择提供参考。

h3i4j的博客 109

28、图像水印技术与CT重建方法解析

本文介绍了图像处理领域的两项关键技术:图像水印技术和CT重建方法。重点解析了图像水印的嵌入与检测过程、特性(显著性、鲁棒性、安全性)、测量标准以及在DCT域和DWT域的实现方法。同时,探讨了水印技术的发展趋势,包括深度学习应用、多模态水印、自适应水印及区块链结合等研究方向。

h3i4j的博客 86

基于MATLAB DCT域图像水印技术

水印容量:嵌入的水印信息必须足以表示多媒体内容的创建者或所有者的标志信息,或购买者的序列号,这样有利于解决版权纠纷,保护数字产权合法拥有者的利益。安全性:数字水印的信息应是安全的,难以篡改或伪造,同时,应当有较低的误检测率,当原内容发生变化时,数字水印应当发生变化,从而可以检测原始数据的变更;变换后大部分参数接近于零,只有左上角的低频部分有较大的数值,中频部分参数值相对较小,而大部分高频参数值非常小,接近于零。离散余弦域的数字水印算法的具体实现分为三步:宿主图像的变换,数字水印的嵌入,数字水印的检测。

2401_84149290的博客 1295

DCT域图像水印技术:MATLAB实现与鲁棒性攻击测试

图像信息隐藏与版权保护是数字媒体安全的重要方向。离散余弦变换(DCT)作为频域分析的核心工具,能够将图像能量集中到低频系数,通过微调中频系数实现不可感知的水印嵌入。相较于空域直接叠加,DCT域水印在JPEG压缩、噪声和旋转等攻击下表现出更强的鲁棒性。本文围绕基于DCT的图像水印技术,介绍MATLAB环境下分块DCT变换、中频系数相对大小编码水印、PSNR质量评估和BER误码率测试的完整实验流程。通过调整嵌入强度alpha,可在不可见性与鲁棒性之间取得平衡,适合课程设计、工程验证以及版权保护应用场景。实践表明

weixin_34072296的博客 157

【图像隐藏】基于离散余弦变换DCT域实现图像水印嵌入与提取附Matlab代码

图像隐藏技术作为信息安全领域的重要分支,近年来得到了广泛的研究和应用。其核心目标是将秘密信息(水印)嵌入到载体图像中,并在不影响载体图像质量的前提下,可靠地提取水印信息。本文将深入探讨基于离散余弦变换 (Discrete Cosine Transform, DCT) 域实现图像水印嵌入与提取的方法,分析其原理、优势以及存在的挑战。DCT变换是一种常用的正交变换,因其良好的能量聚集特性而被广泛应用于图像压缩领域,如JPEG标准。

j_jinger的博客 998

深入解析与实现DCT域图像数字水印算法

图像水印技术是一种在数字图像中隐藏信息的方法,主要用于版权保护、信息认证等应用。它通过在图像中嵌入特定的水印信息,而不影响图像的正常使用质量,以实现对原图的保护或跟踪。离散余弦变换(Discrete Cosine Transform, DCT)是信号处理领域中广泛应用的一种变换技术,尤其是用于图像和视频信号的压缩处理。DCT变换将信号从空间域转换至频率域,能够有效地分离信号的高频和低频成分。

weixin_33193177的博客 1379

citespace基本操作

聚类分析 时间线图 这些结果都是高被引文献的相关呈现结果,代表该领域的文献基础 下面可以看看该project的前沿领域 选择keywords 和term go! 调整显示方式 生成凸线图:表示 在某个研究领域或者时间段内 ,大家对某个领域或者某个词的关注度突然增高,凸显前沿方向的转变 以此来发现热点 ...

生信小博士的博客 1万+
上一篇: DCT域图像水印技术
下一篇: MATLAB(DCT DWT)
GPT_code
博客等级 码龄3年 3543粉丝 338原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值