【发布时间】:2018-12-07 09:21:13
【问题描述】:
我有这个代码:
import cv2
im = cv2.imread("0.jpg")
print(len(im.tobytes()))
fp = open("0.jpg", 'rb')
imb = fp.read()
print(len(imb))
他们是不同的!现在一个函数将“imb”格式作为输入。但我只有“我”。我必须使用 cv2.imwrite 到磁盘然后使用 fp.read() 吗? 有更快的方法吗?
我使用 mxnet 图像 imdecode。 imdecode 将“imb”作为输入。但我就是我得到的。如何将“im”传递给 mx.img.imdecode?p>
【问题讨论】:
-
是的,有一种更快的方法可以使用
cv2.imencode将图像转换为内存中的png压缩数据 -
cv2.imread()了解 JPEG 标头和 DCT 系数、量化、熵编码并读入图像并将其组织成一个 BGR 像素的矩形网格。fp.read()只是为您提供文件中的所有字节,而不是图像。