我正在使用 C# 进行一些实时图像处理项目,我想尽可能多地利用 GPU。
具体来说,我有几个包含原始位图数据的 byte[]
,我需要做一些事情,比如高/低通滤波器、边缘检测、掩蔽、膨胀、孔填充、中值滤波器等. 在那些 byte[]
上尽可能接近 30 fps(图像非常小,不大于 640x480)
我知道还有其他 GPGPU 库(如 Cudafy、GPU.net 和 Accelerator),但它们的 EULA 要么禁止“以营利为目的”使用该库,要么您需要购买许可证。
目前没有资金用于许可,所以我正在尝试探索允许商业生产而不花费任何成本的选项,而 XNA 似乎是我能找到的唯一符合这两个标准的选项。
是否有关于如何在非游戏环境中使用 XNA 访问 GPU 的资源?是否有任何其他选项可用于通过 C# 访问 GPU?
最佳答案
作为这个库的作者,我可以建议 Brahma - 这是一个开源的免费商业用途库(在 Eclipse 公共(public)许可下)CodePlex并自动将 LINQ 转换/运行为 OpenCL?
当然,如果您想使用 RAW OpenCL,我还有一个 .NET 友好但原始 API 版本的 OpenCL here在 Codeplex 上作为 Nuget package .
看here一个 Brahma 代码的例子(这个是用于 FFT 的)。
关于c# - 使用XNA接入GPGPU进行图像处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10385716/