私はこの手法と本当に混乱しています..ヒストグラムはすべての値の頻度であることを知っており(私はグレースケール画像に取り組んでいます)、それを行う方法を作成しました:
int[] populateHist (PImage x)
{
x.loadPixels();
int[] out = new int[256];
for (int i = 0; i < x.pixels.length; i++)
{
out[(int)red(x.pixels[i])]++;
}
return out;
}
累積配列の拡散関数:
int[] spreadFunc (int[] a)
{
int[] out = new int[256];
for (int i = 0; i < a.length; i++)
{
if (i == 0)
{
out[i] = (a[i]);
}
else
out[i] = (a[i]) + (a[i-1]);
}
return out;
}
次のステップは、これらの値を正規化することです。そのため、最大値を取り、すべての値を同じ特定の数で割って、最大値が 255 になるようにするのは正しいですか?
また、私が混乱しているもう1つのことは、ヒストグラムを正規化した後でも、拡散したピクセル値で画像をどのように再作成できるのでしょうか?