Я выполнил шифрование и дешифрование изображения с помощью криптосистемы Эльгамал.Но я не могу преобразовать его обратно в изображение - PullRequest
0 голосов
/ 26 февраля 2019

При преобразовании массива numpy обратно в изображение я получил следующую ошибку:

ValueError: недопустимый литерал для int () с основанием 10:

import cv2 
import numpy 
import matplotlib
from PIL import Image
import elgamal
img = Image.open('C:/Users/hp/Desktop/QuadTree/output.jpg').convert('LA')
img.save('Grayscale.png')
img1 = cv2.imread('Grayscale.png',0)
imgar = numpy.array(img1)
imgStr = numpy.array2string(imgar)
print(img1)

print('Image before Encryption')
keyDict = elgamal.generate_keys()
cipher = elgamal.encrypt(keyDict['publicKey'],imgStr)
print('encrypted value')
print(cipher)
#returns a string
decryptedImgar = elgamal.decrypt(keyDict['privateKey'], cipher)
print('Decrypted value')
print(decryptedImgar)
imgar2 = numpy.array(decryptedImgar)
a = numpy.asarray(imgar2, numpy.uint8)
print(a.shape)

b = abs(numpy.fft.rfft2(a,axes=(0,1)))
b = numpy.uint8(b)
j = Image.fromarray(b)
j.save('img2.png')
...