2015-10-13 86 views
-3

我有一個任務,它將本地C++算法速度與CUDA中的對應實現進行比較。我想,我的問題很簡單。將圖像從彩色轉換爲灰度

我需要在原生C++(或編寫一個程序)中找到將圖像從彩色轉換爲灰度的代碼。我的任務是對算法進行基準測試,在CUDA中重寫它,然後比較速度。

我猜這只是一個二維矩陣,但我很難追查一段可以用來進行基準測試的開源代碼。我從哪說起呢?

回答

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

根據眼睛的敏感度來衡量顏色分量可能會更好。見例如https://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale另外,浮點除法在這裏真的需要嗎? –