Bei der Histogrammskalierung wird eine kontrastverstärkende Wirkung dadurch erreicht, dass durch eine lineare, globale Transformation eine Histogrammspreizung (Histogram Spreading) erreicht wird. Damit wird der gesamte verfügbare Grauwertbereich auch tatsächlich ausgenutzt.
Private Sub hist_angl_Click()
Dim histo(255) As Long
Dim LUT(255)
Dim g
For g = 0 To 255
LUT(g) = (g - min) * (255 / (max - min))
Next g
Dim x, y, wert
For x = 0 To header.Breite - 1
For y = 0 To header.Höhe - 1
wert = Bildmatrix(y, x)
pic.PSet (x, header.Höhe - y), rgb(LUT(wert), LUT(wert), LUT(wert))
Bildmatrix(y, x) = LUT(wert)
Next y
Next x
End Sub
Der untere Grenzwert wird auf den Paletteneintrag mit der 0 (schwarz) gesetzt, der oberste Grenzwert, also der hellste Grauwert wird auf den Eintrag 255 (weiß) gesetzt.