相关疑难解决方法(0)

Python OpenCV从字节字符串加载图像

我正在尝试从像PHP函数的字符串加载图像 imagecreatefromstring

我怎样才能做到这一点?

我有MySQL blob字段图像.我正在使用MySQLdb,并且不希望创建临时文件来处理PyOpenCV中的图像.

注意:需要cv(不是cv2)包装函数

python byte opencv image

34
推荐指数
4
解决办法
5万
查看次数

如何将 numpy 数组(实际上是 BGR 图像)转换为 Base64 字符串?

我知道如何通过读取文件将磁盘中的图像转换为 base64 。但是,在这种情况下,我的程序中已经将图像作为一个 numpy 数组,通过相机捕获,例如image[:,:,3]. 如何将其转换为 base64 字符串,以便仍然可以恢复图像?我试过这个。

from base64 import b64encode    
base64.b64encode(image)
Run Code Online (Sandbox Code Playgroud)

它确实给了我一个字符串,但是当我使用https://codebeautify.org/base64-to-image-converter进行测试时,它无法渲染图像,这意味着转换中有问题。请帮忙。

我知道一个解决方案是将图像作为 jpg 图片写入磁盘,然后将其读入 base64 字符串。但显然,当我可以避免它时,我不想要文件 i/o。

python arrays base64 numpy image-processing

6
推荐指数
1
解决办法
4983
查看次数

从JPG到b64encode到cv2.imread()

对于我正在编写的程序,我正在使用base64.b64encode(f.read(image))从一台计算机传输图像 - 并尝试在接收脚本中读取它而不将其保存到硬盘驱动器(以尽量减少处理时间).我很难搞清楚如何将图像读入OpenCV而不在本地保存.

以下是我发送图像的代码:

f = open(image.jpg)
sendthis = f.read()
f.close()
databeingsent = base64.b64encode(sendthis)
client.publish('/image',databeingsent,0) 
# this is an MQTT publish, details for SO shouldn't be relevant
Run Code Online (Sandbox Code Playgroud)

同时,这是接收它的代码.(这是on_message函数,因为我使用MQTT进行传输.)

def on_message(client, userdata, msg): # msg.payload is incoming data
    img = base64.b64decode(msg.payload)
    source = cv2.imread(img)
    cv2.imshow("image", source)
Run Code Online (Sandbox Code Playgroud)

消息解码后,我有错误:"TypeError:您的输入类型不是一个numpy数组".

我做了一些搜索,我似乎无法找到相关的解决方案 - 有些存在使用b64从文本文件转换为numpy,但没有一个真正涉及使用图像并立即将解码后的数据读入OpenCV而没有中介将其保存到硬盘驱动器的步骤(使用用于在"发送"脚本中读取文件的逆过程).

我仍然是Python和OpenCV的新手,所以如果有更好的编码方法来发送图像 - 无论如何解决问题.图像的发送方式无关紧要,只要我可以在接收端读取它而不将其保存为.jpg到磁盘.

谢谢!

python opencv numpy

4
推荐指数
1
解决办法
6402
查看次数

标签 统计

python ×3

numpy ×2

opencv ×2

arrays ×1

base64 ×1

byte ×1

image ×1

image-processing ×1