1.1.1 嵌入水印

  1. 有意义的文字->二值图像->二值序列->置乱、加密->二值水印信息。
  2. 读取栅格数据,并进行M*M的分块处理,M为偶数。设分块区域,尺寸为偶数,满足DWT的条件
  3. 获取内所有像元属性值,得到参与变换的数组序列(可以是);对进行DWT变换,然后从小波系数中获取其低频分量区域。
  4. 基于低频分量,构建数据-水印同步函数:

中心(或最接近中心左上角)所对应的低频分量系数为,将其他低频分量系数相加得到 。T 是固定值,与水印信息长度 N 有关,表示同步函数的跳跃间隔,一般应大于水印嵌入时的量化步长h。利用同步函数可找到区域内所对应的水印信息在水印序列中的索引号。

  1. 获取水印位对应的水印信息,将水印信息嵌入到低频分量区域所对应的低频分量系数中

当水印信息位 =1时,按照下式进行水印信息的嵌入:

当水印信息位 =0时,按照下式进行水印信息的嵌入:

  1. 对含水印信息的小波系数进行小波逆变换处理,得到含水印分块数据序列 。而将数组元素  与对应的原始数据对比,对于变化幅度较大的栅格地理数据点,用数据拉回操作来修正水印误差,最后将相应的数据放回分块区域 内对应的位置
  2. 对所有分块数据进行水印嵌入操作,而后按分块复原策略将水印分块数据组织起来得到含水印的栅格地理数据。
    1. 获取栅格地理数据,然后对数据进行M*M分块,
    2. 统计每个分块区域的像元属性特征,而后进行小波变换处理,并获取其低频分量区域。然后,按照水印嵌入时所构建的数据-水印同步函数,进行水印信息位的定位和提取,水印信息提取的位置与水印嵌入位置相同,这个过程实际是水印嵌入的逆过程。提取方法如下式所示:

1.1.2 水印检测(默认未受到攻击)

  1. 提取的水印信息位根据模糊模式识别的最大隶属度原则进行判别。定义第i 位水印信息 在空间上对 1 的隶属度为: 中1的个数/T ;第i 位水印信息 在空间上对-1 的隶属度为:中-1的个数/T 。根据最大隶属度原则,来确定第i位水印信息是 1 还是-1。而后对提取出的水印信息进行如下式处理:

则提取出水印信息。

由于有意义二值图像水印信息在嵌入二值栅格地理数据前对其进行了加密、置乱等数据预处理,因此需要对所提取的水印信息 进行相应的解密、逆置乱等数据预处理,以便于水印信息的可视化显示。最后,对水印信息以二值图像的方式组织并显示以进行判读。

DWT在栅格数据嵌入不可见水印的应用的更多相关文章

  1. Robust Mesh Watermarking

    之前看了一篇题为"Robust Mesh Watermarking"的论文,查阅资料的时候发现了一篇与之很相似的名为"三维模型数字水印系统的设计与实现"的中文论 ...

  2. An Oblivious Watermarking for 3-D Polygonal Meshes Using Distribution of Vertex Norms

    An Oblivious Watermarking for 3-D Polygonal Meshes Using Distribution of Vertex Norms 转眼就11月底了,突然开始有 ...

  3. 基于LSB的图像数字水印实验

    1. 实验类别 设计型实验:MATLAB设计并实现基于LSB的图像数字水印算法. 2. 实验目的 了解信息隐藏中最常用的LSB算法的特点,掌握LSB算法原理,设计并实现一种基于图像的LSB隐藏算法. ...

  4. C++实现网格水印之调试笔记(四)—— 完成嵌入

    接下来的问题是,当模型是对称的时候,结果是符合预期的,但是当模型是不对称的时候,结果是错误的,如下: 输入: 顶点:233 输出: 这又是什么鬼...,我的马呢!!! 看来逻辑上还是有错误 注意这时候 ...

  5. C# ASP.NET MVC 图片盗链 加水印 的问题

    ImageClass using System; using System.Collections; using System.IO; using System.Drawing; using Syst ...

  6. C#图片处理示例(裁剪,缩放,清晰度,水印)

    C#图片处理示例(裁剪,缩放,清晰度,水印) 吴剑 2011-02-20 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian/ 前言 需求源自项目中的一些应用,比 ...

  7. 黄聪:C#图片处理封装类(裁剪、缩放、清晰度、加水印、生成缩略图)有示例(转)

    C#图片处理示例(裁剪,缩放,清晰度,水印) 吴剑 2011-02-20 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian/ 前言 需求源自项目中的一些应用,比 ...

  8. C++实现网格水印之调试笔记(六)—— 提取完成

    昨天在修改了可以调试出来的错误之后,提取出的水印和嵌入的仍然相去甚远.这个时候我觉得有必要整理一下嵌入和提取的整个过程. 嵌入过程: Step1,嵌入的时候对网格的拉普拉斯矩阵L进行特征值分解,得到特 ...

  9. C++实现网格水印之调试笔记(五)—— 提取出错

    在实现提取水印的过程中,遇到了一些问题 首先还是根据论文中的思路来梳理一下整个提取流程 读入两个模型,一个原始模型ori_mesh, 一个水印模型wm_mesh. 将两个模型对齐(即放在同一个坐标系下 ...

随机推荐

  1. ubuntu 百度云

    下载链接:https://pan.baidu.com/s/1HBu5T3PZ8JsS93PgOKnUYw提取密码:6J1A 在终端中输入命令: sudo dpkg -i bcloud_3..1_all ...

  2. [luogu5077][Tweetuzki 爱等差数列]

    题目链接 思路 数学题 首先列出等差数列求和的式子. \[S = \frac{(n + m)(n - m + 1)}{2}(n为末项,m为首项)\] \[S * 2= (n + m)(n - m + ...

  3. [hdu5215][Cycle]

    题目链接 思路 首先可以通过二分图染色找到奇环和一部分偶环.这个比较简单 但是还有一种偶环容易忽略. 如图(别问我为啥没节点4) 第一次可以找到1-2-3-1)这个奇环,第二次可以找到(3-5-6-3 ...

  4. django orm跨表查询废话最少最精简版

    在model.py中: class B1(models.Model): u1= models.CharField(max_length=32) #多 class B2(models.Model): f ...

  5. FluentScheduler定时器计划任务

    http://www.cnblogs.com/lgxlsm/p/6734011.html 用了FluentScheduler后,再也比想用timer计时器了. FluentScheduler 是 .N ...

  6. HTML学习笔记Day10

    一.Form表单补充(收集用户信息) 1.button按钮(不进行提交) 1)语法1:<input type="button" value="按钮内容" ...

  7. (最小生成树) codeVs 1231 最优布线问题

    题目描述 Description 学校需要将n台计算机连接起来,不同的2台计算机之间的连接费用可能是不同的.为了节省费用,我们考虑采用间接数据传输结束,就是一台计算机可以间接地通过其他计算机实现和另外 ...

  8. (线段判交的一些注意。。。)nyoj 1016-德莱联盟

    1016-德莱联盟 内存限制:64MB 时间限制:1000ms 特判: No通过数:9 提交数:9 难度:1 题目描述: 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我们 ...

  9. SVN提交前准备

    操作步骤1: 操作步骤2: 操作步骤3: 操作步骤4: 操作步骤5: 操作步骤6:查看 操作步骤7:ignore 操作步骤8:直接提交项目

  10. CodeForces1065F 树形dp

    http://codeforces.com/problemset/problem/1065/F 你有一棵带有n个结点的树,根是结点1.有一个标记,最初在根结点处.你可以将标记移动到其他结点处.假设标记 ...