Реализация последовательности в Python, которая будет рандомизировать изображение таким образом, чтобы в конечном итоге вернуть исходное изображение - PullRequest
0 голосов
/ 06 ноября 2019

Рассмотрим (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, но застрял после определенного момента, поэтому мне нужна помощь с кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...