-3

以下に基づいて、0 から 1 の間の値を RGB 値に変換したいと考えています。

ここに画像の説明を入力

Pythonでこれをどのように行いますか?

4

3 に答える 3

2

colorsysモジュールを試してください。色相を変数として HSB を変換し、彩度と明るさを両方とも 1.0 にすると、そのような結果が得られます。

于 2012-04-22T15:53:28.087 に答える
0

Python ルックアップ テーブル ソリューションを検索すると、この非常に便利な例が返されました:
http://www.zovirl.com/2008/11/04/interpolated-lookup-tables-in-python/

赤チャンネルの LUT の例は次のとおりです。

points = ((.4,.2), (.6,1.), (.9,1.), (1.,.5))
table = InterpolatedArray(points)
print table[.5]
于 2012-04-22T16:30:24.137 に答える
0

3 つのカラー関数には形状の保存があり、見た目はまったく同じであることに注意してください。そのため、単一の関数を定義し、それをオフセット入力で呼び出して R、G、および B 値を生成するだけで済みます。ヒント; 緑の成分のグラフを見てください。これは基本的にドメイン 0-0.5 の上昇ラインとドメイン 0.5-1 の下降ラインです。緑色の線が色 = 0.0 (これは上昇線の下部で、< 0 になります)、色 = 1.0 および相互 (これは元の線の上部で、< 1 になります) と交差するポイントを見つけるために外挿します。 )、それを使用して緑のコンポーネントの関数をプログラムします。次に、戻り値を 0 から 1 の間に制限します。

def component(x):
  '''Function for the green component.'''
  top = 1.5
  bottom = -0.5
  if x < 0.5:
    rv = x/0.5*(top-bottom)+bottom
  else:
    rv = (x-0.5)/0.5*(bottom-top)+top
  if rv > 1.0:
    return 1.0
  if rv < 0.0:
    return 0.0
  return rv

( と の値topbottom推定値です。グラフを測定してください!)

他の色については次のとおりです。赤いグラフが、緑のグラフよりも大きな色値で 0 ラインを離れていることに注意してください。したがって、緑成分関数を使用して赤色を取得するには、入力値から赤と緑のグラフ間の水平距離を減算してから、関数に入力して緑の値を計算します。青の値については、減算する代わりに何かを加算する必要があります。

于 2012-04-22T16:41:32.547 に答える