暗水印——空域:二值化图像水印(看不见我吧 啦啦啦~)

news/2024/11/19 15:20:38/文章来源:https://www.cnblogs.com/Jcloud/p/18197861

引言

    随着计算机和网络技术的飞速发展,信息的安全保护问题日益突出。数字图像、音频和视频等多媒体数字产品愈来愈需要一种有效的版权保护方法——水印技术,通常用于保护知识产权、防止未经授权的访问、作弊等。广义上可以把水印技术划分为四大类:图像水印、视频水印、音频水印和文本水印。这些水印技术都有其独特的特点和应用场景,需要根据具体的数字媒体保护需求进行选择使用。

技术与实践意义

    本文以“多通道、多层水印”为目标,旨在让操作人员通过自定义的方式,制作水印信息,深入体验水印“添加”、“提取”的全过程,及水印抵抗攻击手段后的“鲁棒性”对比。

二值化图像水印算法

水印添加

    1. 通过canvas将原图转化为argb数组,同时用canvas绘制同等大小的水印图像,同样转化为argb数组; 2. 将原图的argb中的red位置元素的最后一位舍去(red取值为0~255)即偶数不变,奇数-1;3. 判断水印图像的同一像素点的元素的alpha的值是否为0,不为0说明当前像素点有文字像素存在, 将原图的argb中的red位置元素的最后一位置为1,即原值+1; 4. 将原图的改变后的argb数组重新写入canvas中并生成base64图像。 

提取水印

    遍历修改后的图的argb数组,如果red位置为奇数(最后一位为1), 则将对应位置的水印像素点rgb置为255,否则置为0,alpha位置都是255, 然后将生成的水印argb数组通过canvas显示在img中。

工程效果展示

水印的添加与提取

    本文以一个落地的简易数字水印系统为例。系统可以定义水印类型,上传图像、文本、音频等,生成可见或不可见的水印,之后可以提取出水印信息。通过一些攻击手段验证水印算法的鲁棒性,如PS等。用户输入用户名及手机号,验证通过后,即可进入系统界面,所添加的水印信息来源于用户名及手机号,如下图:

image.png

水印的鲁棒性测验

    用户通过一些攻击手段可以验证水印算法的鲁棒性,如PS等,主要有二十种攻击操作的测试图片,测试素材如下图:

image.png

    这里列举暗水印——空域算法中图像色相+20的攻击实验:

image.png
image.png

    以上是对系统操作的一个简易步骤说明,此算法计算复杂度相对较低;对图像视觉效果影响很小;但鲁棒性较低,对比明水印,效果还是可观的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/707777.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树链剖分代码细解

树链剖分代码细解,HAOI2015树上操作代码作样例。总结回顾类文章,酌情观看。Shape Of You头图 Linux找图太难了呜呜The club isnt the best place to find a lover So the bar is where I go Me and my friends at the table doing shots Drinking faster and then we talk sl…

系统国际化之多语言解决方案| 京东物流技术团队

1. 背景随着京东各业务板块国际化进程的不断推进,诸多业务已经融入了多元文化中,一个一体化的多语言系统解决方案成为各个技术团队讨论的焦点。国际物流系统凭借在国际化领域多年的经验,特别是在系统多语言处理上长期的经验积累,总结了一套标准的系统多语言框架,旨在为大家…

MDS800-16-ASEMI整流模块MDS800-16

MDS800-16-ASEMI整流模块MDS800-16编辑:ll MDS800-16-ASEMI整流模块MDS800-16 型号:MDS800-16 品牌:ASEMI 封装:MDS 平均正向整流电流(Id):800A 最大反向击穿电压(VRM):1600V 产品引线数量:5 产品内部芯片个数:6 产品内部芯片尺寸:102MIL 峰值正向漏电流:<10u…

低功耗、高性价比的XCKU3P-1FFVA676E、XCKU3P-L1FFVB676I、XCKU3P-L2FFVB676E现场可编程门阵列产品概述

Kintex UltraScale+ 器件在 FinFET 节点中提供高性价比,为需要高端功能(包括 33Gb/s 收发器和 100G 连接内核)的应用提供了经济高效的解决方案。Kintex UltraScale+ 器件在 FinFET 节点中提供高性价比,为需要高端功能(包括 33Gb/s 收发器和 100G 连接内核)的应用提供了经…

CaffeineCache Api介绍以及与Guava Cache性能对比| 京东物流技术团队

一、简单介绍: CaffeineCache和Guava的Cache是应用广泛的本地缓存。 在开发中,为了达到降低依赖、提高访问速度的目的。会使用它存储一些维表接口的返回值和数据库查询结果,在有些场景下也会在分布式缓存上再加上一层本地缓存,用来减少对远程服务和数据库的请求次数。 Caff…

nps内网穿透使用

原版的https://github.com/ehang-io/nps已经停止更新 新版的地址 https://github.com/yisier/nps 一、安装 可以下载已经编译好的程序安装。网上有很多教程。 也可以下载源码编译,需要注意的是如果到cmd/nps下面编译,运行的时候,需要把conf目录拷贝到nps目录下才能运行,缺少…

(二)Redis 数据类型与结构

Redis 数据类型与结构1、值的数据类型 Redis “快”取决于两方面,一方面,它是内存数据库,另一方面,则是高效的数据结构。Redis 键值对中值的数据类型,也就是数据的保存形式有5种:String(字符串)、List(列表)、Hash(哈希)、Set(集合)和 Sorted Set(有序集合)。这…

高薪线下周末班马上开班,手把手带你提升职业技能

管理学大师彼得德鲁克说“终身学习是现在社会的生存法则”,而现实中,很少有人能清醒地意识到这一点,人们总是习惯在舒适区兜圈,重复做已经掌握的事情,对真正需要突破的职业困境视而不见。 偶尔看到同事跳槽涨薪,技术越来越娴熟,自己也期望着可以跟他们一样,幻想着有一天…

dapr离线安装

dapr离线包下载地址: https://github.com/dapr/cli/releases 下载完以后放到C:\dapr目录下,然后配置上环境变量即可,可以用dapr --version查看是否配置成功 初始化包下载地址: https://github.com/dapr/installer-bundle/releases 下载 daprbundle_windows_amd64.zip 解压以后…

dapr离线初始化

打开地址: https://github.com/dapr/installer-bundle/releases 下载 daprbundle_windows_amd64.zip 解压以后,放到此目录下,注意放的是daprbundle文件夹下内容 D:\daprbundle_v1.13.2指定目录进行初始化: dapr init --from-dir D:\daprbundle_v1.13.2 最后初始化完成,如下图…

LDAP数据备份与恢复

一、命令形式 以整体备份(迁移)来示范 1.1 说明使用命令:导出---slapcat 导入--- slapaddopenldap的数据目录是/var/lib/ldap/备份可以通过直接备份/var/lib/ldap/文件夹,恢复也是直接使用备份的文件夹替换就行,此处不做演示下面使用命令行形式进行演示 1.2 导出数据文件 …

pyqt5 子线程如何操作主线程GUI

一.简介 在使用pyqt5编写gui时遇到两个问题,会导致界面崩溃,今天就围绕这两个问题来简单说明和改进。 1.在主线程中使用while无限循环会导致界面崩溃 2.在子线程中操作主线程gui会导致界面崩溃 二.步骤说明 1.在主线程中使用while无限循环会导致界面崩溃 1)错误代码import s…