Main Content

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

measureColor

テスト チャートを使用した色再現の測定

説明

colorTable = measureColor(chart) は、Imatest® eSFR チャート[1]または Calibrite ColorChecker® Classic チャート[2]のすべての色関心領域 (ROI) における色の値を測定します。

[colorTable,colorCorrectionMatrix] = measureColor(chart) は、線形最小二乗近似を使用して計算された色補正行列も返します。

すべて折りたたむ

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

I = imread("eSFRTestImage.jpg");

esfrChart オブジェクトを作成し、ROI 注釈を含むチャートを表示します。16 個のカラー パッチ ROI には白色の数字でラベル付けされています。

chart = esfrChart(I);
displayChart(chart,displayEdgeROIs=false, ...
    displayGrayROIs=false,displayRegistrationPoints=false)

Figure eSFR test chart contains an axes object. The axes object contains 17 objects of type image, text.

すべてのカラー パッチ 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)

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

色精度測定の別の表現方法として、CIE 1976 L*a*b* 色空間の測定色と基準色を色度ダイアグラム上にプロットします。赤色の円は基準色を示します。緑色の円は、各カラー パッチの測定色を示します。色度ダイアグラムは色の明度は表しません。

figure
plotChromaticity(colorTable)

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 34 objects of type surface, scatter, quiver, text.

基準点と測定点との間の距離が短い ROI は、色度の差が小さくなり、Delta_E の値が小さくなる場合があります。ただし、明度も Delta_E の値に寄与します。たとえば、ROI 13 の基準点と測定点が色度ダイアグラム上で互いに近接していても、明度の差が大きいためにそれらの Delta_E は大きくなります。

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 = 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 
      ⋮

入力引数

すべて折りたたむ

テスト チャート。esfrChart オブジェクトまたは colorChecker オブジェクトとして指定します。

出力引数

すべて折りたたむ

各カラー パッチに含まれるカラー値。p 行 8 列の table として返されます。p はテスト チャート chart 上のカラー パッチの数です。

8 つの列は、以下の変数を表します。

変数説明
ROIサンプリングされた ROI のインデックス。ROI の値は範囲 [1, 16] の整数です。インデックスは、displayChart で表示された ROI 番号と一致します。
Measured_R

ROI 内の赤のチャネル ピクセルの平均値。Measured_R は、chart.Image と同じデータ型のスカラーであり、型は、singledoubleuint8、または uint16 のいずれかです。

Measured_G

ROI 内の緑のチャネル ピクセルの平均値。Measured_G は、chart.Image と同じデータ型のスカラーです。

Measured_B

ROI 内の青のチャネル ピクセルの平均値。Measured_B は、chart.Image と同じデータ型のスカラーです。

Reference_L

ROI の Reference L* の値。Reference_Ldouble 型のスカラーです。

Reference_a

ROI の Reference a* の値。Reference_adouble 型のスカラーです。

Reference_b

ROI の Reference b* の値。Reference_bdouble 型のスカラーです。

Delta_E

CIE 1976 で記述されている、L*a*b* 色空間における測定色と基準色との間の色のユークリッド距離。Delta_Edouble 型のスカラーです。

色補正係数。4 行 3 列の行列として返されます。colorCorrectionMatrix は、アフィン変換を表し、テスト チャート イメージと同様のライティング条件下で取得されたイメージを色補正するのに使用できます。

データ型: double

ヒント

  • 関数 measureColor は、測定された RGB 値は sRGB 色空間内にあると仮定しています。measureColor は値を L*a*b* 色空間に変換し、色の誤差 Delta_E を計算します。

  • chartesfrChart オブジェクトの場合、基準 L*a*b* 値の白色点は CIE 標準光源 D65 です。

  • chartcolorChecker オブジェクトの場合、基準 L*a*b* 値の白色点は CIE 標準光源 D50 です。基準 L*a*b* 値は、ColorChecker チャートの "After November 2014" バージョン用です。

参照

[2] Calibrite. "ColorChecker Classic". https://calibrite.com/us/product/colorchecker-classic/.

バージョン履歴

R2017b で導入