如何使用默认的PRNG和索引恢复python中的混洗数组?

时间:2018-05-12 16:54:02

标签: python numpy random pillow

将图像移动到数组然后展平它并使用给定的x种子进行混洗,应该很容易使用给定的种子和洗牌过程中的索引来解除它。

  • 阅读图片IMG.jpg
  • random.seed(x)和shuffle - >索引,shuffle_img.jpg
    1. 反移

然而,这个结果显示得到的IMG是相似的,但不是1:1作为具有这种颗粒噪声的输入图像。

如果不是RNG,只有PRNG,为什么不洗牌会产生如此多的噪音?

1 个答案:

答案 0 :(得分:2)

这与您的随机数无关。

请注意,在创建混洗索引时,只使用随机数生成器一次。从文件加载索引时,不使用随机数生成器,因为只读取文件。

您的问题发生在其他地方:您将加扰的Lena保存为.jpg。因此,可怜的Lena的加扰图像被压缩并且颜色值稍微改变。当您再次加载图像并重新排序索引时,您不会返回原始颜色,而只会获得压缩后的值。

解决方案:将图片保存为*.png,一切正常。

如果您遇到alpha通道问题,只需将图片转换回RGB:scrambled_img = Image.open(img_path).convert("RGB")