← ブログ一覧

色は3つの数でできている — 色空間という地図

🌈 色 色空間可視化知覚

いま見ている画面の、どんな色も。実は3つの数でできている。赤・緑・青、それぞれ 00 から 255255 まで。たった3つの数の組み合わせで、夕焼けも、海も、肌の色も、ぜんぶ表せてしまう。

なぜ3つなのか。そして、その「3つの数の世界」がどんな形をしているのか。今日はそれを、地図として眺めてみたい。

なぜ3つの数なのか

人の目の奥には、色を感じる細胞(錐体)が3種類ある。それぞれ、長い波長(赤寄り)・中くらい(緑寄り)・短い波長(青寄り)に強く反応する。だから私たちが「色」として感じているのは、結局この 3つの反応の強さの組 なんだ。

ということは、色は3つの数を並べたもの——3次元のベクトルだ。

c=(R, G, B)\mathbf{c} = (R,\ G,\ B)

数学で「3つの数の組」と言われたら、もう答えは決まっている。それは 3次元空間の中の1点 だね。色が連続で、言葉にしにくいのは、それが空間に広がっているからなんだ。

色は立方体の中にある

R, G, BR,\ G,\ B をそれぞれ縦・横・奥行きの軸にとってみよう。すると、すべての色は一辺 256256立方体 の中の点になる。

文字で読むより、回して見たほうが早い。色空間3Dビューア で、この立方体をドラッグして傾けてみて。色が空間にどう詰まっているかが、一目で掴めると思う。

なぜ色相は「環」になるのか

ここで面白いことが起きる。立方体を、さっきの白黒の対角線の方向から——つまり真上から覗き込むと、6つの角(赤・黄・緑・シアン・青・マゼンタ)が、きれいに六角形に並ぶ。色相が になっているんだ。

不思議なのは、光の波長は赤から紫までの 一本道 なのに、なぜ端と端がつながって輪になるのか、という点。理由は、私たちが赤と紫を混ぜた「赤紫(マゼンタ)」を、自然な色として感じるから。波長の直線の両端を、知覚が手でつないで閉じてしまう。だから色相は、行き止まりのない円周になる。

明るさを別の軸に分ける

RGB は「光をどう混ぜるか」には素直だけれど、人にとっては少し使いにくい。「明るさ」「鮮やかさ」「色味」が、3つの数の中に混ざってしまっているからだ。

そこで、明るさを1本の軸に抜き出して、残りで色味を表す地図がよく使われる。色相・彩度・明度に分ける HSV や、人の見え方に合わせた Lab がそれだ。Lab まで来ると、空間上の 距離が、そのまま「見た目の違い」 に近くなる。「数値は近いのに別の色に見える」というズレが小さくなるんだ。

この「近さの測り方」で結果がどう変わるかは、PixLab の知覚減色で、Lab と RGB を切り替えて見比べられる。

地図を持って歩く

色は、連続で、つかみどころがない。けれど「3つの数が作る3次元の地図」だと思って眺めると、急に迷子にならなくなる。黒はここ、白はあそこ、灰色は背骨、色相はその周りを回る環。

次に画面のスポイトで色を拾うとき、その (R,G,B)(R,G,B) が地図のどこにいるか、少しだけ想像してみてほしい。色が、ただの感覚じゃなく、ちゃんと場所を持っているのが分かると思う。

— ランキン