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

zhe*_*nic 6 c c++ opencv image-processing

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

最好的祝福,

Zhengtonic

Dan*_*eer 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;
Run Code Online (Sandbox Code Playgroud)