Python OpenCV从字节字符串加载图像 [英] Python OpenCV load image from byte string

查看:1520
本文介绍了Python OpenCV从字节字符串加载图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从字符串加载图像,如PHP函数 imagecreatefromstring

I'm trying to load image from string like as PHP function imagecreatefromstring

我该怎么做?

我有MySQL blob字段图像。我正在使用 MySQLdb ,并且不希望创建临时文件来处理PyOpenCV中的图像。

I have MySQL blob field image. I'm using MySQLdb and don't want create temporary file for working with images in PyOpenCV.

注意:需要cv(不是cv2)包装函数

NOTE: need cv (not cv2) wrapper function

推荐答案

这就是我通常用来将存储在数据库中的图像转换为Python中的OpenCV图像。

This is what I normally use to convert images stored in database to OpenCV images in Python.

import numpy as np
import cv2
from cv2 import cv

# Load image as string from file/database
fd = open('foo.jpg')
img_str = fd.read()
fd.close()

# CV2
nparr = np.fromstring(img_str, np.uint8)
img_np = cv2.imdecode(nparr, cv2.CV_LOAD_IMAGE_COLOR) # cv2.IMREAD_COLOR in OpenCV 3.1

# CV
img_ipl = cv.CreateImageHeader((img_np.shape[1], img_np.shape[0]), cv.IPL_DEPTH_8U, 3)
cv.SetData(img_ipl, img_np.tostring(), img_np.dtype.itemsize * 3 * img_np.shape[1])

# check types
print type(img_str)
print type(img_np)
print type(img_ipl)

我已经从 numpy.ndarray cv2.cv.iplimage ,因此上面的脚本将打印出来:

I have added the conversion from numpy.ndarray to cv2.cv.iplimage, so the script above will print:

<type 'str'>
<type 'numpy.ndarray'>
<type 'cv2.cv.iplimage'>

这篇关于Python OpenCV从字节字符串加载图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆