cv2.imread 和 open().read 有什么区别?
What is the difference between cv2.imread and open().read?
我有这个代码:
import cv2
im = cv2.imread("0.jpg")
print(len(im.tobytes()))
fp = open("0.jpg", 'rb')
imb = fp.read()
print(len(imb))
他们不一样!现在一个函数以 'imb' 格式作为输入。但是我只有'im'。我必须使用cv2.imwrite到磁盘然后使用fp.read()?
有没有更快的方法?
我使用的是mxnet image imdecode。 imdecode 将 'imb' 作为输入。但我就是我得到的。如何将 'im' 传递给 mx.img.imdecode?
我对 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]
我有这个代码:
import cv2
im = cv2.imread("0.jpg")
print(len(im.tobytes()))
fp = open("0.jpg", 'rb')
imb = fp.read()
print(len(imb))
他们不一样!现在一个函数以 'imb' 格式作为输入。但是我只有'im'。我必须使用cv2.imwrite到磁盘然后使用fp.read()? 有没有更快的方法?
我使用的是mxnet image imdecode。 imdecode 将 'imb' 作为输入。但我就是我得到的。如何将 'im' 传递给 mx.img.imdecode?
我对 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]