骚操作!图片缩小后 内容竟变得完全不同?
共 2421字,需浏览 5分钟
·
2021-03-31 10:43
点击上方“AI算法与图像处理”,选择加"星标"或“置顶”
重磅干货,第一时间送达
编辑:AI算法与图像处理 仅作为学习交流分享,如有侵权请联系删除
项目介绍
大家好,又到了愉快的周末,前段时间再B站看到一个骚操作。
图片缩小后 内容竟变得完全不同!妥妥的加密神技,背后的原理是我们图像处理中的常用操作。最近邻插值的妙用!
视频来源:https://www.bilibili.com/video/BV1Lf4y1r7dZ
先看效果
原理分享
通过放大图片观察可以看到,其实在大图上面存在一些貌似有规律的点,如下所示:
实际上这些点是组成 小图 的点
当对大图进行缩小时,图片显示的结果就是上面一些小点。
那么的大家肯定会有疑问:
1、为什么插入的点,缩小后会变成完全不同的图
2、如何将这些点插入进去
1、为什么插入的点,缩小后会变成完全不同的图
这里需要提前讲解一下图像缩放的原理(知识点!):
图像缩放(image scaling)是指对数字图像的大小进行调整的过程。
这里涉及到的图片的缩小,即从较大尺寸的图片转换为较小尺寸的图片。
这里仅介绍最近邻法插值:
概念:将变换后的图像中的原像素点最邻近像素的灰度值赋给原像素点的方法。
下面这张图可以清晰解释最近邻的实现原理(放大的情况)
下面这张图可以清晰解释最近邻的实现原理(缩小的情况)
假设原图如下所示,图片的尺寸是 3 x 9
此时,在使用最近邻缩放时,且缩放的倍数为 3 时,会默认时用中间的红色方块来代替,进行三倍缩小后的最终效果如下:
使用这种方法来显示你想要实现的效果有两个条件:
1、缩放时采用最近邻缩放
2、已知缩放的倍率或尺寸
这里作者给的demo 都是缩放 10 倍的,如果图片的尺寸有区别需要自定义。
使用上面的骚操作,还能干坏事呢。不,还能干什么大事呢?
比如,学习资料的传播
表面上是一张妹子的图,缩放后:
是一份正经的学习资料!
就问你服不服!‘
代码如下:
import sys
from PIL import Image
#将small_img中的像素用近邻法嵌入到big_img中
def my_nearest_resize(big_img, small_img):
big_w, big_h = big_img.size
small_w, small_h = small_img.size
dst_im = big_img.copy()
stepx = big_w/small_w
stepy = big_h/small_h
for i in range(0, small_w):
for j in range(0, small_h):
map_x = int( i*stepx + stepx*0.5 )
map_y = int( j*stepy + stepy*0.5 )
if map_x < big_w and map_y < big_h :
dst_im.putpixel( (map_x, map_y), small_img.getpixel( (i, j) ) )
return dst_im
if __name__ == '__main__':
big_img=Image.open(sys.argv[1]) # 大图
small_img=Image.open(sys.argv[2]) # 小图
dst_im = my_nearest_resize(big_img, small_img)
dst_im.save(sys.argv[3]) # 嵌入小图像素的大图
项目链接:https://github.com/3150601355/SimpleScaleDown
视频来源:https://www.bilibili.com/video/BV1Lf4y1r7dZ
本文是在这位仁兄上面学到的,佩服佩服!
另外还提供了一些素材在后台,回复 “ 好家伙 ” 即可获取!
学到了的小伙伴欢迎三连一波,下周见!
参考资料
https://zhuanlan.zhihu.com/p/54727827
项目链接:https://github.com/3150601355/SimpleScaleDown
视频来源:https://www.bilibili.com/video/BV1Lf4y1r7dZ
https://zhuanlan.zhihu.com/p/89409337
https://baike.baidu.com/item/%E6%9C%80%E8%BF%91%E9%82%BB%E6%8F%92%E5%80%BC%E6%B3%95/9219642?fr=aladdin
个人微信(如果没有备注不拉群!) 请注明:地区+学校/企业+研究方向+昵称
下载1:何恺明顶会分享
在「AI算法与图像处理」公众号后台回复:何恺明,即可下载。总共有6份PDF,涉及 ResNet、Mask RCNN等经典工作的总结分析
下载2:终身受益的编程指南:Google编程风格指南
在「AI算法与图像处理」公众号后台回复:c++,即可下载。历经十年考验,最权威的编程规范!
下载3 CVPR2021 在「AI算法与图像处理」公众号后台回复:CVPR,即可下载1467篇CVPR 2020论文 和 CVPR 2021 最新论文
点亮 ,告诉大家你也在看