2

我正在尝试生成一个系统,该系统在 OpenCV 中获取图像,将其写入 XML,从 XML 中读取,并将其显示在 WPF 应用程序的图像控件中。

我遇到的问题是我不清楚 .NET 类(例如 BitmapImage)如何处理来自字节数组的图像。我尝试了多种方法并得到了各种错误 - 除非需要,否则无法发布。

我想知道是否有人可以为此指出正确的方向?我想知道的是如何将数据呈现给 .NET 对象以便在 Image 控件中显示它?

提前感谢您的帮助 - 非常感谢。

编辑:我希望我需要做的是将 XML 转换为字节数组并使用它以及格式的定义来实例化 BitmapImage 对象或等效于用作 Image 控件的源。我不确定如何做到这一点。

4

3 回答 3

2

用于int cvSaveImage(const char* filename, const CvArr* image) 将文件另存为图像。图像格式根据文件扩展名选择

XML如果您可以将其直接存储为图像文件,则无需存储它。

.NET 类需要一个 Image。就是这样。

笔记:

如果您想将红色、绿色、蓝色值存储为逗号分隔的字符串,那将是非常低效的。将其保存Base64。然后您可以将其转换为字节并将其提供给任何 .NET 图像类。.NETImageConverter类也可以很有帮助。

于 2012-07-22T03:42:58.283 回答
0

您可以使用:

public static BitmapSource Create(
    int pixelWidth,
    int pixelHeight,
    double dpiX,
    double dpiY,
    PixelFormat pixelFormat,
    BitmapPalette palette,
    Array pixels,
    int stride
)
于 2012-07-22T04:05:01.067 回答
0

我发现问题是(大概)我在编写 XML 数据之前没有对其进行 Base64 编码。因此解决方案是在写入 XML 之前对数据进行 Base64 编码,在另一端对其进行 Base64 解码,将数据作为字节数组读取并使用它来实例化 MemoryStream 和 BitmapImage 对象。

谢谢大家的帮助。

于 2012-07-22T08:32:06.683 回答