我在将编码的图像转换为字符串时遇到问题。我编码如下:
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
任何建议都可以解决此问题。
答案 0 :(得分:2)
错误明确指出:
AttributeError:“ numpy.ndarray”对象没有属性“ toString”
这意味着您拼写了错误的方法。将toString
替换为tostring
,以获得所需的结果。