2
我真的很困惑這種技術..我知道直方圖是每個值的頻率(我正在處理灰度圖像),並且我已經生成的方法來做到這一點:點向圖像處理 - 直方圖均衡(處理)
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?
另外,我很困惑的另一件事是,即使在對直方圖進行歸一化之後,我將如何使用擴展像素值重新創建圖像?