我有此代码:
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将“ imb”作为输入。但是我就是我得到的。如何将“ im”传递给mx.img.imdecode? p>
答案 0 :(得分:1)
我对mxnet框架不熟悉。但是根据您提供的代码,我想您需要二进制格式的图像数据。
看看OpenCV cv.imencode() API。
import cv2
im = cv2.imread("0.jpg")
img_encode = cv2.imencode('.jpg', im)[1]
我认为变量 img_encode
可能正是您想要的。
或者尝试以更直观的方式使用cv2.imwrite
,例如“ pyfilesystem”模块中的“内存文件系统”。[link]