Я работаю по алгоритму шифрования. Мне нужно реализовать Baker Map на первом этапе. Но я не нахожу ничего об алгоритме Карты Бейкера. Просто есть этот код Matlab. ( 2D карта Бейкера для пиксельного тасования кода Matlab изображения )
Статья, над которой я работаю: Статья
Я рассмотрел приведенный выше код Matlab и в результате некоторых исследований сделал следующее:
#lenna image: 512x512
def main():
(Image.open('Lenna.png').convert('LA')).save("LennaGray.png")
image = Image.open("LennaGray.png")
row, col=image.size
for i in range(row):
for j in range(col):
if 1<=j and j<row/2:
newcord1=((2*(j-1))+((i-1)%2))
newcord2=math.floor(0.5*(i-mod(i-1,2))+1)
im(i,j)=im(newcord2,newcord1)
elif row/2<=j and j<=row:
newcord1=((2*(j-64))+(i%2))
newcord2=math.floor(0.5*(i-(i%2))+63)
im(i,j)=im(newcord2,newcord1)
print(list(image.getdata()))
del image
if (__name__=="__main__"):
main()
Получить значения пикселей:
list(image.getdata())
Здесь: создать изображение из списка значений пикселей . Это то, что я могу сделать.
Итак.
Я хочу смешать изображение с картой Бейкера.