La création d'un dark est identique à l'offset mais sur les images darks en pansant à retirer 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 dark.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; dark.buffer[count*2+1]=m/256; dark.buffer[count*2]=m-dark.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 dark 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 :