适合高效重用的现代 WinRT 位图类

问题描述

我需要尽快完成图像处理工作 - 在我的上下文中毫秒很重要。我想利用现代图像识别技术,如神经网络。我在 Windows 中看到的大多数示例都假设我将从一个文件中加载一次图像并用它做一件事 - 不是很有用 :-( 要么是 Yolo example 要么是混合火箭科学和技术高于我的工资等级:-(

我的简单问题是:取一个已经在内存中的位图(例如 HBITMAPATL::CImage 等)并且(理想情况下)有一个 SoftwareBitmap 指向该数据,或者至少将该数据复制到 SoftwareBitmap 中。之后,在 this Windows ML tutorial 之后,我想将图像转换为张量,将其发送到我的 GPU,获得结果,并以尽可能少的开销重复数百万次。

到目前为止,我找不到任何允许我将位图缓冲区指向预先存在的内存中位图的内容

如果我每次都被迫复制整个位图,显然要尝试使用 SoftwareBitmap.LockBuffer()获取对像素数据的访问,然后我可以修改它。但是 documentation 告诉我不允许无限期地持有这样的锁,这意味着我需要释放它。问题是没有办法在不破坏缓冲区的情况下解锁它,并且只要持有锁,就没有明显的方法可以使用超出范围的缓冲区。这使得我无法将数据传送到 GPU :-(

WriteableBitmap 似乎是一个值得考虑的有用类,但至少可以说它的文档和示例很少。到目前为止,它还没有让我更接近我的目标,包括尝试对 this theme :-(

没有一种直接且明显的方法来设置位图(或循环缓冲区中的一组位图)并反复使用它们进行实时图像处理,这似乎很奇怪。我错过了什么?它在那里,但只是没有记录,或者在任何明显的例子中?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)