Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

measureChromaticAberration

Imatest eSFR チャートを使用した傾斜したエッジでの色収差の測定

説明

aberrationTable = measureChromaticAberration(chart) は、Imatest® 拡張 eSFR チャート [1] のすべての傾斜したエッジ関心領域 (ROI) における色収差を測定します。

aberrationTable = measureChromaticAberration(chart,Name,Value) は、測定する ROI のサブセットを指定する追加パラメーターを使用して色収差を測定します。

すべて折りたたむ

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

I = imread('eSFRTestImage.jpg');

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

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

すべての傾斜したエッジの ROI で色収差を測定します。単一の ROI について、返されたテーブル chTable の内容を調べます。

chTable = measureChromaticAberration(chart);
ROIIndex = 3;
chTable(3,:)
ans=1×5 table
    ROI    aberration    percentAberration     edgeProfile     normalizedEdgeProfile
    ___    __________    _________________    _____________    _____________________

     3       1.9164           0.14883         {348x4 table}        {348x4 table}    

わかりやすくするために、正規化されたエッジ プロファイルを別の変数 edgeProfile に格納します。edgeProfile の最初と最後のピクセルの正規化された色強度を調べます。

edgeProfile = chTable.normalizedEdgeProfile{ROIIndex};
edgeProfile([1 end],:)
ans=2×4 table
    normalizedEdgeProfile_R    normalizedEdgeProfile_G    normalizedEdgeProfile_B    normalizedEdgeProfile_Y
    _______________________    _______________________    _______________________    _______________________

          -0.0022049                  0.0094112                  0.0088172                  0.0050968       
             0.98511                    0.98953                       1.01                      0.986       

ROI の正規化された強度値をプロットします。

npix = length(edgeProfile.normalizedEdgeProfile_R);
plot(1:npix,edgeProfile.normalizedEdgeProfile_R,'r', ...
    1:npix,edgeProfile.normalizedEdgeProfile_G,'g', ...
    1:npix,edgeProfile.normalizedEdgeProfile_B,'b')
xlabel('Pixel')
ylabel('Normalized Intensity')
title(['ROI ' num2str(ROIIndex) ' with Aberration ' num2str(chTable.aberration(ROIIndex))])

青のチャネルは、エッジ直前で赤および緑のチャネルよりも強度が大きく、エッジ直後で赤および緑のチャネルよりも強度が小さくなります。この強度の差が色収差の測定値に寄与します。

このエッジの aberrationpercentAberration の測定値は比較的小さくなっています。イメージを目視検査すると、エッジの両側には強い色調がないことが確認されます。

入力引数

すべて折りたたむ

eSFR チャート。esfrChart オブジェクトとして指定します。

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: measureChromaticAberration(myChart,'ROIIndex',2) は、ROI 2 の色収差のみを測定します。

測定に含める ROI インデックス。'ROIIndex' および範囲 [1, 60] の整数スカラーまたは整数ベクトルから構成されるコンマ区切りのペアとして指定します。インデックスは、displayChart で表示された ROI 番号と一致します。

メモ

measureChromaticAberration は、'ROIIndex''ROIOrientation' によって指定された ROI の交点を使用します。

例: 29:32

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

ROI の方向。'ROIOrientation''both''vertical'、または 'horizontal' から構成されるコンマ区切りのペアとして指定します。関数 measureChromaticAberration は、ROI について指定された方向でのみ測定を実行します。

メモ

measureChromaticAberration は、'ROIIndex''ROIOrientation' によって指定された ROI の交点を使用します。

例: 'vertical'

データ型: char | string

出力引数

すべて折りたたむ

色収差測定値。m 行 5 列のテーブルとして返されます。m は、サンプリングされた ROI の数です。

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

変数説明
ROIサンプリングされた ROI のインデックス。ROI の値は範囲 [1, 60] の整数です。
aberration

色収差。赤色、緑色、青色のエッジの強度プロファイルの最大値と最小値の間の領域として測定されます。測定された色収差は、知覚的な色収差を示します。aberrationdouble 型のスカラーです。

percentAberration収差。イメージの中心と ROI の中心との間の距離 (ピクセル単位) をパーセント比で表します。
edgeProfile

ROI 内のエッジ全体の各カラー チャネルの強度プロファイル。edgeProfile は、s 行 4 列のテーブルで、s はエッジ全体でのサンプルの数です。4 つの列は、エッジに沿って平均化された赤、緑、青、および輝度の値を表します。

輝度 (Y) は、以下の式に基づいて、赤 (R)、緑 (G)、青 (B) チャネルを線形結合したものです。

Y = 0.213R + 0.715G + 0.072B

メモ

色収差測定のサンプリング レートは、イメージのサンプリング レートの約 4 倍です。

normalizedEdgeProfile

強度プロファイル。データの最前部と最後部の 5% を使用して [0, 1] の間で正規化されています。normalizedEdgeProfile は、edgeProfile と同じ構造を持つ s 行 4 列のテーブルです。

ヒント

  • 色収差は、以下のような傾斜したエッジで最もうまく測定されます。

    • イメージの中心と ROI の中心とを結ぶ線におおよそ直交します

    • イメージの中心から最も遠くなります

    色収差はイメージの中心から放射状に増加するため、イメージの中心付近の傾斜したエッジでの測定は無視できます。

  • aberration フィールドで報告される絶対色収差は、水平または垂直方向に測定されます。しかし、色収差は放射状の現象であり、放射状の測定の方がより正確です。

参照

R2017b で導入