OpenCV:在Python中从NumPy转换为IplImage

时间:2012-07-17 17:48:13

标签: python opencv

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

我已经搜索了所有可能的内容,并且我发现了从IplImage转换为CvMat的实例,并且我发现了一些在C ++中转换的引用,但是在Python中没有从NumPy转换为IplImage。是否提供了可以执行此转换的功能?

2 个答案:

答案 0 :(得分:14)

你可以这样做。

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

答案 1 :(得分:0)

2种申请方式:

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

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