gpt4 book ai didi

python - 解码 Base64 时出现黑色图像

转载 作者:行者123 更新时间:2023-12-01 02:17:30 25 4
gpt4 key购买 nike

当我解码 Base64 编码的裁剪面部图像时,它变黑并且数据损坏。

这是一段代码:

def create_learn_msg(db_name, person_name, last_location, images, labels):
json_string = {}
cv2.imwrite('%s/%s.png' % ("faces/", "original-image"), images[1])
print(type(images[1])) # <type 'numpy.ndarray'>
image_string = images[1].tostring()
encode_string = base64.b64encode(image_string)
# Decode test
decode_string = base64.b64decode(encode_string)
decode_image = numpy.fromstring(decode_string, dtype=numpy.uint8)

print(type(decode_image)) # <type 'numpy.ndarray'>
cv2.imwrite('%s/%s.png' % ("faces/", "decode-image"), decode_image)

json_string['data'] = {'type': "learn", 'db_name': db_name, 'person_name': person_name,
'last_location': last_location, 'image1': base64.b64encode(images[0]),
'image2': base64.b64encode(images[1]), 'label1': labels[0], 'label2': labels[1]}

return json.dumps(json_string)

最佳答案

我找到了解决方案,我们使用的是 OpenCV 图像,因此我们应该在 Base64 编码之前添加 cv2.imencode ,在 Base64 解码之后添加 cv2.imdecode ,如下所示:

retval, image_string = cv2.imencode('.png', images[1])
encode_string = base64.b64encode(image_string)
decode_string = base64.b64decode(encode_string)
decode_image = numpy.fromstring(decode_string, dtype=numpy.uint8)
original_image = cv2.imdecode(decode_image, 1)

关于python - 解码 Base64 时出现黑色图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48259726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com