2010-08-25 6 views
3

Je me suis trompé de google et je n'ai pas trouvé ce que je recherchais. alors qu'est-ce que je suis après? bien deux choses:Algorithmes de colorimétrie et d'ajustement de palettes

  • tout d'abord, je suis à la recherche d'un algorithme /pseudo-code/blanc-papiers pour déterminer une couleur mieux adaptée pour un donner r, g, b et de tuple tableau de 256 tuples RGB.

  • Deuxièmement, je suis à la recherche d'un algorithme /pseudo-code/Papiers blancs recolorer une image palette 8bit (en utilisant la palette RVB ci-dessus) soit un donné Teinte/Saturation ou par r, g, b modification de canal. aussi serait gentil si il était possible d'ajouter une correction pour les pixels gamma et d'artefacts dans la colorisation ainsi.

Quelqu'un at-il des astuces/pointeurs/conseils pour savoir où je pourrais trouver une telle chose (je sais qu'ils doivent exister, sinon quelques-unes des fonctions de Photoshops ne serait pas)

MISE À JOUR: voici une RGB base de distance euclidienne à la recherche de l'index de la palette:

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

Votre première question est essentiellement une copie de: http://stackoverflow.com/questions/3143162/color-remapping-matching-target-palette-using-a-3d-grid/3143228 –

+0

merci pour le lien :) réussi à faire une base algoïde algo distance avec l'info là-dedans, cependant, a encore besoin d'ajustement gamma et quelque chose à baiser les couleurs voyant que l'œil est plus sensible à certaines couleurs – Necrolis

Répondre

0

Si vous le souhaitez plus rapidement qu'une recherche linéaire, consultez VP-tree ou KD-tree.

Si vous le souhaitez perceptivement précis, effectuez la recherche au Lab color space.

Questions connexes