DWT在栅格数据嵌入不可见水印的应用
1.1.1 嵌入水印
- 有意义的文字->二值图像->二值序列->置乱、加密->二值水印信息。
- 读取栅格数据,并进行M*M的分块处理,M为偶数。设分块区域,尺寸为偶数,满足DWT的条件
- 获取内所有像元属性值,得到参与变换的数组序列(可以是);对进行DWT变换,然后从小波系数中获取其低频分量区域。
- 基于低频分量,构建数据-水印同步函数:
中心(或最接近中心左上角)所对应的低频分量系数为,将其他低频分量系数相加得到 。T 是固定值,与水印信息长度 N 有关,表示同步函数的跳跃间隔,一般应大于水印嵌入时的量化步长h。利用同步函数可找到区域内所对应的水印信息在水印序列中的索引号。
- 获取水印位对应的水印信息,将水印信息嵌入到低频分量区域所对应的低频分量系数中
当水印信息位 =1时,按照下式进行水印信息的嵌入:
当水印信息位 =0时,按照下式进行水印信息的嵌入:
- 对含水印信息的小波系数进行小波逆变换处理,得到含水印分块数据序列 。而将数组元素 与对应的原始数据对比,对于变化幅度较大的栅格地理数据点,用数据拉回操作来修正水印误差,最后将相应的数据放回分块区域 内对应的位置
- 对所有分块数据进行水印嵌入操作,而后按分块复原策略将水印分块数据组织起来得到含水印的栅格地理数据。
- 获取栅格地理数据,然后对数据进行M*M分块,
- 统计每个分块区域的像元属性特征,而后进行小波变换处理,并获取其低频分量区域。然后,按照水印嵌入时所构建的数据-水印同步函数,进行水印信息位的定位和提取,水印信息提取的位置与水印嵌入位置相同,这个过程实际是水印嵌入的逆过程。提取方法如下式所示:
1.1.2 水印检测(默认未受到攻击)
- 提取的水印信息位根据模糊模式识别的最大隶属度原则进行判别。定义第i 位水印信息 在空间上对 1 的隶属度为: 中1的个数/T ;第i 位水印信息 在空间上对-1 的隶属度为:中-1的个数/T 。根据最大隶属度原则,来确定第i位水印信息是 1 还是-1。而后对提取出的水印信息进行如下式处理:
则提取出水印信息。
由于有意义二值图像水印信息在嵌入二值栅格地理数据前对其进行了加密、置乱等数据预处理,因此需要对所提取的水印信息 进行相应的解密、逆置乱等数据预处理,以便于水印信息的可视化显示。最后,对水印信息以二值图像的方式组织并显示以进行判读。
DWT在栅格数据嵌入不可见水印的应用的更多相关文章
- Robust Mesh Watermarking
之前看了一篇题为"Robust Mesh Watermarking"的论文,查阅资料的时候发现了一篇与之很相似的名为"三维模型数字水印系统的设计与实现"的中文论 ...
- 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月底了,突然开始有 ...
- 基于LSB的图像数字水印实验
1. 实验类别 设计型实验:MATLAB设计并实现基于LSB的图像数字水印算法. 2. 实验目的 了解信息隐藏中最常用的LSB算法的特点,掌握LSB算法原理,设计并实现一种基于图像的LSB隐藏算法. ...
- C++实现网格水印之调试笔记(四)—— 完成嵌入
接下来的问题是,当模型是对称的时候,结果是符合预期的,但是当模型是不对称的时候,结果是错误的,如下: 输入: 顶点:233 输出: 这又是什么鬼...,我的马呢!!! 看来逻辑上还是有错误 注意这时候 ...
- C# ASP.NET MVC 图片盗链 加水印 的问题
ImageClass using System; using System.Collections; using System.IO; using System.Drawing; using Syst ...
- C#图片处理示例(裁剪,缩放,清晰度,水印)
C#图片处理示例(裁剪,缩放,清晰度,水印) 吴剑 2011-02-20 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian/ 前言 需求源自项目中的一些应用,比 ...
- 黄聪:C#图片处理封装类(裁剪、缩放、清晰度、加水印、生成缩略图)有示例(转)
C#图片处理示例(裁剪,缩放,清晰度,水印) 吴剑 2011-02-20 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian/ 前言 需求源自项目中的一些应用,比 ...
- C++实现网格水印之调试笔记(六)—— 提取完成
昨天在修改了可以调试出来的错误之后,提取出的水印和嵌入的仍然相去甚远.这个时候我觉得有必要整理一下嵌入和提取的整个过程. 嵌入过程: Step1,嵌入的时候对网格的拉普拉斯矩阵L进行特征值分解,得到特 ...
- C++实现网格水印之调试笔记(五)—— 提取出错
在实现提取水印的过程中,遇到了一些问题 首先还是根据论文中的思路来梳理一下整个提取流程 读入两个模型,一个原始模型ori_mesh, 一个水印模型wm_mesh. 将两个模型对齐(即放在同一个坐标系下 ...
随机推荐
- nginx日志文件的定时切割与归纳
应用环境:生产环境中的Nginx服务器,由于访问日志文件增长速度非常快,日志太大会严重影响服务器效率.同时,为了 方便对日志进行分析计算,须要对日志文件进行定时切割.定时切割的方式有按月切割.按天切割 ...
- Golang Kernel For Jupyter-NoteBook
上篇回顾:VSCode and NoteBook for JavaScript 正常流程 安装Go语言:sudo apt install golang 安装内核的相关依赖包:sudo apt inst ...
- ElasticSearch 2 (9) - 在ElasticSearch之下(图解搜索的故事)
ElasticSearch 2 (9) - 在ElasticSearch之下(图解搜索的故事) 摘要 先自上而下,后自底向上的介绍ElasticSearch的底层工作原理,试图回答以下问题: 为什么我 ...
- axios请求、返回拦截器
1.http 请求拦截器 axios.interceptors.request.use(function(config){ //在发送请求之前做些什么 return config }), functi ...
- FindExecutable:查找与一个指定文件关联在一起的程序的文件名
百度百科:http://baike.baidu.com/view/1285880.htm ------------------------------------------------------- ...
- Circular view path xxx would dispatch back to the current handler URL,Check your ViewResolver setup
Circular view path xxx would dispatch back to the current handler URL 通过原因分析,造成问题有两个因素:1). 缺省转发, 2). ...
- zuul的学习
1.zuul的介绍 https://blog.csdn.net/tianyaleixiaowu/article/details/78083269
- Go条件语句、switch和循环语句
一:Go条件语句 package main import "fmt" //========go条件判断语句=== func main() { { fmt.Println(" ...
- 关于MyBase 7.0 破解的方法
Mybase 是一个功能强劲且可随心所欲自定义格式及层次关系的通用资料管理软件, 可用于管理各种各样的信息,如一:各类文档.文件.资料.名片.事件.日记.项目.笔记.下载的精华.收集的各种资料等等,即 ...
- eclipse设置
一.更改文件默认编码 一般每个项目及其项目中的文件的编码都要保持一致,主要是为了不让保存的内容出现乱码:一般会设置UTF-8这个编码格式 设置文件默认编码: windows-->General- ...