一开始,我试了这个,
public static Bitmap MatToBitmap(Mat mat)
{
return OpenCvSharp.Extensions.BitmapConverter.ToBitmap(mat);
}
所以我试了这个
public static Bitmap MatToBitmap(Mat mat)
{
mat.ConvertTo(mat, MatType.CV_8U);
return OpenCvSharp.Extensions.BitmapConverter.ToBitmap(mat);
}
图像是完全黑色的,
public static Bitmap ConvertMatToBitmap(Mat matToConvert)
{
return new Bitmap(matToConvert.Cols, matToConvert.Rows, 4*matToConvert.Rows, System.Drawing.Imaging.PixelFormat.Format8bppIndexed, matToConvert.Data);
}
这个也不行
4条答案
按热度按时间qltillow1#
我建议你不要使用
Mat
类型,而是使用IplImage
类型。以下面的示例代码为参考(我使用VisualStudio 2013和OpenCvSharp 2):这是你输入的Lenna图像:
这是从
Bitmap
类型创建的bitmap.png
:希望能帮上忙!
更新:
通过使用OpenCVSharp 3,以下代码也可以将
Mat
类型转换为Bitmap
类型:具有以下功能:
得到的结果与上图所示相同。
yzckvree2#
其他的解决方案 * 几乎 * 为我工作。位图在那里,但有时会抛出一个异常,说
encoder
是null
。我使用以下代码解决了这个问题。
ifsvaxew3#
有一个方法可以返回Bitmap:
“using OpenCvSharp.Extensions;”也是必需的。
4dbbbstv4#
你必须使用OpenCvSharp.Extensions,它可以通过搜索“OpenCvSharp4.Extensions”从NuGet安装。