Main Content

eSFR テスト チャートの画質メトリクスの評価

この例では、Imatest® エッジ空間周波数応答 (eSFR) テスト チャートの標準的な品質測定を行う方法を示します。鮮鋭度、色収差、ノイズ、照明、および、色精度といったプロパティが測定されます。

テスト チャート オブジェクトの作成

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

I = imread("eSFRTestImage.jpg");
imshow(I)
title("Captured Image of eSFR Chart")
text(size(I,2),size(I,1)+15,["Chart courtesy of Imatest",char(174)], ...
    FontSize=10,HorizontalAlignment="right");

検出したレジストレーション マーカーを基に自動的に関心領域 (ROI) を定義する、eSFR テスト チャート オブジェクトを作成します。

chart = esfrChart(I);

検出した ROI を強調表示およびラベル付けして、ROI が測定に適していることを視覚的に確認します。

displayChart(chart)

60 個の傾斜したエッジの ROI (緑色でラベル付け) がすべて表示され、適切なエッジを中心に配置されます。加えて、20 個のグレー パッチ ROI (赤色でラベル付け) と 16 個のカラー パッチ ROI (白色でラベル付け) が表示され、各パッチの境界内に含まれます。チャートが正しくインポートされます。

エッジの鮮鋭度の測定

60 個すべての傾斜したエッジの ROI で鮮鋭度を測定します。これらの ROI の垂直方向および水平方向鮮鋭度の平均値も測定します。

[sharpnessTable,aggregateSharpnessTable] = measureSharpness(chart);

最初の 4 つの ROI の SFR プロットを表示します。

plotSFR(sharpnessTable,ROIIndex=1:4,displayLegend=false,displayTitle=true)

平均化された垂直方向および水平方向エッジの平均 SFR を表示します。平均垂直方向 SFR は平均水平方向 SFR よりも急速に低下します。そのため、平均垂直方向エッジは平均水平方向エッジほど鮮鋭ではありません。

plotSFR(aggregateSharpnessTable)

色収差の測定

すべての傾斜したエッジの ROI で色収差を測定します。

chTable = measureChromaticAberration(chart);

1 つ目の ROI にある 3 つの色チャネルの正規化された強度プロファイルをプロットします。わかりやすくするために、正規化されたエッジ プロファイルを別の変数 edgeProfile に格納します。

roi_index = 1;
edgeProfile = chTable.normalizedEdgeProfile{roi_index};

figure
p = length(edgeProfile.normalizedEdgeProfile_R);
plot(1:p,edgeProfile.normalizedEdgeProfile_R,"r", ...
     1:p,edgeProfile.normalizedEdgeProfile_G,"g", ...
     1:p,edgeProfile.normalizedEdgeProfile_B,"b")
xlabel("Pixel")
ylabel("Normalized Intensity")
title("ROI "+roi_index+" with Aberration "+chTable.aberration(1))

カラー チャネルには類似の正規化強度プロファイルがあり、エッジに沿った色ぶちは見られません。

ノイズの測定

20 個すべてのグレー パッチ ROI を使用してノイズを測定します。

noiseTable = measureNoise(chart);

各グレースケール ROI の生の信号の平均と S/N 比 (SNR) をプロットします。

figure
subplot(1,2,1)
plot(noiseTable.ROI,noiseTable.MeanIntensity_R,"r", ...
    noiseTable.ROI,noiseTable.MeanIntensity_G,"g", ...
    noiseTable.ROI,noiseTable.MeanIntensity_B,"b")
title("Signal")
ylabel("Intensity")
xlabel("Gray ROI Number")
grid on

subplot(1,2,2)
plot(noiseTable.ROI,noiseTable.SNR_R,"r", ...
    noiseTable.ROI,noiseTable.SNR_G,"g", ...
    noiseTable.ROI,noiseTable.SNR_B,"b")
title("SNR")
ylabel("dB")
xlabel("Gray ROI Number")
grid on

光源の推定

20 個のグレー パッチ ROI を使用してシーンの照度を推定します。光源は青の成分が強く、赤の成分が弱くなっています。これは、テスト チャート イメージの青みがかった色調と一致します。

illum = measureIlluminant(chart)
illum = 1×3

  110.9147  116.0008  123.2339

色精度の測定

16 個のカラー パッチ ROI を使用して色精度を測定します。

[colorTable,ccm] = measureColor(chart);

ROI の測定した色と期待される色の平均を表示します。色精度の測定値 Delta_E を表示します。Delta_E の値が 1 に近いほど、色差は知覚しにくくなります。印刷の場合の Delta_E の典型的な値は 3 から 6 の範囲で、他の実用的な用途では最大 20 です。

figure
displayColorPatch(colorTable)

CIE 1976 L*a*b* 色空間の測定色と基準色を色度ダイアグラムにプロットします。赤色の円は基準色を示します。緑色の円は、各カラー パッチの測定色を示します。

figure
plotChromaticity(colorTable)

色補正行列 ccm を使用して、テスト チャート イメージを色補正できます。例については、色補正行列を使用した色補正を参照してください。

参照

参考

| | | | | |

関連するトピック