2016-10-17 4 views
0

関数rgb2xyz()を使用しているときにmatlabが何をするのだろうか? rgb2xyz変換行列を使用して結果を再生成することはできません。 また、makecform( 'srgb2xyz')とrgb2xyz()の使用には違いがありますか?差分結果を生成します。matlabのmakecform( 'srgb2xyz')とrgb2xyz()の違い

答えて

1

makecform('srgb2xyz')のデフォルトのホワイトポイントはD50ですが、rgb2xyzのデフォルトはD65です。

>> applycform([.2 .3 .4],makecform('srgb2xyz','AdaptedWhitePoint',whitepoint('D65'))) 

ans = 

0.0638 0.0690 0.1356 

>> rgb2xyz([.2 .3 .4]) 

ans = 

0.0638 0.0690 0.1356 

>> applycform([.2 .3 .4],makecform('srgb2xyz')) 

ans = 

0.0617 0.0679 0.1024 

>> rgb2xyz([.2 .3 .4],'WhitePoint','D50') 

ans = 

0.0616 0.0679 0.1025 

makecformのドキュメントではなく、より最近のrgb2xyzを使用することを提案しています。行列を使用して結果を再現することについてのあなたのコメントについては、行列は一般にlinearデータから派生/適用されることに注意してください。結果を再現するには、srgbガンマ補正をモデル化する必要があります。

+0

ありがとうございます。助けになる!!! –

+0

しかし、D65またはD50を選択するのは何ですか?私はセグメンテーション作業をしていて、何らかの形で 'rgb2xyz'コマンドを使用するともっと良い結果が得られます。 –

+0

入力画像が他の色空間にエンコードされていることが分かっていない限り、D65は良い推測です。ウェブ上のほとんどの画像は、sRGBディスプレイを想定して符号化されており、sRGBは最も一般的なモニタの合理的な記述です。 sRGBは白色点をD65と定義します。ところで、私の答えが役に立つと分かったら、受け入れたものとしてマークしてください。 –

関連する問題