1

色深度が8ビットのグレースケール画像のデータは、各ピクセルのバイトの最初の7ビットに保存され、最後のビットはそのまま保持されると聞きました。それで、すべてのピクセルの最後のビットを使用していくつかの情報を保存することができます、それは本当ですか?

もしそうなら、データはどのように個々のピクセルで解釈されるでしょうか?つまり、赤、青、緑はありません!では、これらのビットはどういう意味ですか?

また、画像のすべてのピクセルの平均値を計算するにはどうすればよいですか?私は、 JAIやその他のサードパーティではなく、純粋なJavaクラスを使用することを好みます。

アップデート1

BufferedImage image = ...; // loading image
image.getRGB(i, j);

getRGBメソッドは常に1バイトより大きいintを返します!!! 私は何をすべきか?

4

1 に答える 1

0

私の理解では、8ビットの色深度は、ピクセルあたり8ビット(つまり1バイト)があることを意味し、赤、グレン、青はすべてこの値です。たとえば、greyscale = 192は、Red = 192、Green = 192、Blue=192を意味します。7ビットとさらに1ビットはありません。

AFAIK、通常の平均を使用できます。ただしlong、合計に使用し、各バイトが符号なしであることを確認します。つまり、 `b&0xff

編集:グレースケールが128(または0x80)の場合、RGBは128、128、128、または0x808080になると思います。

于 2011-04-18T17:01:59.210 に答える