このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
measureColor
テスト チャートを使用した色再現の測定
説明
は、Imatest® eSFR チャート[1]または Calibrite ColorChecker® Classic チャート[2]のすべての色関心領域 (ROI) における色の値を測定します。colorTable
= measureColor(chart
)
[
は、線形最小二乗近似を使用して計算された色補正行列も返します。colorTable
,colorCorrectionMatrix
] = measureColor(chart
)
例
eSFR チャートの色精度の測定
eSFR チャートのイメージをワークスペースに読み取ります。
I = imread("eSFRTestImage.jpg");
esfrChart
オブジェクトを作成し、ROI 注釈を含むチャートを表示します。16 個のカラー パッチ ROI には白色の数字でラベル付けされています。
chart = esfrChart(I);
displayChart(chart,displayEdgeROIs=false, ...
displayGrayROIs=false,displayRegistrationPoints=false)
すべてのカラー パッチ ROI で色を測定します。
colorTable = measureColor(chart)
colorTable=16×8 table
ROI Measured_R Measured_G Measured_B Reference_L Reference_a Reference_b Delta_E
___ __________ __________ __________ ___________ ___________ ___________ _______
1 67 57 58 38.586 7.541 7.0812 15.15
2 156 127 122 62.182 13.225 13.826 9.8745
3 73 95 152 49.369 -0.51463 -20.062 18.455
4 62 79 58 43.926 -6.8587 17.278 14.849
5 104 109 171 53.415 9.457 -22.822 12.99
6 118 175 187 69.95 -20.889 -0.21752 13.123
7 214 192 69 78.643 1.8052 67.091 9.2399
8 154 73 138 46.853 41.998 -17.056 5.1282
9 62 120 182 51.05 -15.166 -22.416 22.813
10 55 80 185 40.811 8.7346 -44.265 22.782
11 79 135 72 55.716 -23.419 28.839 9.4826
12 152 53 77 42.759 44.167 7.9536 5.4168
13 169 91 52 58.211 27.58 47.578 15.988
14 142 63 87 47.012 39.15 8.5453 11.651
15 91 67 102 40.591 17.951 -9.525 10.897
16 152 183 80 70.505 -16.318 49.811 10.253
色精度の測定値を表示します。各正方形のカラー パッチは測定色であり、周囲の太い境界線はその ROI の基準色です。各色精度測定値は、Delta_E
として表示されます。これは、CIE 1976 L*a*b* 色空間における測定色と基準色との間のユークリッド距離です。精度の高い色ほど、Delta_E
が小さくなります。
figure displayColorPatch(colorTable)
色精度測定の別の表現方法として、CIE 1976 L*a*b* 色空間の測定色と基準色を色度ダイアグラム上にプロットします。赤色の円は基準色を示します。緑色の円は、各カラー パッチの測定色を示します。色度ダイアグラムは色の明度は表しません。
figure plotChromaticity(colorTable)
基準点と測定点との間の距離が短い ROI は、色度の差が小さくなり、Delta_E
の値が小さくなる場合があります。ただし、明度も Delta_E
の値に寄与します。たとえば、ROI 13 の基準点と測定点が色度ダイアグラム上で互いに近接していても、明度の差が大きいためにそれらの Delta_E
は大きくなります。
ColorChecker チャートの色の測定
ColorChecker® チャートのイメージをワークスペースに読み取ります。
I = imread("colorCheckerTestImage.jpg");
colorChecker
オブジェクトを作成し、ROI 注釈を含むチャートを表示します。
chart = colorChecker(I); displayChart(chart)
各カラー パッチ ROI で色を測定します。
colorTable = measureColor(chart)
colorTable=24×9 table
ROI Color Measured_R Measured_G Measured_B Reference_L Reference_a Reference_b Delta_E
___ ________________ __________ __________ __________ ___________ ___________ ___________ _______
1 {'DarkSkin' } 160 129 120 37.54 14.37 14.92 20.193
2 {'LightSkin' } 229 200 191 64.66 19.27 17.5 22.587
3 {'BlueSky' } 146 191 241 49.32 -3.82 -22.54 27.312
4 {'Foliage' } 130 161 117 43.46 -12.74 22.72 20.404
5 {'BlueFlower' } 175 187 248 54.94 9.61 -24.79 23.073
6 {'BluishGreen' } 155 232 226 70.48 -32.26 -0.37 18.284
7 {'Orange' } 255 161 99 62.73 35.83 56.5 16.114
8 {'PurplishBlue'} 130 164 254 39.43 10.75 -45.17 28.889
9 {'ModerateRed' } 252 146 160 50.57 48.64 16.67 23.601
10 {'Purple' } 139 118 175 30.1 22.54 -20.87 24.672
11 {'YellowGreen' } 187 226 110 71.77 -24.13 58.19 15.21
12 {'OrangeYellow'} 241 194 76 71.51 18.24 67.37 14.148
13 {'Blue' } 96 131 255 28.37 15.42 -49.8 33.34
14 {'Green' } 118 209 130 54.38 -39.72 32.27 22.461
15 {'Red' } 234 116 114 42.43 51.05 28.62 21.87
16 {'Yellow' } 241 227 105 81.8 2.67 80.41 23.495
⋮
入力引数
chart
— テスト チャート
esfrChart
オブジェクト | colorChecker
オブジェクト
テスト チャート。esfrChart
オブジェクトまたは colorChecker
オブジェクトとして指定します。
出力引数
colorTable
— カラー値
p 行 8 列の table
各カラー パッチに含まれるカラー値。p 行 8 列の table として返されます。p はテスト チャート chart
上のカラー パッチの数です。
8 つの列は、以下の変数を表します。
変数 | 説明 |
---|---|
ROI | サンプリングされた ROI のインデックス。ROI の値は範囲 [1, 16] の整数です。インデックスは、displayChart で表示された ROI 番号と一致します。 |
Measured_R | ROI 内の赤のチャネル ピクセルの平均値。 |
Measured_G | ROI 内の緑のチャネル ピクセルの平均値。 |
Measured_B | ROI 内の青のチャネル ピクセルの平均値。 |
Reference_L | ROI の Reference L* の値。 |
Reference_a | ROI の Reference a* の値。 |
Reference_b | ROI の Reference b* の値。 |
Delta_E | CIE 1976 で記述されている、L*a*b* 色空間における測定色と基準色との間の色のユークリッド距離。 |
colorCorrectionMatrix
— 色補正係数
4 行 3 列の行列
色補正係数。4 行 3 列の行列として返されます。colorCorrectionMatrix
は、アフィン変換を表し、テスト チャート イメージと同様のライティング条件下で取得されたイメージを色補正するのに使用できます。
データ型: double
ヒント
関数
measureColor
は、測定された RGB 値は sRGB 色空間内にあると仮定しています。measureColor
は値を L*a*b* 色空間に変換し、色の誤差Delta_E
を計算します。chart
がesfrChart
オブジェクトの場合、基準 L*a*b* 値の白色点は CIE 標準光源 D65 です。chart
がcolorChecker
オブジェクトの場合、基準 L*a*b* 値の白色点は CIE 標準光源 D50 です。基準 L*a*b* 値は、ColorChecker チャートの "After November 2014" バージョン用です。
参照
[1] Imatest. "Esfr". https://www.imatest.com/mathworks/esfr/.
[2] Calibrite. "ColorChecker Classic". https://calibrite.com/us/product/colorchecker-classic/.
バージョン履歴
R2017b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)