我正在尝试像 PHP 函数一样从字符串加载图像imagecreatefromstring
我怎样才能做到这一点?
我有 MySQL blob 字段图像。我在用着MySQLdb并且不想创建临时文件来处理 PyOpenCV 中的图像。
注意:需要 cv (不是 cv2)包装函数
这是我通常用来将数据库中存储的图像转换为 Python 中的 OpenCV 图像的方法。
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
to cv2.cv.iplimage
,所以上面的脚本将打印:
<type 'str'>
<type 'numpy.ndarray'>
<type 'cv2.cv.iplimage'>
EDIT:截至最新的 numpy1.18.5 +
, the np.fromstring
发出警告,因此np.frombuffer
应该用在那个地方。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)