gpt4 book ai didi

c++ - 着色和调色板最佳拟合算法

转载 作者:太空狗 更新时间:2023-10-29 23:09:48 26 4
gpt4 key购买 nike

一直在谷歌上四处寻找,但没有找到任何像我所追求的那样。那我要找的是什么?好吧,有两件事:

  • 首先我要找一个算法/伪代码/白皮书确定最适合的颜色给出 r,g,b 元组和数组256 个 RGB 元组。

  • 其次,我正在寻找一个算法/伪代码/白皮书重新着色 8 位调色板图像(使用上面的 RGB 调色板)到任一给定色相/饱和度或由 r,g,b channel 修改。也会是很好,如果可以添加修复对于 gamma 和伪影像素着色也是如此。

任何人都知道我在哪里可以找到这样的东西(我知道它们必须存在,否则一些 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://en.wikipedia.org/wiki/Color_difference了解如何计算颜色之间的距离,以便将人眼敏感度考虑在内。

关于c++ - 着色和调色板最佳拟合算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3568546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com