В чем разница между cv2.imread и 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 в качестве входных данных. Но у меня просто есть "я". Я должен использовать cv2.imwrite на диск, а затем использовать fp.read()? Есть ли более быстрый способ?
Я использую imdecode изображения mxnet. imdecode принимает 'imb' в качестве входных данных. Но я это то, что я получаю. Как передать "я" в mx.img.imdecode?
1 ответ
Решение
Я не знаком с фреймворком mxnet. Но в соответствии с кодом, который вы дали, я думаю, вам нужны данные изображения в двоичном формате.
Взгляните на API OpenCV cv.imencode ().
import cv2
im = cv2.imread("0.jpg")
img_encode = cv2.imencode('.jpg', im)[1]
Я думаю, что переменная img_encode
это то, что вы хотите.
Или попробуйте использовать cv2.imwrite
более интуитивным способом, как Memory Filesystem в модуле "pyfilesystem". [ссылка на сайт]