Convertir una imagen de matriz flotante a un formato utilizable para opencv

Me pregunto si hay una manera fácil de convertir mi imagen de matriz flotante a iplimage, que puede ser manejada por opencv. Por supuesto, podría crear un iplimage vacío con el mismo tamaño y simplemente copiar cada píxel de mi imagen de matriz flotante al iplimage emplty, pero hay una solución más elegante para esto. Tal vez sea un método más rápido que consume menos memoria, ya que las imágenes de origen son bastante grandes y el proceso de copia tomaría un tiempo.

Atentamente,

Zhengtonic

Puedes hacer algo como esto (asumiendo flotadores de 32 bits):

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; 

Puede llenar una estructura iplimage ‘a mano’ para describir su matriz siguiendo los comentarios aquí .

El campo imageData apuntará a su matriz original.

Pero luego no uses funciones de desasignación en él. Simplemente elimine la estructura al final.