0

我无法制作一个小程序来转换为灰度。我必须将 BMP 文件加载到 unsigned char 并将其发送到 CUDA 函数(我发现了这个: http: //www.mindfiresolutions.com/Image-Processing-with-CUDA-650.php)。

我使用过 CImg,但它无法将值保存为 unsigned char 并发送到 CUDA 函数(返回值不是灰度图像)。如何将图像加载到 unsigned char 作为

px[0] = R , px[1] = G, px[2] = B, px[3] = A等等。

也许我正在测试太小的图像?(10 x 10 像素)。

4

2 回答 2

1

第一步是将图像文件加载到内存中

如果是bmp,有一个很简单的bitmap loading lib。然后,一旦您将它作为 CPU 上的 unsigned char[] 数组,您就可以使用任何 CUDA 函数将其复制到 GPU 并对其进行处理。

opencv 图像处理库现在很好地支持 CUDA,它的 GPU 图像格式是开始在 CUDA 中编写自己的图像处理任务的一个非常好的地方。

当然,它具有您可能想要的所有加载/保存/显示功能。

于 2012-06-08T16:16:26.860 回答
0

很久以前,我编写了cuda-grayscale,这是一个演示应用程序,展示了如何集成OpenCV和 CUDA:它使用OpenCV从磁盘加载图像并使用 CUDA 将其转换为灰度。

您可以下载它并查看项目页面上的代码。基本上,我创建了一个新float数组来存储原始unsigned char数据并将其发送到 GPU 进行处理。

于 2012-06-08T16:20:41.863 回答