Рассмотрим (N × N) матрицу или изображение с целочисленными значениями. Отображение
I: (x, y) -> (2x + y, x + y) mod N.
является примером отображения тороидальной квадратной сетки точек на себя,Это имеет интересное свойство, заключающееся в том, что оно искажает изображение, сдвигая и затем перемещая фрагменты за пределы изображения назад, используя функцию modulu mod. Применяемое итеративно, это приводит к рандомизации изображения таким образом, что в конечном итоге возвращает оригинал. Реализуйте следующую последовательность:
I ^ (m + 1) (x, y) = I ^ (m) (2x + y mod (N), x + y mod (N))
и сохраните первые N шагов в файлах или нанесите их в окне рисунка.
В качестве примера изображения вы можете использовать классическое тестовое изображение Лены 512 × 512 с сайта scipy.misc.
Ниже приведены команды:
из scipy.misc import lena I = lena ()
Вычисление отображений x и y и использование индексации массива для копирования значений пикселей.
Этот вопрос касается реализации рандомизации классического изображения 512x512 и последующего использования формулы / последовательности для возврата к нормальному изображению в Python. Я пытался сделать это на ноутбуке Jupyter, но застрял после определенного момента, поэтому мне нужна помощь с кодом.