OpenCV: Converting from NumPy to IplImage in Python
我有一个使用 cv2.imread() 加载的图像。这将返回一个 NumPy 数组。但是,我需要将其传递给需要 IplImage 格式数据的第 3 方 API。
我已经尽我所能搜索了所有内容,并找到了从 IplImage 转换为 CvMat 的实例,并且我发现了一些关于在 C 中转换的参考,但不是从 NumPy 到 Python 中的 IplImage。是否提供了可以进行这种转换的函数?
你可以这样做。
1 2 3 4 | 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]) |
两种申请方式:
img_buf = cv2.imencode('.jpg', img)[1].tostring()
只需读取图像文件: