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

时间:2009-10-20 13:58:48

标签: c++ c image-processing opencv

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

致以最诚挚的问候,

Zhengtonic

2 个答案:

答案 0 :(得分:3)

你可以这样做(假设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;

答案 1 :(得分:1)

您可以手动填写iplimage结构,以便在评论here之后描述您的数组。

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

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