Это не имеет ничего общего с вашими случайными числами.
Обратите внимание, что вы используете генератор случайных чисел только один раз при создании перемешанных индексов. Когда вы загружаете индексы из файла, генератор случайных чисел не используется, поскольку читается только файл.
Ваша проблема возникает в другом месте: вы сохраняете зашифрованную Лену как .jpg
. Таким образом, скремблированное изображение бедной Лены сжимается, и значения цвета немного меняются. Когда вы снова загружаете изображение и переупорядочиваете индексы, вы не получаете исходные цвета, а только значения после сжатия.
Решение: сохраните ваши изображения как *.png
, и все получится.
Если у вас возникли проблемы с альфа-каналом, просто преобразуйте изображение обратно в RGB: scrambled_img = Image.open(img_path).convert("RGB")