8

我有一张使用 cv2.imread() 加载的图像。这将返回一个 NumPy 数组。但是,我需要将其传递给需要 IplImage 格式数据的第 3 方 API。

我已经尽我所能搜索了所有内容,并找到了从 IplImage 转换为 CvMat 的实例,并且我发现了一些关于在 C++ 中转换的参考,但不是从 NumPy 到 Python 中的 IplImage。是否提供了可以进行此转换的功能?

4

2 回答 2

15

你可以这样做。

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

于 2012-07-17T18:18:13.447 回答
0

2申请方式:

  1. img = cv2.imread(img_path) img_buf = cv2.imencode('.jpg', img)[1].tostring()

  2. 只需读取图像文件: img_buf = open(img_path, 'rb').read()

于 2018-06-27T02:58:40.027 回答