python – 将原始图像与可能不需要原始图像的已编辑图像进行比较的替代方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 将原始图像与可能不需要原始图像的已编辑图像进行比较的替代方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1791字,纯文字阅读大概需要3分钟。
内容图文
![python – 将原始图像与可能不需要原始图像的已编辑图像进行比较的替代方法](/upload/InfoBanner/zyjiaocheng/704/6a083269e1724a9486e65e76fdd5126a.jpg)
前段时间我做了一个python脚本来存储图像中的数据,但它有一个小问题,我只是想知道是否有人可能会想到另一种方法.
一个非常基本的想法是它会腌制一些东西,然后在第一个版本中,它直接将ASCII数字写为像素(因为一切都在0到255之间).这将导致图像看起来有点像电视噪音.
当写入实际图像时,它会检测到需要调整的每个像素的最小位数,因此人眼不会注意到它,它会分割数据并从每个像素中加上或减去几位,第一个像素存储它正在使用的方法.然后,我将URL作为文件存储在图像中,并可以通过使用第一个像素中给出的规则将URL中的原始图像与当前图像进行比较来反转它.
一点python伪代码,以防我没解释得那么好:
original_image = (200, 200, 200, 100, 210, 255...)
stuff_to_store = "test"
#Convert anything into a list of bytes
data_numbers = [bin(ord(x)) for x in cPickle.dumps(stuff_to_store)]
#This is calculated by the code, but for now it's 2
bytes_per_pixel = 2
store_mode = 'subtract'
#Join the bytes and split them every 2nd character
new_bytes = "".join(data_bytes)
new_bytes_split = [new_bytes[i:i+bytes_per_pixel] for i in range(0, len(new_bytes), bytes_per_pixel)]
#Edit the pixels (by subtraction in this case)
pixel_data = []
for i in range(len(original_image)):
pixel_data = original_image[i] - int(new_bytes_split[i])
但是,由于脚本的整个要点是通过修改像素来存储内容,因此将原始图像URL存储为文件会让人觉得有点不耐烦.我想把URL存储为前几个像素,但每当图像不是灰色时,它最终都会有一条明显的线条.而且,这种方式非常低效,因为它需要两个图像才能正常工作,所以如果有人知道如何避免这样做,那就太棒了.
原始代码是here,如果有人感兴趣,我在学习编写文档之前就已经做到了,所以有点难以弄清楚,现在就问这个,因为我正在计划重写它并希望做得更好.
解决方法:
这是将数据嵌入到每通道8位RGB图像文件中像素的每个颜色通道的最低有效位的一种方法,使用PIL进行图像处理.
下面的代码说明了Python中的位流处理.它的效率相当高(只要这样的操作在Python中可以有效),但它牺牲了可读性和效率.必要时使用简单.
内容总结
以上是互联网集市为您收集整理的python – 将原始图像与可能不需要原始图像的已编辑图像进行比较的替代方法全部内容,希望文章能够帮你解决python – 将原始图像与可能不需要原始图像的已编辑图像进行比较的替代方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。