Декодирование изображения в кодировке base64 создает плоский массив - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь отправить изображения на сервер алгоритми, кодируя изображение в base64. Но когда я использую модуль base64 для его декодирования, он создает массив 1d, который нельзя использовать в качестве изображения.

img = cv2.imread("/home/abdullah/Desktop/Profile.png")
img = cv2.resize(img, (512, 512))
encoded_string = base64.b64encode(img)
img1 = base64.decodestring(encoded_string)
print(img1)

Фактический результат должен соответствовать исходному изображению:

[[[ 87 129 255][ 88 128 255][ 90 130 255]...[ 54  80 174]

Но после декодирования результат будет:

[ 87 129 255 ...  51 100 156]

Пожалуйста, помогите мне!

1 Ответ

0 голосов
/ 08 января 2019

После того, как я попробовал много решений, я наконец нашел решение.

encoded_string = base64.b64encode(img)
img1 = base64.decodestring(encoded_string)
q = np.frombuffer(img1, dtype=np.uint8)  # Because image was in uint8
q = np.array(q)
q = q.reshape(512, 512,3)
plt.imshow(q)
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...