OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

光の三原色(RGB)の値を色に

  • 困ってます
  • 質問No.124209
  • 閲覧数1116
  • ありがとう数8
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 75% (6/8)

光の三原色についての質問なのですが、フィルターなどによって光をR,G,Bに分解した時、その値から何色かを特定するにはどうしたらよいのでしょうか。例えば、赤、茶、橙、黄、緑、青、紫、白、灰、黒の10色に分けるとしたら、どこからが黄色であるとか、どこからが灰色であるとかを決めたいのです。数値を使ってでの良い計算法がありましたら、理由とともに教えていただけないでしょうか?
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.5
レベル9

ベストアンサー率 71% (59/82)

名前付けにそんなに厳密性を求めていないんでしたら、
手抜き方法として、こんなのはどうでしょう?

以下では、RGBの計測値がデジタルデータになっていること、
コンピュータで簡単なプログラムを書ける環境にあること、
を仮定しています。

HTMLやXサーバ(UNIX用GUI環境)では、色の名前と
RGB値(各色256階調)の対応の規格を作っています。

この対応表の各項目の(色名,RGB値)の対応を全て配列として
記憶させておきます(辞書データ)。色名を判別したい
RGB値を入力データとします。入力データと辞書データの
全RGB値を比較し、最も誤差の小さい辞書データ中の色名を、
入力データの色名として出力する(最近傍法,
Nearest Neighbor法)、というプログラムを組めば、
RGB値→色名の変換プログラムができます。

ただし、これらの対応表はディスプレイ上での発色について
の対応関係なので、RGB値の元データを出力する計測機器の
特性がそれに近いかどうか、前もって検討しないと
いけないでしょう。

あと、色相、彩度、明度の計算方法は以下の通りです。

明度 = R + G + B
彩度 = 1 - 3×min(R, G, B)÷明度
色相 = arccos[ 1/2×{(R-G)+(R-B)}
        ÷ {(R-G)^2 + (R-B)(G-B)}^(1/2) ] (B<=Gのとき)
   2π-arccos[〃] (otherwise)


arccosは逆余弦、x^yはxのy乗を表しています。また、
正規化は適当に行ってください。

色の名前一覧
http://www.na.sakura.ne.jp/~nyan/HP/COLOR-NAME.html

HTML Color Name Reference
http://www.cam.hi-ho.ne.jp/~ryuu/javas/colors.html

RGB to Color Name Mapping
http://eies.njit.edu/~kevin/rgb.txt.html
お礼コメント
u-pa

お礼率 75% (6/8)

親切な回答、本当にありがとうございました。みなさんからの回答をもう一度調べてみようと思います。またわからないところがありましたら、質問をすることになると思いますが、その時はよろしくお願いします。
投稿日時 - 2001-09-02 18:21:09
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1
レベル10

ベストアンサー率 38% (62/161)

色の感覚なんて、個人差がありますからねぇ たとえば、赤と橙でもその分界点は人によってさまざまです 虹なんかでもよその国に行けば、6色だとか5色だとか言いますし・・・ 個人的な感覚でよいのなら グラフィック系のソフトを立ち上げて(Microsoftの「ペイント」とか) 色の作成で色々試してみてはどうかと。 目的の色をクリックすると、RGBの数値が出るやつありますよね? たしか「色」メニュー ...続きを読む
色の感覚なんて、個人差がありますからねぇ
たとえば、赤と橙でもその分界点は人によってさまざまです
虹なんかでもよその国に行けば、6色だとか5色だとか言いますし・・・

個人的な感覚でよいのなら
グラフィック系のソフトを立ち上げて(Microsoftの「ペイント」とか)
色の作成で色々試してみてはどうかと。
目的の色をクリックすると、RGBの数値が出るやつありますよね?
たしか「色」メニューから「色の編集 」→「色の作成」で
お礼コメント
u-pa

お礼率 75% (6/8)

回答ありがとうございます。今回は私は個人的感覚で色を分けてみようと思って質問させていただきました。ペイントですか。やってみようと思います。
投稿日時 - 2001-08-28 21:19:20


  • 回答No.2
レベル13

ベストアンサー率 21% (253/1156)

詳しくは分かりませんが前に色を合わせる仕事をしてましたので回答させてください。 白、灰、黒についてですが無彩色ですので濃度の数値しか出ないと思います。 有彩色は赤、オレンジ、黄色、グリーン、青、紫、赤の順がマンセルの順です。 色には色度、彩度、彩度(HCV)も必要です。 もしマンセルブックがありましたらそちらを実際にみられた方がいいと思いますし、質問に答えたいのでできましたら補足を ...続きを読む
詳しくは分かりませんが前に色を合わせる仕事をしてましたので回答させてください。

白、灰、黒についてですが無彩色ですので濃度の数値しか出ないと思います。

有彩色は赤、オレンジ、黄色、グリーン、青、紫、赤の順がマンセルの順です。

色には色度、彩度、彩度(HCV)も必要です。

もしマンセルブックがありましたらそちらを実際にみられた方がいいと思いますし、質問に答えたいのでできましたら補足をお願いします。

参考で新版 色の常識 日本規格協会発行の本を注文されてはどうでしょう?
本屋さんには無い可能性が高いです。
補足コメント
u-pa

お礼率 75% (6/8)

回答ありがとうございます。マンセルブックですか。すいません、どんな本なのか分からないので調べてみます。今回私は、R,G,Bの各々の値から、だいたいそれがどんな色なのかをおおざっぱにでも分からないかと考え、質問をさせていただきました。個人的にでも色の境目を決めたいのですが、あまり知識がないためわからないのです。できれば色の数値関係がわかるように教えていただけませんでしょうか?
投稿日時 - 2001-08-28 21:22:14
  • 回答No.3
レベル10

ベストアンサー率 29% (37/125)

1.不変的な色 色の成分(どの波長を吸収し、反射するか)については、不変です。(っていうか数値化出来ます) しかし、連続した波長である色を○○色に分ける、というのは慣用的なものであり、時には個人の感覚によるものであり、明確な区分(ここからここまでが何々色、と決める事)は不可能と言わざるを得ません。 私は、印刷インキを調色し、品質管理のため、作ったインキを展色し、分光光度計にかけてスペクトル分析をし ...続きを読む
1.不変的な色
色の成分(どの波長を吸収し、反射するか)については、不変です。(っていうか数値化出来ます)
しかし、連続した波長である色を○○色に分ける、というのは慣用的なものであり、時には個人の感覚によるものであり、明確な区分(ここからここまでが何々色、と決める事)は不可能と言わざるを得ません。
私は、印刷インキを調色し、品質管理のため、作ったインキを展色し、分光光度計にかけてスペクトル分析をし、色を数値化する仕事をやっていました。
その時に使っていた表色系(色を数値化・体系化する方法)は、「L*a*b*」というのでした。見本色との色差は、「△E*」で表します。詳しくはURLをご覧下さい(RGBの値を色にする、というのもあります)。

2.相対的な色
色の見え方については、同じ色であっても、見る人の視覚や光源の色温度(白熱灯だと赤く見えるし、蛍光灯だと青く見える)により、相対的に変化します。条件等色(メタメリズム)とは、分光分布が異なる2つの色が特定の観察条件で同じ色に見えることをいいます。視感測色による調色は、3刺激値(R.G.B)が合致するだけで分光分布の一致までは分からないので、光源が異なると色が違って見えるケースが多いのです。分光分布が等しい等色の事を、アイソメリック・マッチング(完全等色)といい、どんな光源下でも等しい色に見えます。
お礼コメント
u-pa

お礼率 75% (6/8)

回答ありがとうございます。確かに色には個人差がありますし、明確な区分はむずかしいですよね。でも個人的でも良いので、色を値から区分したいのですが・・・。
投稿日時 - 2001-08-28 21:34:03
  • 回答No.4
レベル13

ベストアンサー率 46% (643/1383)

えーっと、RGBの値を元に、HSL(色相、彩度、明度)の値を計算します。具体的な計算式は不明です(^^; 画像処理関係の書籍とかに載ってると思います。 んで、まずは色相の値を使って、赤、茶、橙、黄、緑、青、紫等の色を判別します。 その後で、彩度を使って、その色が無彩色(白、灰、黒)に当たるかどうかを判別し、更に、明度を使って白、灰、黒のどれに当たるかを判別します。 ...続きを読む
えーっと、RGBの値を元に、HSL(色相、彩度、明度)の値を計算します。具体的な計算式は不明です(^^; 画像処理関係の書籍とかに載ってると思います。

んで、まずは色相の値を使って、赤、茶、橙、黄、緑、青、紫等の色を判別します。
その後で、彩度を使って、その色が無彩色(白、灰、黒)に当たるかどうかを判別し、更に、明度を使って白、灰、黒のどれに当たるかを判別します。
お礼コメント
u-pa

お礼率 75% (6/8)

回答ありがとうございます。RGBの値を元に、HSL(色相、彩度、明度)の値を計算するのですか?わかりました、調べてみます。もしわかりましたら、教えてください。
投稿日時 - 2001-08-28 21:39:20
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ