在决定不使用OpenCV后,因为我只使用了其中的一个函数,所以我想用其他函数替换{
这是我到现在为止一直在用的东西:
content = cv2.imencode('.png', image)[1].tostring()
image = vision.types.Image(content=content)
现在我希望在不使用OpenCV的情况下实现同样的效果。
到目前为止我发现的事情:
我认为值得注意的是,我的numpy数组是一个只有2维的二进制图像,所有函数都将在API中使用,因此避免将png保存到磁盘并重新加载。
纯Python中的PNG writer
如果您坚持使用或多或少纯python,那么下面的函数来自ideasman对this question的回答是有用的。在
将Numpy数组写入PNG格式的字节文本,编码为base64
为了将灰度图像表示为RGBA图像,我们将矩阵堆叠成4个通道并设置alpha通道。(假设你的二维数字阵列叫做“img”)。由于PNG坐标的工作方式,我们还垂直翻转numpy数组。在
^{pr2}$测试编码是否正常工作
最后,为了确保编码正常,我们解码base64字符串并将输出作为“test”写入磁盘_输出.png". 检查这是否与您开始时使用的图像相同。在
备选方案:只需使用PIL
但是,我假设你是在使用一些库来真正地阅读你的图像?(除非您正在生成它们)。大多数用于读取图像的库都支持这种功能。假设您使用的是PIL,您也可以尝试以下代码片段(from this answer)。它只是将文件保存在内存中,而不是磁盘上,并使用它生成base64字符串。在
相关问题 更多 >
编程相关推荐