我正在尝试打印出与像素值出现在 .pgm 文件中的次数相对应的值的直方图。我知道我正在正确读取值,这是当我尝试在有问题的地方打印它们时。
int pixelHold[product];
for(long int i = 0; i < product; i++)
{
pixelHold[pixels[i]]++;
//cout << pixels[i] << ' ' << endl;
}
for(long int j = 0; j < product; j++)
{
cout << pixelHold[j] << ' ';
}
“product”是 Width x Height 像素值,它对应于我用来存储所有值的向量的大小。“pixelHold”只是一个数组,每次遇到像素值时我都会使用它来递增。例如,如果遇到“222”3 次,它将为“222”插槽打印“3”。
但是,问题是,当我打印直方图时,我得到一堆零,然后在最后 100 个左右的插槽中出现垃圾。当我将 for 循环的参数更改为较小的数字时,例如“221”,它会打印出正确的直方图。
任何帮助深表感谢!