Interpolation de tableau 3D
Bonjour,
Je veux faire de la correction de couleurs dans une image en utilisant des tables de correction de type .cube pour une appli Delphi VCL.
Je recupère les données de la table dans un tableau de ce type :
Code:
1 2 3 4 5 6
|
TLutValeur = record
r,v,b : Byte;
end;
TableLut : array[0..35,0..35,0..35] of TLutValeur |
Pour appliquer la correction, pour chaque pixel de mon image qui est caractérisé par une valeur du canal Rouge, une du canal Vert et une du canal Bleu.
avec ce triplet de valeur je vais chercher dans la table le triplet R, V, B correspondant qui est appliqué aux pixels de l'image.
Le problème c'est que ma table d'entrée contient 36 valeurs sur chaque axe.
Les pixels ont des couleurs sur une gamme de 256 valeurs par axe.
Je voudrais donc interpoler les valeurs de la table TableLut pour remplir cette structure :
Code:
TableLut255 : array[0..255,0..255,0..255] of TLutValeur;
Je n'arrive pas à trouver la solution et à mettre en place les boucles de calcul des points intermédiaires.
Merci