2

これは私が投稿した前の質問と非常に似ていることを私は知っています、私はこの問題に合うようにそれを修正する方法を理解することができません。

0から1までの値の配列があります。これらの値を赤(0)から青(1)の範囲のRGBカラー配列に変換したいと思います。前の質問で提案された解決策は、最初に値をHSVタプルに変換し、次にcolosys.hsv_to_rgb()RGB値に変換するために使用されました。

赤と緑の間の色を生成したい場合は、これで問題ありませんでした。色相の値を線形に補間することができました。ただし、極端な色が赤と青の場合、緑の色相は赤と青の間にあるため、中間値は緑の色になります。これを回避して、赤と青の近くでのみ色を取得する方法はありますか?

RGB値を直接線形補間できることは知っていますが、それでは適切なカラースペクトルが得られません。では、HSV空間を使用した解決策を教えてください。

4

2 に答える 2

4

0-1入力を0-(-120)出力にスケーリングし、モジュラスを360で取得し、それを色相として使用します(または、必要に応じて0-(-0.3333 ...)および1.0)。

于 2012-09-14T21:51:06.680 に答える
3

色相は循環値であるため、任意の色の色相に合計色相範囲を追加すると(最大値を法として、範囲内にとどまるように)、まったく同じ色が得られます。したがって、赤から青に増やすのではなく、赤から青に減らします。HSVは円筒形のカラーモデルです。

ここに画像の説明を入力してください

于 2012-09-14T21:56:02.033 に答える