2

はい、車輪の再発明を試みています。:-) 。私は独自の画像圧縮を行っています (画像の一部を TCP 経由で送信するためのいくつかのアイデアをテストしています)。とにかく...私は24ビットのRGBカラーをステップスルーし、完全な線形範囲を取得し、x間隔でその範囲を(ステップスルー)しようとしています。

スペクトル全体で平均 99 色を取得しようとしています。(24bit / 99) = 167488.6363636364 なので、16K 間隔で 99 色パレットの色を選びたいと思います。

RGB が実際にどのように機能するかを理解するのに苦労しています...線形範囲ではないようです...、またはありますか...?

現在、次のことを行っています。

var_interval = (255 * 255 * 255) / 99

 For r = 0 To 255
     For g = 0 To 255
          For b = 0 To 255

                    If var_counter = var_interval Then
                    objWriter.Write(r & "," & g & "," & b)

                    End If

                    var_counter += 1
           Next
     Next
 Next

色を取得していますが、このステップでは「スケーリング」色は生成されません。

何か案は?

4

1 に答える 1

3

色のスペクトルを反復する方法は確かにありますが、このアプローチを取るかどうかはあなた自身の選択です:)。RGB (赤、緑、青) の代わりに HSL 色空間 (色相、彩度、明度) を利用できます。色相は色 (0 から 360 の範囲) を表し、彩度は必要な色の量 (0 から 100) を表し、明度は必要な明るさを表します。

したがって、質問に答えるには、色相からのサンプリング レートとして 360/99 を使用し、必要な一貫した値と強度を選択してから、それを RGB 空間に変換して表示できます。変換については、 http ://web2.clarkson.edu/class/image_process/RGB_to_HSI.pdf を参照してください。

HSL 色空間については、http: //en.wikipedia.org/wiki/HSL_and_HSVを参照してください。

于 2011-11-03T23:01:17.147 に答える