如何在UWP上将mat转换为imageSource



我正在尝试将垫子图像转换为可以在UWP上设置为ImageSource的图像,但找不到任何解决方案。我发现的唯一解决方案显示了我非常糟糕的形象:https://i.stack.imgur.com/uB8oT.png

这是我的代码:

VideoCapture _capture = new VideoCapture(0);

while (true)
{
using (Mat mat = new Mat())
{
bool ok = _capture.Read(mat);
if (ok)
{
await Dispatcher.RunAsync(CoreDispatcherPriority.High,
async () =>
{
byte[] imageArray = mat.GetRawData();
WriteableBitmap writableBitmap = new WriteableBitmap(mat.Width, mat.Height);
using (MemoryStream memoryStream = new MemoryStream(imageArray))
{
using (Stream stream = writableBitmap.PixelBuffer.AsStream())
{
await memoryStream.CopyToAsync(stream);
}
}
imageCamera.Source = writableBitmap;
});
}
}

如何在UWP 上将mat转换为imageSource

当前,图像控件仅支持使用BGRA8编码和预乘或不支持alpha通道的图像。在尝试显示图像之前,请进行测试以确保其格式正确,如果没有,请使用SoftwareBitmap静态Convert方法将图像转换为支持的格式。

SoftwareBitmap outputBitmap = SoftwareBitmap.CreateCopyFromBuffer(
writeableBitmap.PixelBuffer,
BitmapPixelFormat.Bgra8,
writeableBitmap.PixelWidth,
writeableBitmap.PixelHeight
);
var source = new SoftwareBitmapSource();
await source.SetBitmapAsync(outputBitmap);

最新更新