1

BufferedImage640x640 画像のすべてのピクセルの RGB 値を取得することができます。出力は次のようになります。

[...]
Pixel :(640, 634) RGB: 166 94 82
Pixel :(640, 635) RGB: 166 94 80
Pixel :(640, 636) RGB: 163 91 77
Pixel :(640, 637) RGB: 157 88 73
Pixel :(640, 638) RGB: 157 88 73
Pixel :(640, 639) RGB: 159 90 74
Pixel :(640, 640) RGB: 158 89 73
This image has 69197 colors.

この方法で得られた RGB カラーのそれぞれを 3 ビット RGB (8 色) に分類する必要があります。これを行う方法についてのアイデアが必要です... 8 色それぞれの RGB の範囲を知る方法3 ビット RGB の ありがとう!

4

2 に答える 2

3

結果の画像には、色成分ごとに1ビットが含まれます。

たとえば赤の場合、これを行う必要があります。

 red1Bit = redOriginal > 127 ? 1 : 0;

青と緑にも同じことをする必要があります。

于 2012-07-18T18:36:38.027 に答える
1

24 ビットの RGB パレットは、赤、緑、青の各色成分に 8 ビットを使用します。

RGB([0..255], [0..255], [0..255]).

3 ビットの RGB パレットは、赤、緑、青の色成分ごとに 1 ビットを使用します。

RGB([0..1], [0..1], [0..1]).

各チャネルの範囲は 2 つの値のみであるため、8 ビットのエンコードを 1 ビットのエンコードに減らす必要があります。これを行うには、8 ビット エンコーディングの最大値の半分で割ります ( 255 / 2 = 127) 。

各 RGB コンポーネントの変換に整数除算を使用できます。

3 bit R : (8-bit Red Value) / 127
      G : (8-bit Green Value) / 127 
      B : (8-bit Blue Value) / 127 

例:

3 bit R : (56) / 127 = 0
      G : (225) / 127 = 1
      B : (127) / 127 = 1
于 2012-07-18T18:44:41.530 に答える