我想将openCV Mat文件转换为GDI + BitMap图像。我找不到有关如何做到这一点的任何信息?
我认为没有直接的方法可以做到这一点,但我希望它不涉及将其写入文件并回读(http://opencv-users.1802565.n2.nabble.com/Convert-IplImage-to-Bitmap-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;
}
答案 0 :(得分:1)
根据documentation,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
的生命周期内保持活动状态。