OpenCV:在Python中从NumPy转换为IplImage

2024-10-04 11:26:57 发布

您现在位置:Python中文网/ 问答频道 /正文

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

<>我已经搜遍了所有的东西,我找到了从IplImage转换成CVMAT的实例,我发现了一些在C++中转换的引用,但在Python中没有从NumPy到IplImage的引用。是否提供了可以进行此转换的函数?


Tags: 数据实例函数图像numpyapi格式数组
2条回答

你可以这样做。

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

双向应用:

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

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

相关问题 更多 >