【发布时间】:2018-11-23 06:34:54
【问题描述】:
我在将编码图像转换为字符串时遇到问题。我编码如下:
image = cv2.imread(imagePath)
_, buffer = cv2.imencode('.png', image)
当我尝试拨打 buffer.toString() 时,我收到以下错误:
AttributeError: 'numpy.ndarray' object has no attribute 'toString'
stackoverflow 上有很多与我正在做的相同功能相关的问题(使用 opencv 编码)。以下是少数,有矛盾的答案。
在这个答案中,暗示 imencode 返回一个包含 2 个元素的元组:
>>> img_str = cv2.imencode('.jpg', img)[1].tostring()
>>> type(img_str)
'str'
同一问题的另一个答案,暗示结果是一个值。
无论如何,就我而言,返回值是一个包含 2 个元素的元组,其中第二个是 ndarray,它没有 toString() 方法。
FWIW,
$ pip show opencv-python
Name: opencv-python
Version: 3.4.3.18
$ pip show numpy
Name: numpy
Version: 1.15.4
imencode 的 OpenCV 文档说,返回值是一个包含 2 个元素的元组,第二个是缓冲区。
Python: cv2.imencode(ext, img[, params]) → retval, buf
感谢您提出解决此问题的任何建议。
【问题讨论】: