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");

Figure contains an axes object. The axes object with title Captured Image of eSFR Chart contains 2 objects of type image, text.

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

chart = esfrChart(I);

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

displayChart(chart)

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

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)

Figure SFR Plots for ROI 1 contains an axes object. The axes object with title ROI 1, xlabel Spatial Frequency (Line pairs per pixel), ylabel SFR (Spatial Frequency Response) contains 8 objects of type line.

Figure SFR Plots for ROI 2 contains an axes object. The axes object with title ROI 2, xlabel Spatial Frequency (Line pairs per pixel), ylabel SFR (Spatial Frequency Response) contains 8 objects of type line.

Figure SFR Plots for ROI 3 contains an axes object. The axes object with title ROI 3, xlabel Spatial Frequency (Line pairs per pixel), ylabel SFR (Spatial Frequency Response) contains 8 objects of type line.

Figure SFR Plots for ROI 4 contains an axes object. The axes object with title ROI 4, xlabel Spatial Frequency (Line pairs per pixel), ylabel SFR (Spatial Frequency Response) contains 8 objects of type line.

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

plotSFR(aggregateSharpnessTable)

Figure Average SFR Plots for Vertical ROIs contains an axes object. The axes object with title Average Vertical SFR, xlabel Spatial Frequency (Line pairs per pixel), ylabel SFR (Spatial Frequency Response) contains 8 objects of type line. These objects represent Red Channel, Green Channel, Blue Channel, Luminance Channel, Red Channel Beyond Nyquist, Green Channel Beyond Nyquist, Blue Channel Beyond Nyquist, Luminance Channel Beyond Nyquist.

Figure Average SFR Plots for Horizontal ROIs contains an axes object. The axes object with title Average Horizontal SFR, xlabel Spatial Frequency (Line pairs per pixel), ylabel SFR (Spatial Frequency Response) contains 8 objects of type line. These objects represent Red Channel, Green Channel, Blue Channel, Luminance Channel, Red Channel Beyond Nyquist, Green Channel Beyond Nyquist, Blue Channel Beyond Nyquist, Luminance Channel Beyond Nyquist.

色収差の測定

すべての傾斜したエッジの 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))

Figure contains an axes object. The axes object with title ROI 1 with Aberration 1.2533, xlabel Pixel, ylabel Normalized Intensity contains 3 objects of type line.

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

ノイズの測定

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

Figure contains 2 axes objects. Axes object 1 with title Signal, xlabel Gray ROI Number, ylabel Intensity contains 3 objects of type line. Axes object 2 with title SNR, xlabel Gray ROI Number, ylabel dB contains 3 objects of type line.

光源の推定

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)

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.

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

参照

参考

| | | | | |

関連するトピック