gpt4 book ai didi

c# - 将 WriteableBitmap 转换为位图以便在 EmguCV 中使用

转载 作者:太空狗 更新时间:2023-10-29 20:41:49 26 4
gpt4 key购买 nike

在我的代码中,我从字节数组(反过来从 Kinect)接收 WriteableBitmaps,我想将它们转换为位图以用于 EmguCV。目前这是我的代码:

                // Copy the pixel data from the image to a temporary array
colorFrame.CopyPixelDataTo(this.colorPixels);

// Write the pixel data into our bitmap
this.colorBitmap.WritePixels(
new Int32Rect(0, 0, this.colorBitmap.PixelWidth, this.colorBitmap.PixelHeight),
this.colorPixels,
this.colorBitmap.PixelWidth * colorFrame.BytesPerPixel,
0);

BitmapEncoder encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(colorBitmap));
MemoryStream ms = new MemoryStream();

encoder.Save(ms);
Bitmap b=new Bitmap(ms);

Image<Gray, Byte> img = new Image<Gray, Byte>(b);
img = img.ThresholdBinary(new Gray(200), new Gray(255));

我从 here 得到了代码的下半部分.代码编译和一切,但当我试图运行程序时挂起(它应该对图像执行一些操作然后将其转换回可以作为图像呈现的格式。)暂停我的代码然后在 VS 2013 中使用 IntelliTrace,我在 Image<Gray, Byte> img = new Image<Gray, Byte>(b); 处得到以下异常“抛出 System.ArgumentException:不支持 URI 格式。”使用替代代码,从我直接从字节到位图的地方给了我同样的错误。 ( Code can be found here. )

有人知道如何解决这个错误,或者转换为位图的替代方法吗?我是 C# 和 EmguCV 的新手,非常感谢。

最佳答案

事实证明所有代码都没有问题。我不太确定错误的技术细节,但是当尝试在 WriteableBitmap(将被转换为 Emgu 图像)中写入 Gray16 图像时收到错误。支持 Bgr565 或其他格式,我相信MS 并未完全实现 Gray16。如果做 WinForms 应用程序,Format16bppGray 也会给出同样的错误。

我决定在将位图编写为 Bgr555 时使用 Gray Emgu 图像,这会产生更多噪音,但总比没有好。

关于c# - 将 WriteableBitmap 转换为位图以便在 EmguCV 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20812404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com