ピクセル値が .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] << ' ';
}
「製品」は幅 x 高さのピクセル値で、すべての値を格納するために使用しているベクトルのサイズに対応します。「pixelHold」は、ピクセル値に遭遇するたびにインクリメントするために使用している単なる配列です。たとえば、「222」に 3 回遭遇した場合、「222」スロットに対して「3」を出力します。
ただし、問題は、ヒストグラムを印刷すると、一連のゼロが表示され、最後の 100 スロット程度がゴミになることです。for ループのパラメーターを「221」などの小さい数値に変更すると、その時点までの正しいヒストグラムが出力されます。
どんな助けでも大歓迎です!