2011-04-20 271 views
2

將灰度圖像(1像素/字節)轉換爲顏色位圖的最佳方式是什麼? - 使用顏色空間(RGB形式的字節數組)?將灰度圖像轉換爲彩色

我認爲這會使用ColorMatrix類,但我無法弄清楚如何使用它來實現這一點。

回答

5

該算法用於從灰色變換 - > RGB概述(在我的最愛)OpenCV文檔:

RGB->灰色是R,G,B的加權和。 Gray-> RGB是Gray Value = R,G,B值的直接副本(不縮放)。

您可以使用int []並執行double for循環以將所有灰度值複製到RGB數組,然後可以使用Canvas.drawBitmap(int [],width,offset,height,offset,RGB)繪製到畫布上。

//color[], gray[] 
for(int y = 0; y < getHeight(); y++){ 
    for(int x = 0; x < getWidth(); x++){ 
     color[x+y*w] = 0xff << 24 | gray[x+y*w] << 16 | gray[x+y*w] << 8 | gray[x+y*w]; 
    } 
} 
// make sure to set hasAlpha to be false, or set the 0xff value to be alpha 
//canvas.drawBitmap(color, ...) 

即使使用ColorMatrix calss,您也必須處理必須將GrayScale位複製到[r g b a]值。 ColorMatrix真正用於從ARGB到ARGB的縮放/轉換。

+0

你能幫我這個:http://stackoverflow.com/questions/18132772/cannot-get-the-original-colored-bitmap-after-tesseract-processing-android – TharakaNirmana 2013-08-10 08:56:27