2

我想将 openCV Mat 文件转换为 GDI+ BitMap 图像。我找不到有关如何执行此操作的任何信息?

我认为没有直接的方法可以做到这一点,但我希望它不涉及将其写入文件并读回(http://opencv-users.1802565.n2.nabble.com/Convert-IplImage-to -位图-td3784378.html )

我需要写这样的东西:

#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;
}
4

1 回答 1

1

根据文档,似乎Bitmap有一个构造函数采用预先分配的内存缓冲区。使用此构造函数,您的函数可能如下所示:

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

请注意,Bitmap从您的函数返回的值不会管理您初始化它的内存。因此,请确保图像数据在Bitmap.

于 2013-10-24T15:40:03.063 回答