В чем разница между cv2.imread и open (). Read? - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть этот код:

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 image.imdecode принимает 'imb' в качестве входных данных.Но я это то, что я получаю.Как передать 'im' в mx.img.imdecode?

https://github.com/apache/incubator-mxnet/issues/13545

1 Ответ

0 голосов
/ 07 декабря 2018

Я не знаком с фреймворком mxnet.Но согласно приведенному вами коду, я думаю, вам нужны данные изображения в двоичном формате.

Взгляните на OpenCV cv.imencode () API.

import cv2
im = cv2.imread("0.jpg")
img_encode = cv2.imencode('.jpg', im)[1]

Я думаю, что переменная img_encode - это то, что вам нужно.

Или попробуйте использовать cv2.imwrite более интуитивно, как Memory Filesystem в модуле "pyfilesystem". [ссылка]

...