Quiero convertir un openCV Mat archivo en un archivo de GDI+ de imagen de mapa de bits. No puedo encontrar ninguna información sobre cómo hacer esto?

Creo que no hay una única manera de hacer esto, pero espero que no participa de la escritura a un archivo y leer (http://opencv-users.1802565.n2.nabble.com/Convert-IplImage-to-Bitmap-td3784378.html )

Tengo que escribir algo como esto:

#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;

Bitmap GetBitMap(cv::Mat inputImage)
{
   Bitmap bitmap;
   //convert inputImage to bitmap??
   return bitmap;
}
  • Preguntas sobre problemas con el código que has escrito debe describir el problema específico, e incluir el código válido para reproducir — en la pregunta misma. Ver SSCCE.org para la orientación.
  • Añadido el código de ejemplo. Espero que explicar lo que estoy tratando de hacer.
  • Escribí una clase CGdiPlus que hace exactamente lo que usted necesita: stackoverflow.com/questions/24725155/…
  • Escribí una clase que hace exactamente lo que usted desea: stackoverflow.com/questions/24725155/…
InformationsquelleAutor mans | 2013-10-24

1 Comentario

  1. 1

    De acuerdo a la documentación, parece que Bitmap tiene un constructor de tomar un pre-asignados búfer de memoria. El uso de este constructor, su función podría tener este aspecto:

    Bitmap GetBitMap(cv::Mat inputImage)
    {
        cv::Size size = inputImage.size();
        Bitmap bitmap(size.width, size.height, inputImage.step1(), PixelFormat24bppRGB, inputImage.data);
        return bitmap;
    }

    Tener en cuenta que la Bitmap regresó de su función no administrar la memoria de inicializarla con. Por lo tanto, asegúrese de que los datos de la imagen se mantiene viva durante toda la vida útil de la Bitmap.

    • No estoy seguro de que funciona cuando OpenCv imagen no continúa?
    • Sí, que es probablemente la correcta.
    • ¿Cuál es la correcta? El código o mi comentario?

Dejar respuesta

Please enter your comment!
Please enter your name here