Python OpenCV将图像转换为字节字符串?

标签 python image opencv binary

我正在使用 PyOpenCV。如何在没有临时文件和 imwrite 的情况下将 cv2 图像(numpy)转换为二进制字符串以写入 MySQL db?

我用谷歌搜索了它,但什么也没找到......

我正在尝试 imencode,但它不起作用。

capture = cv2.VideoCapture(url.path)
capture.set(cv2.cv.CV_CAP_PROP_POS_MSEC, float(url.query))
self.wfile.write(cv2.imencode('png', capture.read()))

错误:

  File "server.py", line 16, in do_GET
  self.wfile.write(cv2.imencode('png', capture.read()))
  TypeError: img is not a numerical tuple

帮助别人!

最佳答案

如果你有一个图像 img (这是一个 numpy 数组),你可以使用以下方法将其转换为字符串:

>>> img_str = cv2.imencode('.jpg', img)[1].tostring()
>>> type(img_str)
 'str'

现在您可以轻松地将图像存储在数据库中,然后使用以下方法恢复它:

>>> nparr = np.fromstring(STRING_FROM_DATABASE, np.uint8)
>>> img = cv2.imdecode(nparr, cv2.CV_LOAD_IMAGE_COLOR)

您需要将 STRING_FROM_DATABASE 替换为包含对包含图像的数据库的查询结果的变量。

关于Python OpenCV将图像转换为字节字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17967320/

相关文章:

python - Django:启动迁移到 heroku 时没有名为 'psycopg2' 的模块

html - 水平显示无序列表

javascript - 文本出现在图像悬停上,图像在一系列中

python - 使用opencv捕获单张图片

c++ - 对于 OpenCV/C++,无法将 Mat 写入 JPG 或 BMP 以外的任何其他图像格式

python - 如何使用 Python 以 Gmail 作为提供商发送电子邮件?

Python 2.7 super 错误

python - Flask-SqlAlchemy 邻接列表关系 backfref 意外错误

optimization - 优化像素处理循环

python - 如何从目录中找到与输入图像相似的图像?