ペイントした色相の中間色を見つける
絵の具を混合するとき、得られる色は顔料の吸収特性の影響を受けます。青い絵の具は赤と緑の光を吸収し、黄色の絵の具は青い光を吸収します。これらの顔料を組み合わせると、理論的には濁った灰色または黒が生成されます。ただし、実際には、青のペイントが緑に偏ることで、濁った緑の色合いが得られることがよくあります。
ペイントの混合をシミュレートする代わりに、カラー ホイールに沿って色を補間するアルゴリズムを使用すると、直感的な結果が得られます。 HSL (色相、彩度、明度) 色空間は、色相の平均化を可能にするため、特に便利です。
Python の実装
以下の Python コードは補間を実装します。アルゴリズム:
from colorsys import rgb_to_hls,hls_to_rgb from math import sin,cos,atan2,pi def average_colors(rgb1, rgb2): h1, l1, s1 = rgb_to_hls(rgb1[0]/255., rgb1[1]/255., rgb1[2]/255.) h2, l2, s2 = 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 = hls_to_rgb(h, l, s) return (int(r*255.), int(g*255.), int(b*255.))
結果
入力色として青と黄色を使用して、アルゴリズムは緑の色相を生成します:
>>> average_colors((255,255,0),(0,0,255)) (0, 255, 111)
青の混合そしてシアンが生成するシアン:
>>> average_colors((255,255,0),(0,255,255)) (0, 255, 0)
制限
このアルゴリズムはペイントの混合を正確にシミュレートしないことに注意することが重要です。塗料の混合には光の吸収が含まれますが、これはより複雑なプロセスです。 HSL 補間アルゴリズムは、物理的現実に基づいていない直感的な色の混合を提供します。
以上がPython を使用して、指定された 2 つの RGB 色の間の中間色を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。