抗打印的水印算法

本文介绍了抗打印水印算法的原理与实现步骤。通过周期图像的自相关函数嵌入和提取水印信息,利用角度作为水印。算法首先将RGB图像转为YCbCr并提取Y分量,然后进行预处理、JND提取、随机块生成、角度计算和嵌入。水印提取则通过自相关、高斯去噪、Hough变换等步骤完成,最终能有效检测出水印信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

抗打印水印算法

以下是余下全文

一、算法的思想

主要思想:周期图像的自相关函数,水印信息实际上是角度

1.嵌入水印思想:将一个有周期性并且有角度的随机块嵌入到图像中。
举个例子:
现有28*7的随机矩阵,之后将此矩阵不断重复知道能够覆盖图像,之后按照一个角度(实际上就是我们的水印信息)将此随机矩阵旋转,最后嵌入到原图像中。
这时候,可能有人会问,这么简单粗暴的将水印嵌入图像中,不是将原来图像的信息给覆盖了吗?不要急,我们之后会提到如何解决此问题(主要引入一个JND概念)。

2.提取水印的思想:将加水印图像的噪声提取出来,之后将“噪声”做自相关,最后通过hough直线检测就能将我们的角度提取出来。
注意点:
一开始读论文的时候,我一直不能理解为什么将嵌入水印的图像自相关之后就能得到结果,此时加水印的图像不是周期图像。
后来我才明白其实可以简单理解为加入的水印其实就是噪声,我们其实提取的是加水印图像的噪声。

二、算法的详细步骤

1.嵌入水印(随机块旋转指定角度,嵌入图像)
嵌入算法总览图
1) RGB图像转化为YCbCr图像,之后提取Y分量,之后都是对Y分量操作的。
2) 预处理,为了破坏原图像存在的周期性。
3) 提取图像的JND,JND可以简单理解为像素点能让人眼识别不出最大的阈值。
4) 将图像分成九块,八块嵌入水印信息,一块是参考块。
5) 随机产生26个随机{0,1}集合,之后进行汉明码编码产生32位水印信息。并且以四位计算出一个角度,一共有八个角度。
6) 随机产生28*7随机块,不断重复随机块,直到能覆盖图像块,之后按照步骤(5)产生的角度进行旋转。
7) 旋转之后的随机块,同时结合JND,嵌入到原图像块中。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值