将图像从彩色转换为灰度

时间:2015-10-13 23:33:51

标签: c++ image colors

我的作业集中在将原生C ++算法速度与CUDA中的对应实现进行比较。我想我的问题很简单。

我需要在本机C ++(或编写程序)中找到将图像从彩色转换为灰度的代码。我的任务是对算法进行基准测试,在CUDA中重写它,然后比较速度。

我猜这只是一个2D矩阵,但是我很难跟踪我可以用来进行基准测试的开源代码。我从哪里开始?

1 个答案:

答案 0 :(得分:1)

您似乎要求使用灰度算法。

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;
    }
};