我编写了这个示例代码来解释我的问题。我在VS 2013中有一个解决方案,包含一个C#项目和一个C++项目。我尝试用C++(x86)中的OpenCV读取图像。并希望将一个C#x86项目(使用CLR模式)传递给位图对象,然后将BitmapImage对象用作WPF图像源。
我的C++代码:将opencv图像cv :: Mat格式转换为C#BitmapImage
Bitmap^ SomeClass::Test(System::String^ imgFileName)
{
auto fileName = msclr::interop::marshal_as(imgFileName);
Mat img = imread(fileName);
//Do something
auto bmp = gcnew Bitmap(img.cols, img.rows, img.step, Imaging::PixelFormat::Format24bppRgb, (IntPtr)img.data);
bmp->Save("InC++Side.png");
return bmp;
}
我的C#代码:
private void ImageTester(object sender, RoutedEventArgs e)
{
var image = testClass.Test("test.png");
image.Save("InC#Side.png");
bg.Source = ConvertToBitmapImageFromBitmap(ima