• 締切済み

マンセル⇔XYZ,RGB変換式或いは対応表

現在、リニアRGB、sRGB、Lab、XYZ、マンセルの表色系の 相互変換ソフトを制作しております。 マンセル以外の表色系については変換は成功いたしました。 しかし、マンセルとの変換については未だ成功しておりません。 マンセル⇔XYZ、RGB、Labの変換方法をご存知の方はお教えください。 できれば変換式の方が好ましいのですが、対応表でも構いません。 対応表の場合は、 マンセルにおける色差と他表色系の色差を埋める補間式も ご教授くだされば幸いです。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

「規格の一部をなすものではない」という注釈はありますが, JIS Z 8721 の後ろの方に xyY →HV/C の変換サブルーチンが (BASIC で) 書かれています. 「表から近いところを探して線形補間」してるだけなんですけど.

yaha_2007
質問者

お礼

ご回答ありがとうございます お礼が遅れて申し訳ありません。 ただ今JISZ8721を取り寄せているところです。 届き次第、参考にさせていただきます。

  • 10ken16
  • ベストアンサー率27% (475/1721)
回答No.2

例えば、こんな表では? http://homepage1.nifty.com/color-gogo/PCCS.html あるいはこんなソフトもあります。 http://www.colordream.net/Iro_MV.htm

yaha_2007
質問者

お礼

ご回答ありがとうございます。 リンクに目を通させていただきました。 参考にさせていただきます。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

マンセルは目で見た色について値を決めていたはずですので、色見本が必要になります。 ですのでRGBなどで指定した色にはマンセルカラーに無い色も存在します。 色見本は市販されていますが全ての色を網羅した物を入手するためにはかなりの出費が必要です。 実はこれ、近似的に計算で求めるアルゴリズムを考えるだけで一つの分野になってしまうくらいの物です。 素直に色見本からRBG、Lab値を拾って一覧表(対応表)を作成しましょう。

yaha_2007
質問者

お礼

ご回答ありがとうございます。 自分なりに調べましたが、どの文献も マンセル変換を行う場合は、対応表を用いているようです。 マンセルの色差で表現できない場合については 補間値をとることで表現をしているようです。 しかし、補間式そのものについては見つけることができませんでした。 マンセル→RGB、XYZ、Labだけでなく RGB、XYZ、Lab→マンセルの相互変換を行いたいので 補間式は大変重要です。 ご存知でしたらご教授ください。

関連するQ&A

  • 表色系の種類

    XYZ表色系やマンセル表色系、Lab表色系というものがあると知ったの ですが他に世の中で出回っている表色系にはどのようなものがあるの でしょうか。世の中であまり使われていないマイナーな表色系のことも 教えてください。 またそれらの表色系について書かれているサイトなどあったら教えて ください。

  • 表色系について

    今、表色系(特にCIE表色系とオストワルト表色系)について勉強しています。 表色系にはたくさんの種類がありますが、どうしてそんなにたくさんの種類が必要なのでしょうか?表色系によってそれぞれ用途が異なるのでしょうか?(←もし、それぞれの用途がありましたら教えていただけると幸いです)また、たとえばRBG表色系が改良され、XYZ表色系が、さらにそれが改良されてLAB表色系ができたと思うのですが、今でもRBG表色系やXYZ表色系が使われていたりするのはどうしてなんでしょうか?また、よく「変換」という言葉を目にするのですが、その必要性もよくわかりません。。。 本当に基礎的な質問ばかりですみません・・・

  • 情報の専門分野の方に問う、色とは・・・

    わたしは大学で情報について学んでいるの者です。先日、図書館で本を読んでいると、ふと疑問が浮かび上がりました。 わたしは考えても、きちんとした理由がわからなかったので、詳しい方、お手数ですが教えていただけませんか?? 1.色の錯覚ってどんなものがありますか?? 2.マンセル表色系からRGB表色系への変換の導き方を教えてください。 お手数ですがお願いします。

  • XYZカラースペース(CIE1931)について

    RGB表色系ではスペクトル上のすべての色を表すのに一部負数が必要であり、計算に不便だったため負数を必要をせずともすべての色を表せるXYZ表色系を作ったことまでは分かっているのですが、どのような数学的手段でXYZを作ったのかが分かりません。 結果としてのRGBとXYZとの行列変換は見つかるのですがそこに至るまでの経緯を知りたいです。 もしお分かりの方が居ましたら難しい説明でも結構ですので教えていただけると幸いです。 また参考リンクなども募集しています。 よろしくお願いします。

  • RGB値をL*a*b*に変換したい

    VC++で画像処理のプログラムを組んでいます。 RGB値からL*a*b*への変換式はネット上にあるんですが、 実際コーディングして、出た値が正しいのかどうかを確かめるすべがないので困っています。 任意のRGB値を入力して、Lab値を取得する手段はないでしょうか? ちなみに私の研究室にはフォトショとイラレはあります。 このへんのツールを使うとできたりするんでしょうか?

  • 色の変換

    色の形式 LABカラーとRGBカラーを変換したいです。 LAB,RGBを相互に変換するにはどうしたらよいでしょうか?

  • YUV⇔RGB変換がうまくいきません。

    24bppRaw(R,G,Bの順番)を以下の式でYUVに変換します。 layer[i+j]がRでlayer[i+j+1]がGでlayer[i+j+2]がBです。 Y=(unsigned char)(0.257*layer[i+j]+0.504*layer[i+j+1]+0.098*layer[i+j+2]+16); U=(unsigned char)(-0.148*layer[i+j]-0.291*layer[i+j+1]+0.439*layer[i+j+2]+128); V=(unsigned char)(0.439*layer[i+j]-0.368*layer[i+j+1]-0.071*layer[i+j+2]+128); そのあとにYUVをRGBのrawに以下の式で変換します。 Y=layer[i+j]; U=layer[i+j+1]-128; V=layer[i+j+2]-128; R=(unsigned char)(1.164*(Y-16)+1.596*V); B=(unsigned char)(1.164*(Y-16)+2.018*U); G=(unsigned char)(1.164*(Y-16)-0.391*U-0.813*V); しかし元のRGBにはならず画像がおかしくなります。 もちろんオーバーフロー、アンダーフローなどは丸めています。 どのような式を用いれば、RGB⇔YUV 相互変換ができるのが ご教授ください。もう半年くらい随分迷っています。 ダイレクトに式だけ提示いただけるだけで結構なので よろしくおねがいいたしますm(___)m 参考HP http://vision.kuee.kyoto-u.ac.jp/~hiroaki/firewire/yuv.html http://www.sm.rim.or.jp/~shishido/yuv.html

  • Excel VBA での計算について…

    こんばんは、最近VBAを使い始めた初心者のものです。 画像処理をやってます。Bitmap形式の画像からRGB値を読み込んでそれぞれのワークシートに値を入れる所までは出来てます。 そのあと、RGB→XYZ→L*a*b*に変換した値を新しいワークシートの対応するセルにいれたいのですが、なにぶん初心者なのでどう書くのかわからず困ってます。 どなたか教えていただけないでしょうか? ちなみにRGB→XYZの変換式は X=0.607R+0.174G+0.201B Y=0.299R+0.587G+0.114B Z=0.066G+1.117B で、XYZ→L*a*b*の変換式は (X/0.983)>0.008856,(Y/1.000)>0.008856,(Z/1.183)>0.008856の時 L*=116(Y/1.000)^1/3 a*=500{(X/0.983)^1/3-(Y/1.000)^1/3} b*=200{(Y/1.000)^1/3-(Z/1.183)^1/3} (X/0.983),(Y/1.000),(Z/1.183)の値に0.008856以下のものがある場合は、 上式で対応する立法根の項をそれぞれ以下の式に置き換えて計算します。 (X/0.983)^1/3→7.787(X/0.983)+16/116 (Y/1.000)^1/3→7.787(Y/1.000)+16/116 (Z/1.183)^1/3→7.787(Z/1.183)+16/116

  • openGLについて質問です.

    openGLで図に色をつけようとしたのですがうまくいきません. マンセル表の紫をRGBに変換したらR:41,G:42,B:163だったので, glColor3b(41,42,163); と,したのですが実際に表示された色は緑のような色でした. この処理についてのアドバイスなどあれば教えてください.

  • 【色】PC上で波長から色を求める

    再び質問させていただきます。 波長から色を求めてコネコネするプログラムを作りたいと思いました。 それで http://www.op.titech.ac.jp/lab/Take-Ishi/hirameki/sp2xyz.pdf こちらのPDFに行き着き、国際照明委員会(CIE)のHPを見つけ http://www.cie.co.at/index_ie.html フリードキュメントから 「CIE 1931 Standard Colorimetric Observer x2(lambda) data (between 380 nm and 780 nm at 5 nm intervals)」 を見つけたまでは良かったのですが、ここにあるx,y,zの値の意味がどうにも理解できませんでした。 XYZ表色系かと思いましたが、マイナス値が無いので違うのかな?と思い、さらにRGBに直してみてもマイナスの値や、1以上の値が出てきてきました。 ではPDFの方のx,y,zがxyY表色系に相当するのかと思いましたが、それもおかしい結果になります。 (というかそもそもPDFにある「xyz 色座標」という用語自体検索でほとんど出てきません) この数字の意味が分かる方いらっしゃいましたらよろしくお願いいたします。 ちなみにデータをこちらに用意いたしました。 http://sirooni.moe.to/data20071212.txt

専門家に質問してみよう