将float数组图像转换为可用于opencv的格式

我想知道是否有一种简单的方法可以将我的浮点数组图像转换为iplimage,这可以通过opencv来处理。 当然我可以用相同的大小创建一个空的iplimage,只是将我的浮点数组图像中的像素复制到emplty iplimage,但是有更优雅的解决方案。 也许是一种消耗更少内存的方法,因为源图像非常大,复制过程需要一段时间。

最好的祝福,

Zhengtonic

你可以这样做(假设32位浮点数):

float* my_float_image_data; CvSize size; size.height = height ; size.width = width; IplImage* ipl_image_p = cvCreateImageHeader(size, IPL_DEPTH_32F, 1); ipl_image_p->imageData = my_float_image_data; ipl_image_p->imageDataOrigin = ipl_image_p->imageData; 

您可以手动填充iplimage结构,以便在此处的注释后描述您的数组。

字段imageData将指向您的原始数组。

但是不要在它上面使用释放函数。 最后删除结构。