如何使用python将Baker映射应用于图像?

2024-04-25 00:46:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我在研究加密算法。我需要在第一步实现Baker映射。但我没有找到贝克地图的算法。这就是matlab代码。(2D Baker map for image pixel shuffling matlab code

我正在写的文章:Article

我回顾了上述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())

这里:create image from a list of pixel values。这就是我能做的。你知道吗

所以。 我想把图像和贝克的地图混在一起。你知道吗


Tags: 代码imageforpngmain地图listrow