La création d'un flat est une moyenne des images flats.
Le programme charge l'offset et les flats bruts.
Pour chaque image, on soustrait l'offset.
Pour des raisons de performance, les images sont toutes chargées en mémoire. Le traitement se fait et le résultat est stocké dans un fichier flat.tiff
.
for(count = 0; count < images[0]->bufferSize/2 ; count++) { m=0; off = offset.buffer[count*2]+256*offset.buffer[count*2+1]; for (j=0;j<i;j++) { v = images[j]->buffer[count*2]+256*images[j]->buffer[count*2+1]; v -= off; if (v< 0) v = 0; m+=v; } m = m/i; flat.buffer[count*2+1]=m/256; flat.buffer[count*2]=m-flat.buffer[count*2+1]*256; }
L'algorithme est identique à l'offset.
On vérifie que la soustraction de l'offset ne donne pas un pixel négatif.
La création d'un flat par médiane, ne consiste pas à faire la moyenne des darks bruts mais de prendre la valeur médiane de l'ensemble des valeurs d'un point de l'image.
Voir l'offset
Voici des idées d'améliorations de ces algorithmes :