2011-11-22 16 views
5

Estoy intentando convertir un OpenCV C++ cv::Mat en un ImageMagick Magick::Image. Los únicos ejemplos que puedo encontrar utilizan el anterior, C OpenCV iplImage (consulte, por ejemplo, here).Convertir cv :: Mat a Magick :: Image

¿Hay una manera simple de lograr esto?

Respuesta

9

Es tan simple como esto:

Image Mat2Magick(Mat& src) 
{ 
    Image mgk(src.cols, src.rows, "BGR", CharPixel, (char *)src.data); 
    return mgk; 
} 

Tenga en cuenta que la función no copia los datos. Si la imagen magik se suelta antes de utilizar la imagen Mat, el resultado es SEGFAULT

+0

Magia. Gracias... –

-1

la alfombrilla es siempre más grande que la imagen misma. El ancho se cambia a múltiplo de 2 para un acceso más eficiente a los datos de imagen.

Cuestiones relacionadas