Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将C中的图像加载到无符号字符_C++_C_Image_Image Processing_Cuda - Fatal编程技术网

C++ 将C中的图像加载到无符号字符

C++ 将C中的图像加载到无符号字符,c++,c,image,image-processing,cuda,C++,C,Image,Image Processing,Cuda,我有问题,使一个小程序转换为灰度。我必须将BMP文件加载到unsigned char并将其发送到CUDA函数(我发现了这个:) 我使用过CImg,但它不能将值保存为无符号字符并发送到CUDA函数(返回值不是灰度图像)。 如何将图像加载到未签名字符 px[0]=R,px[1]=G,px[2]=B,px[3]=A,依此类推 也许我测试的图像太小了?(10 x 10 px)。第一步是将图像文件加载到内存中 如果是bmp,有一个非常简单的方法。然后,一旦在CPU上将其作为无符号char[]数组,就可以使

我有问题,使一个小程序转换为灰度。我必须将BMP文件加载到unsigned char并将其发送到CUDA函数(我发现了这个:)

我使用过CImg,但它不能将值保存为无符号字符并发送到CUDA函数(返回值不是灰度图像)。 如何将图像加载到未签名字符

px[0]=R,px[1]=G,px[2]=B,px[3]=A,依此类推


也许我测试的图像太小了?(10 x 10 px)。

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

如果是bmp,有一个非常简单的方法。然后,一旦在CPU上将其作为无符号char[]数组,就可以使用任何CUDA函数将其复制到GPU并对其进行处理

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

当然,它拥有你想要的所有加载/保存/显示功能。

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


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

在gimp中打开文件,另存为。然后,当你阅读它时,你需要做的就是找到标题的结尾。@pQB有点像。似乎整个问题都围绕着CUDA——我正要把标签加回去。再说一次,我很难弄清楚问题到底出在我自己身上:)你在从文件中加载图像时有问题吗?如果是这样,那么您只需要一个库。@MichaeldOrger这个问题与如何将图像加载到无符号字符有关。也许我错了,但毫无疑问CUDA。问题似乎是如何从RGB转换为灰度。也就是说,如果问题与CPU-GPU内存传输或内核中的逻辑有关,则应将其添加到问题中。CImg成员函数将图像像素返回为由无符号整数组成的T结构。你想调用什么cuda函数?