我有一个使用cv2.imread()加载的图像。这将返回一个NumPy数组。但是,我需要将其传递给需要IplImage格式数据的第三方API。
我已经搜索了所有可能的内容,并且我发现了从IplImage转换为CvMat的实例,并且我发现了一些在C ++中转换的引用,但是在Python中没有从NumPy转换为IplImage。是否提供了可以执行此转换的功能?
答案 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种申请方式:
img = cv2.imread(img_path)
img_buf = cv2.imencode('.jpg', img)[1].tostring()
只需读取图像文件:
img_buf = open(img_path, 'rb').read()