-3
我有一个任务,它将本地C++算法速度与CUDA中的对应实现进行比较。我想,我的问题很简单。将图像从彩色转换为灰度
我需要在原生C++(或编写一个程序)中找到将图像从彩色转换为灰度的代码。我的任务是对算法进行基准测试,在CUDA中重写它,然后比较速度。
我猜这只是一个二维矩阵,但我很难追查一段可以用来进行基准测试的开源代码。我从哪说起呢?
我有一个任务,它将本地C++算法速度与CUDA中的对应实现进行比较。我想,我的问题很简单。将图像从彩色转换为灰度
我需要在原生C++(或编写一个程序)中找到将图像从彩色转换为灰度的代码。我的任务是对算法进行基准测试,在CUDA中重写它,然后比较速度。
我猜这只是一个二维矩阵,但我很难追查一段可以用来进行基准测试的开源代码。我从哪说起呢?
你似乎在问一个灰度算法。
struct ColorRGB8
{
char r;
char g;
char b;
ColorRGB8 toGrayScale()
{
ColorRGB8 ret;
//Intensity Algorithm as per void_ptr's request
char linearIntensity = (char)(0.2126f * r + 0.7512f * g + 0.0722 * b);
ret.r = linearIntensity;
ret.g = linearIntensity;
ret.b = linearIntensity;
return ret;
}
};
根据眼睛的敏感度来衡量颜色分量可能会更好。见例如https://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale另外,浮点除法在这里真的需要吗? –