まず、画像をスキャンして最小/最大を検索する必要があります。lut[] ではなく、OriginalImage の [0..pixelCount] で検索します。
次に、ヒストグラムを塗りつぶします(lut[]配列、塗りつぶしませんでした)
次に、EqualizedImage[k] を (max - min) * (Original[k] - min) / pixelCount; で埋めます。私がいくつかの間違いを犯していなければ。
編集(古いものはこちら)
for() ループの 'i' は、'i <= MaxIntensity' (MaxIntensity = 255) で確実に範囲外になります。
lut = newArray(256)
...
min = 0;
for (i = 0; i <= MaxIntensity&& lut[i] == 0; i++) {
min = lut[i+1];
}
そのコードで何をしようとしているのかは明確ではありませんが、lut[] 配列でゼロ以外の最小値を探しているだけなら、これを使用しない理由は次のとおりです。
min = 0;
for (i = 0; i < MaxIntensity ; i++)
{
if(min > lut[i]) { min = lut[i]; }
}
元のループに「lut[i] == 0」を含める理由は明確ではありません。