【发布时间】:2019-06-22 02:51:41
【问题描述】:
使用 OpenCVSharp,将 Mat 对象转换为 System.Windows.Media.ImageSource 非常容易。
private ImageSource GetImageSource(Mat mat)
{
return mat.ToWriteableBitmap();
}
如何使用 Xamarin.OpenCV.Droid 做到这一点?
如何将 Mat 转换为 Xamarin.Forms.ImageSource?
https://github.com/NAXAM/opencv-android-binding/
更新
我通过将Mat 转换为Bitmap 自己解决了这个问题。
var bitmap = Bitmap.CreateBitmap(mat.Width(), mat.Height(), Bitmap.Config.Rgb565);
Utils.MatToBitmap(mat, bitmap);
var src = ImageSource.FromStream(() => getMemoryStream(bitmap));
private static MemoryStream getMemoryStream(Bitmap bitmap)
{
try
{
var ms = new MemoryStream();
bitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, ms);
ms.Seek(0L, SeekOrigin.Begin);
return ms;
}
catch
{
// log etc
return new MemoryStream();
}
}
我的代码有问题吗?
【问题讨论】:
标签: c# android opencv xamarin xamarin.forms