图片指定区域根据rgb值计算出对应的坐标地址_【水文】震惊!高考期间,这位学生居然能通过图片隐写实现文字通信!...
图片隐写术,是一种将信息藏在图片中的技术。这个技术的前景非常广阔,在网络安全、神经网络对抗攻击等都有一定应用。
2020年7月10日,我开发出图片隐写工具——TPEncoder v1.0.2,可以将海量信息藏匿在图片中。写完还迫不及待地跟别人试了试。
今天山东还在高考,所以标题没啥毛病。(狗头)
据计算,大小为
比如下图:
这张图藏着dio的著名台词:
ジョジョ、人間ってのは能力に限界があるな。俺が短い人生で学んだことは、人間は策を弄 すれば弄するほど、予期せぬ事態で策が崩れ去るってことだ。人間を超えるものにならねばな。俺は、人間をやめるぞ、ジョジョ!
工程源代码与可执行程序:
Text-Picture Encodergithub.com
理论基础
首先,无论是中文、日文、英文还是什么其他语言的字符,在计算机中都有对应的二进制编码方式,如unicode:
而位图中每一个像素也是二进制的,根据RGB的值存储的——第一个字节是B的值,范围为
刘冬煜:七、位图的读入方法zhuanlan.zhihu.com
如果我们将每一个字符的值直接输出到位图的RGB中,最简单的文本转图片编码器就完成了。不过根据像素的值很容易推断出其内容,比如下图中,用工具直接加密源代码:
细心的朋友可以看出,由于一个像素是三个字节,即三个字符的编码值共同决定的,因此最接近灰色的位置可能是由小写字母字符('a'-'z',ASCII取值范围
再比如这篇我的这篇关于摇滚音乐文化的论文:
因此我们希望在这个最简单的编码器中有所加强,使得输出的图片尽可能地接近纯色;或者换句话说,相邻两个像素之间颜色的变化不能太过明显。
有三个维度扰动限制的文本图片编码器
没有扰动限制时,每个像素的取值范围为
因此,如果将每个像素RGB值的可变范围从
虽然需要更大的图片来存储,但有两点更加显著的变化:
- 每个字符占8或16个比特,若每个像素储存的比特数为24,有一个很大的公约数8,这样的话像素和像素之间的关联性就会变得很大,比如全篇文章如果都是汉字,那么,整个图片都会显得很亮。但如果每个像素只储存15个比特有效字符,那么公约数只剩下了1,像素间的关联性被降到了最低。
- 每个像素的变化变得更小,甚至人眼难以观察,进一步降低了隐写被察觉的风险。
如果仅仅是全黑的图片就没意思了,我们还可以修改默认像素颜色。
默认像素颜色的加入
这一步就非常容易了,只需要用户自定义基础值,而不是简单的RGB全0即可。不过需要检查基础值与扰动最大限度的和不能超过255:
工具的展望
除纯色图片隐写之外,编码器工具还可以实现彩色位图的隐写——即默认RGB值并非固定,而是根据额外输入图片里每个位置的RGB值而变化。这样生成的fake image,隐写更难被发现。
图片隐写的起点也未必是左上角像素,可以是任意指定的位置(只要没有超过图片大小),其余像素也可以是随机噪声,以混淆视听。
这些功能,工具暂时还没有实现,不过也比较容易去完成。敬请期待!
图片指定区域根据rgb值计算出对应的坐标地址_【水文】震惊!高考期间,这位学生居然能通过图片隐写实现文字通信!...相关推荐
- python识别图片指定位置文字_python批量识别图片指定区域文字内容
Python批量识别图片指定区域文字内容,供大家参考,具体内容如下 简介 对于一张图片,需求识别指定区域的内容 1.截取原始图上的指定图片当做模板 2.根据模板相似度去再原始图片上识别准确坐标 3.根 ...
- python 制定识别图片的某些区域_python批量识别图片指定区域文字内容
Python批量识别图片指定区域文字内容,供大家参考,具体内容如下 简介 对于一张图片,需求识别指定区域的内容 1.截取原始图上的指定图片当做模板 2.根据模板相似度去再原始图片上识别准确坐标 3.根 ...
- python查找图片区域_python批量识别图片指定区域文字内容
python批量识别图片指定区域文字内容,供大家参考,具体内容如下 简介 对于一张图片,需求识别指定区域的内容 1.截取原始图上的指定图片当做模板 2.根据模板相似度去再原始图片上识别准确坐标 3.根 ...
- html背景图片只显示一张图片,img只显示图片一部分 或 css设置背景图片只显示图片指定区域(示例代码)...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- html如何把图片在背景图一半,img只显示图片一部分 或 css设置背景图片只显示图片指定区域...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- css 设置背景图一半_img只显示图片一部分 或 css设置背景图片只显示图片指定区域...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- python中paste函数的作用,python图片指定区域替换img.paste函数的使用
今天用到了img.paste函数,就写篇笔记记录一下,方便回顾. 做人脸检测,产生负样本的时候想把图片中人连部分用背景的某一部分替换掉,然后再随机裁剪产生负样本,这样比随机裁剪的时候避开人脸区域应该实 ...
- adxl345取出值怎么算角度_怎么通过adxl345输出值计算出倾角?
怎么通过adxl345输出值计算出倾角? 传感器常见问题 / 2012-12-23 此方法是通过勾股定理计算的,请参考以下程序: // 加速的X轴用来算俯仰角;Y轴算横滚角 u16 Gx; u16 G ...
- iOS 截图 对view指定区域 以及 对图片 指定区域截图
//MARK:获取截图,对view 制定区域截图static func getCropImage(_ view:UIView,size:CGSize) -> UIImage {//false是透 ...
最新文章
- 英伟达颠覆CPU!Arm架构专为AI而生,性能超x86十倍
- linux和aix设置时间
- 用一条sql取得第10到第20条的记录-Mssql数据库
- 【阿里云课程】分组网络原理,结构发展及设计改进
- git submoule 更新_微软Surface Duo双屏手机键盘更新:支持分体式输入
- 牛客题霸 NC26 括号生成
- 【转】log4net使用详解
- open ssl里面的自定义get***函数失效
- [css] 为什么说css的选择器一般不要超过三级?
- IOS开发学习笔记024-UIButton和UIImageView的区别
- hat怎么安装mysql_Red Hat Enterprise Linux中怎么安装Mysql+apache+php+zend
- [总结]用U盘安装Ubuntu 16.04
- 【KMP】KMP 字符串匹配算法
- 锐捷云终端计算机,锐捷RG-RCM1000-Office智能云终端控制器
- 快手火山美拍秒拍抖音映客yy小影视频批量下载毛驴保存去水印助手
- 个人配置--常用软件保护色设置
- springboot 集成 grpc 和 protobuf(二) | 在实际项目中使用 grpc 和 protobuf
- 高并发系统负载均衡与实时监控的实用方案
- 统计字符个数怎么用c语言写,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
- python快速找到列表中出现最多的元素