c# - 使用XNA接入GPGPU进行图像处理

标签 c# image-processing xna gpu gpgpu

我正在使用 C# 进行一些实时图像处理项目,我想尽可能多地利用 GPU。

具体来说,我有几个包含原始位图数据的 byte[],我需要做一些事情,比如高/低通滤波器、边缘检测、掩蔽、膨胀、孔填充、中值滤波器等. 在那些 byte[] 上尽可能接近 30 fps(图像非常小,不大于 640x480)

我知道还有其他 GPGPU 库(如 CudafyGPU.netAccelerator),但它们的 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/

相关文章:

android - 使用矩阵在android中旋转和缩放图像

c# - UserControl 的本地化属性

C# 进程无法访问文件,因为该文件正在被另一个进程使用

c# - 一旦方法完成,我的变量就会不断切换回来

python - 从 4 个角颜色插值的二维颜色渐变(256x256 矩阵)

python - cv2.Sobel 中的比例是什么意思?

c# - 是否有任何选项可以为 Xna 选择纹理过滤

c# - 在 Visual Studio 2010 中构建时锁定文件

c# - XNA SpriteBatch.Draw 3D 向量 HLSL

c# - 在 C# 中执行 .. While 循环?