色空間内の色の補間
さまざまな芸術やデザインの文脈において、異なる色をブレンドまたは補間して色空間を作成する必要がよくあります。希望の色合い。デジタル カラーの混合は、RGB スクリーンに表示されるような発光カラーの場合は簡単ですが、物理的なペイントの混合をシミュレートするには独特の課題が生じます。
従来のペイントの混合は吸収に依存しており、顔料が特定の波長の光を選択的に吸収します。青と黄色の絵の具を混合すると、得られる色は各顔料の吸収特性によって決まります。青い絵の具は赤と緑の光を吸収し、黄色の絵の具は青い光を吸収します。完璧なシナリオでは、この吸収プロセスでは、鮮やかな緑色ではなく、暗い色または濁った色が生成されます。
しかし、実際には、物理的な色素は理想的な吸収特性から逸脱し、さまざまな結果が生じる可能性があります。色を混ぜるとき。この複雑さに対処するために、研究者は物理的なペイントの動作をより正確に表現するカラー モデルを開発しました。そのようなモデルの 1 つが減法混色モデルです。
減法混色
減法混色は、特に減法混色を使用する場合に、物理的な顔料の動作をシミュレートするために使用されます。塗料、染料、インクなどのシステム。このモデルでは、2 つの色を混合した結果は、白色光源から各顔料の吸収係数を差し引くことによって決定されます。
たとえば、青と黄色の顔料を混合すると、青の顔料は赤と緑の光を吸収します。 、一方、黄色の色素は青色光を吸収します。結果の色は濁った緑色で、どちらの顔料にも吸収されなかった残りの光を表します。
色空間での補間
減法混色は物理的な塗料の混合を現実的に表現するものですが、シミュレーションするには計算が複雑になる可能性があります。したがって、RGB や HLS などの色空間で色を補間するには、別の方法がよく使用されます。
RGB 色空間での補間には、指定された 2 つの色成分間の個々の色成分 (赤、緑、青) をブレンドすることが含まれます。色。このアプローチは簡単ですが、物理的なペイントの混合を正確に反映していない色が生成される可能性があります。
一方、HLS 色空間での補間では、指定された 2 つの色の色相、明度、彩度のコンポーネントをブレンドする必要があります。この方法は柔軟性が高く、青と黄色を混ぜるときの緑の中間色など、さまざまな色を混ぜる際により直観的な結果を生成します。
サンプル実装
次の Python コードスニペットは、HLS 色空間を使用した色補間を示します:
import colorsys def average_colors(rgb1, rgb2): h1, l1, s1 = colorsys.rgb_to_hls(rgb1[0]/255., rgb1[1]/255., rgb1[2]/255.) h2, l2, s2 = colorsys.rgb_to_hls(rgb2[0]/255., rgb2[1]/255., rgb2[2]/255.) s = 0.5 * (s1 + s2) l = 0.5 * (l1 + l2) x = cos(2*pi*h1) + cos(2*pi*h2) y = sin(2*pi*h1) + sin(2*pi*h2) if x != 0.0 or y != 0.0: h = atan2(y, x) / (2*pi) else: h = 0.0 s = 0.0 r, g, b = colorsys.hls_to_rgb(h, l, s) return (int(r*255.), int(g*255.), int(b*255.)) print(average_colors((255,255,0),(0,0,255))) print(average_colors((255,255,0),(0,255,255)))
この実装は、HLS 色空間を使用した青 (0,0,255) と黄色 (255,255,0) の補間を示し、結果として緑の色合いが得られます。
これは重要です。方法やその他の色補間技術は、物理的なペイントの混合を完全にはエミュレートしません。ただし、デジタル環境内でリアルな色の遷移を生成する便利な方法を提供します。
以上が異なる色空間での色補間は、どのようにして物理的なペイントの混合を正確にシミュレートできるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。