我有一张使用 cv2.imread() 加载的图像。这将返回一个 NumPy 数组。但是,我需要将其传递给需要 IplImage 格式数据的第 3 方 API。
我已经尽我所能搜索了所有内容,并找到了从 IplImage 转换为 CvMat 的实例,并且我发现了一些关于在 C++ 中转换的参考,但不是从 NumPy 到 Python 中的 IplImage。是否提供了可以进行此转换的功能?
你可以这样做。
source = cv2.imread() # source is numpy array
bitmap = cv.CreateImageHeader((source.shape[1], source.shape[0]), cv.IPL_DEPTH_8U, 3)
cv.SetData(bitmap, source.tostring(),
source.dtype.itemsize * 3 * source.shape[1])
bitmap
这是cv2.cv.iplimage
2申请方式:
img = cv2.imread(img_path)
img_buf = cv2.imencode('.jpg', img)[1].tostring()
只需读取图像文件:
img_buf = open(img_path, 'rb').read()