私のインストラクターは次のように書いています。「グレースケールのグレースケールにイメージを量子化する関数を書いてください。たとえばq = 8なら0-31,32-63,32、 224-255は224です。これはこれまでの私のコードです。イメージを量子化する
void quantize (int image[][MAXHEIGHT], int width, int height, int q)
{
const int temp = 256/q;
int startPixel, endPixel;
int indicator = temp; // where the pixels are divided, 0-31, 32-63, etc if q = 8
while (indicator <= 256)
{
startPixel = indicator - temp;
endPixel = indicator - 1;
cout << "start value is " << startPixel << " and end value is " << endPixel << endl;
for (int row = 0; row < height; row++)
{
for (int col = 0; col < width; col++)
{
if ((image[col][row] > startPixel) && (image[col][row] <= endPixel));
{
image[col][row] = startPixel;
}
}
}
indicator += temp;
}
}
イメージを量子化しようとすると、イメージが完全に白くなるか、完全に黒くなります。私はこの機能を間違ってループしていると思うが、それを修正するために何をすべきか分からない。
image [col] [row] = floor((double)image [col] [row]/temp)* temp'を使用して、ループのためにネストされていますか? – Carafini