介绍
首先是一个概念:置乱。意即将图像的信息次序打乱,使其变换成杂乱无章难以辨认的图像。
用处大概就是:对图像加个密,除非你暴力破解,否则你不知道这是个啥。所以就能安心地在百度云上存些蜜汁图片(≧▽≦)/啦
Arnold变换
也叫做猫脸变换,因为提出该算法的人当时是在一张猫的图片上操作,因此而得名= =
这个变换公式很简单:
这里N代表图像的长宽,意即需要是正方形。当然,如果你想在长方形上尝试,把长方形切割成多个正方形,分别对正方形操作即可。Xn和Yn是原图像像素点位置,Xn+1和Yn+1该像素点的新位置。
有两点十分神奇,我也不知道为什么:
- 单次变换后,所有像素点一一映射,也就是单映射。
- 经过一定的变换次数后,图像会变换成原来的样子。
算法实现大致思路
原图到新图就不说了,直接照着公式来。还原的话,只需要在公式两边乘上逆矩阵即可。
具体可以看代码的arnold和iarnold部分:传送门
参考资料
广告时间