Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

テスト チャート上の色の CIE94 色差の計算

この例では、CIE94 標準を使用して測定色と基準色の色差を計算する方法を説明します。

関数measureColorは、テスト チャート上の色を測定し、CIE76 標準を使用して測定色と基準色の色差を計算します。関数 imcolordiff を使用して、CIE94 標準または CIEDE2000 標準を使用して色差を計算することもできます。

ColorChecker® チャートのイメージをワークスペースに読み取ります。

I = imread("colorCheckerTestImage.jpg");

colorChecker オブジェクトを作成し、ROI 注釈を含むチャートを表示します。

chart = colorChecker(I);
displayChart(chart)

Figure Color checker test chart contains an axes object. The axes object contains 25 objects of type image, text.

各カラー パッチ ROI で色を測定し、測定値をテーブル colorTable で返します。テーブルの変数 Delta_E 内の色差測定値は CIE76 標準に従います。

colorTable = measureColor(chart);

カラー パッチ ダイアグラムに、対応する CIE76 色差を各パッチに重ね合わせた状態で測定色および基準色を表示します。

displayColorPatch(colorTable)

Figure Visual Color Comparison contains an axes object. The axes object contains 25 objects of type image, text.

基準 L*a*b* カラー値と、測定した RGB カラー値をテーブルに抽出します。

referenceLab = colorTable{:,["Reference_L","Reference_a","Reference_b"]};
measuredRGB = colorTable{:,["Measured_R","Measured_G","Measured_B"]};

D50 白色点を指定して、測定した RGB カラー値を L*a*b* 色空間に変換します。

measuredLab = rgb2lab(measuredRGB,WhitePoint="d50");

色の測定値が L*a*b* 色空間内にあることを指定し、関数 imcolordiff を使用して色差を計算します。既定の設定では、この関数は CIE94 標準を使用して色差を計算します。

dE = imcolordiff(measuredLab,referenceLab,isInputLab=true);

新しい色差の測定値を使用して新しいカラー テーブルを作成します。

colorTable94 = colorTable;
colorTable94{:,"Delta_E"} = dE;

カラー パッチ ダイアグラムに、対応する CIE94 色差を各パッチに重ね合わせた状態で測定色および基準色を表示します。

displayColorPatch(colorTable94)

Figure Visual Color Comparison contains an axes object. The axes object contains 25 objects of type image, text.

参考

| | | | |

関連するトピック