我正在学习CUDA,但我不知道如何在CUDA中获取图像属性。就像在CUDA中获取图像像素值或图像高度一样。我阅读了很多教程,他们都使用变量,宽度和高度指定了图像处理功能,但我没有得到它们如何获得图像的宽度和高度?
答案 0 :(得分:1)
宽度和高度来自输入图像。您需要一个从磁盘加载图像文件的功能(NVIDIA的一些示例将图像创建为头文件中的数组)。
在CUDA SDK中,您具有加载PGM图像文件的功能,即使用unsigned char作为数据元素类型,即灰度图像。在示例中,您可以使用:
// file handlers
char *image_filename = "image.pgm";
// images properties
unsigned int width;
unsigned int height;
// image array in CPU.
unsigned char* h_image = NULL;
// load PGM gray scale image file from disk
cutLoadPGMub(image_filename, &h_image, &width, &height);
然后,将数据复制到GPU全局内存或将图像绑定为纹理以处理内核函数中的像素。
我建议你看一下CUDA SDK的 simpleTexture示例。