Вы должны преобразовать ваше изображение обратно из массива в изображение, которое затем можно правильно закодировать в Base64!То, что вы сейчас делаете, это то, что вы кодируете пустой массив в строку base64, что, безусловно, не может дать тот же результат, что и онлайн-инструмент base64!
Что вам нужно сделать, передать массив numpy в cv2.imencode
, который возвращает объект изображения буфера, а затем вы можете преобразовать его в base64
retval, buffer_img= cv2.imencode('.jpg', img)
data = base64.b64encode(buffer_img)
ИЛИ Вы можете пропустить img = cv2.imdecode(mydata, -1)
и передать mydata
непосредственно на base64.b64encode(mydata)
, пока изображение уже сохранено в памяти!
Нет изображения openCV, изображение openCV является массивом ndArray.Когда вы выполните print(type(img))
, вы получите <class 'numpy.ndarray'>