OpenCV:在Python中从NumPy转换为IplImage

ste*_*918 8 python opencv

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

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

Fro*_*oyo 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])
Run Code Online (Sandbox Code Playgroud)

bitmap 这是 cv2.cv.iplimage

  • 实际上我弄清楚了,我试图转换的瓷砖是二进制的,而不是BGR,所以这就是它腐败的原因.所以我改变了3比1,它运作得很好.再次感谢您指出我正确的方向.如果其他人需要它,OpenCV Cookbook有关于如何转换的信息,请访问http://opencv.willowgarage.com/wiki/PythonInterface/ (3认同)