2016-03-23 3 views
1

私は、数学を使ってCIE 1931色域をプロットしようとしています。xyY色がCIE 1931ガマット内にあるかどうかを確認するには?

私はYを1.0に固定したxyYカラーをとり、xとyを0.0から1.0まで変化させます。

結果の色を画像としてプロットすると(つまり、(x、y)のピクセルはxyY色がRGBに変換されます)、真ん中のどこかでCIE 1931カラーガマットを使用して、私はCIE 1931色域の範囲外のピクセルを処分するにはどうすればよい:0.0から1.0へ

xyY表:次のように私の質問があるので

image

今私は、古典的な舌片状の画像が欲しいです?

ie。私のxyYカラーがCIE 1931カラーレンジの内側か外側かをどのようにして知ることができますか?

+0

r、g、bのすべてが0..1以内にあることを確認しますか? –

+0

RGB値が[0-1]の範囲内にあるかどうかを確認すると、RGB色域内にあるかどうかを確認できます。 –

+0

RGBはCIE1931ガマットではなく、三角形を与えます。 – Ayub

答えて

0

あなたはColourcolour.is_within_visible_spectrum定義使用することができます。この定義は、CIE XYZ三刺激値を期待し、あなたがcolour.xyY_to_XYZ定義を使用してXYZにごCIE xyY表のcolourspace値を変換しなければならないこと

>>> import numpy as np 
>>> is_within_visible_spectrum(np.array([0.3205, 0.4131, 0.51])) 
array(True, dtype=bool) 
>>> a = np.array([[0.3205, 0.4131, 0.51], 
...    [-0.0005, 0.0031, 0.001]]) 
>>> is_within_visible_spectrum(a) 
array([ True, False], dtype=bool) 

注意を。

+0

私はそのコードを見て、ポリゴンの輪郭として形状を定義し、その点がポリゴンの内側にあるかどうかを確認します。それを行うための単純な数学的関数のように見える、それはすべての実験データです。ポリゴンの輪郭の座標は["CIE標準オブザーバ"](https://en.wikipedia.org/wiki/CIE_1931_color_space#CIE_standard_observer) – Ayub

+0

によって与えられる。すべてのCIE標準オブザーバは、通常5nmまたは1nmでは、それらを表す正確な連続関数は存在しない。 –

+0

[これらの人](http://www.ppsloan.org/publications/XYZJCGT.pdf)はあなたに同意しませんでしたが... – Ayub

関連する問題