一直在谷歌周圍,並沒有發現任何像我之後。所以我在追求什麼?還有兩件事情:着色和調色板最佳擬合算法
首先,我正在尋找一個 算法/僞碼/白色紙 來確定最適合的顏色爲 生成R,G,B的元組和數組 256個RGB元組。
其次,我正在尋找一個 算法/僞碼/白論文 重新着色一個8位調色板圖像(使用 上述RGB調色板)要麼給定的色相/飽和度或由R A , g,b 通道修改。也可以是 很好,如果有可能爲伽瑪和僞造像素 添加修正 以及着色。
任何人有任何提示/指針/祕訣,在那裏我可以找到這樣的事(我知道他們必須存在,否則幾個photoshops功能不會)
更新:這裏是一個基本歐幾里得距離RGB到調色板索引取景:
uint_8 __stdcall GFXUTIL_GetNearestPaletteIndex(const uint_8* pPalette, size_t nSize, uint_8 nRed, uint_8 nGreen, uint_8 nBlue)
{
if(pPalette == NULL)
return 0;
int nDistance = -1;
size_t nIndex = 0, nFoundIndex = 0;
while(nIndex < nSize)
{
int nDistRed = pPalette[0] - nRed;
int nDistGreen = pPalette[1] - nGreen;
int nDistBlue = pPalette[2] - nBlue;
int nCurrentDistance = (nDistRed * nDistRed) + (nDistGreen * nDistGreen) + (nDistBlue * nDistBlue);
if(nCurrentDistance < nDistance)
{
nFoundIndex = nIndex;
nDistance = nCurrentDistance;
}
nIndex++;
pPalette += sizeof(uint_32);
}
return nFoundIndex;
}
你的第一個問題基本上是重複的:http://stackoverflow.com/questions/3143162/color-remapping-matching-target-palette-using-a-3d-grid/3143228 – 2010-08-25 17:26:25
感謝您的鏈接:)設法做出一個基本的歐幾里德距離算法,但是,仍然需要伽馬調整和白色的顏色看到眼睛對某些顏色更敏感 – Necrolis 2010-09-05 17:02:14