首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用python在json中通过kafka发送和接收图像

使用python在json中通过kafka发送和接收图像
EN

Stack Overflow用户
提问于 2021-07-06 18:15:10
回答 3查看 67关注 0票数 0

我正在为一个计算机视觉项目使用Kafka pipeline。我必须将JSON对象摄取到管道中,并在使用者端接收它们。我是这样做的:

代码语言:javascript
复制
>>> a = some_image_numpy_array
>>> b = base64.b64encode(a)
>>> c = b.decode('utf-8')

如何在消费者端再次解码成NumPy数组格式?我不能将图像作为字节转储到JSON中。我必须使用utf解码或str()将其转换为字符串。

注意:我不能简单地进行base64编码并将其转储到json中,因为字节不是json可序列化的。

EN

回答 3

Stack Overflow用户

发布于 2021-07-06 18:21:18

您可以使用此base64.b64decode

代码语言:javascript
复制
>>> a = some_image_numpy_array
>>> b = base64.b64encode(a)
>>> c = base64.b64decode(b)
票数 0
EN

Stack Overflow用户

发布于 2021-07-06 18:24:20

代码语言:javascript
复制
%python
import base64
encoded = base64.b64encode(b'a0JD0000006SxKJMA0')
print(base64.b64decode(encoded))

将为您提供解码字符串

代码语言:javascript
复制
b'a0JD0000006SxKJMA0'
票数 0
EN

Stack Overflow用户

发布于 2022-02-22 06:08:31

你可以这样做:

代码语言:javascript
复制
# convert image to string
image_to_kafka = base64.b64encode(cv2.imencode('.jpg', img)[1]).decode()

# put string image into dictionary
some_dict = {
             'some_id': 123, 
             'image': image_to_kafka
            }

# send using your producer
producer.send('some_topic', value=some_dict)

在我的例子中,producer是这样创建的:

代码语言:javascript
复制
producer = KafkaProducer(bootstrap_servers=[kafka_server],
                     value_serializer=lambda x:json.dumps(x).encode('utf-8'))

但你必须考虑到这一点:

  • 您在上传图像时会有一些延迟(在我的情况下是2秒/张)
  • 您在读取图像时会有一些延迟(在我的情况下是0.5秒/张)

IMHO,更好的选择是使用一些存储,在那里您保存图像,并只发送ID和/或路径到图像。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68268674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档