This article describes how to convert Opencv Mat to C# Bitmap.
Convert Opencv Mat to C# Bitmap
If you already know how to create and configure CLI project in visual studio, simply use following function in CLI project to convert C# Bitmap to Opencv Mat.
Mat BitmapToMat(System::Drawing::Bitmap^ bitmap)
{
IplImage* tmp;
System::Drawing::Imaging::BitmapData^ bmData = bitmap->LockBits(System::Drawing::Rectangle(0, 0, bitmap->Width, bitmap->Height), System::Drawing::Imaging::ImageLockMode::ReadWrite, bitmap->PixelFormat);
if (bitmap->PixelFormat == System::Drawing::Imaging::PixelFormat::Format8bppIndexed)
{
tmp = cvCreateImage(cvSize(bitmap->Width, bitmap->Height), IPL_DEPTH_8U, 1);
tmp->imageData = (char*)bmData->Scan0.ToPointer();
}
else if (bitmap->PixelFormat == System::Drawing::Imaging::PixelFormat::Format24bppRgb)
{
tmp = cvCreateImage(cvSize(bitmap->Width, bitmap->Height), IPL_DEPTH_8U, 3);
tmp->imageData = (char*)bmData->Scan0.ToPointer();
}
bitmap->UnlockBits(bmData);
return Mat(tmp);
}
No comments:
Post a Comment