このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
テスト チャート上の色の CIE94 色差の計算
この例では、CIE94 標準を使用して測定色と基準色の色差を計算する方法を説明します。
関数measureColor
は、テスト チャート上の色を測定し、CIE76 標準を使用して測定色と基準色の色差を計算します。関数 imcolordiff
を使用して、CIE94 標準または CIEDE2000 標準を使用して色差を計算することもできます。
ColorChecker® チャートのイメージをワークスペースに読み取ります。
I = imread("colorCheckerTestImage.jpg");
colorChecker
オブジェクトを作成し、ROI 注釈を含むチャートを表示します。
chart = colorChecker(I); displayChart(chart)
各カラー パッチ ROI で色を測定し、測定値をテーブル colorTable
で返します。テーブルの変数 Delta_E
内の色差測定値は CIE76 標準に従います。
colorTable = measureColor(chart);
カラー パッチ ダイアグラムに、対応する CIE76 色差を各パッチに重ね合わせた状態で測定色および基準色を表示します。
displayColorPatch(colorTable)
基準 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)
参考
deltaE
| imcolordiff
| rgb2lab
| displayChart
| displayColorPatch
| plotChromaticity