Main Content

measureNoise

Measure noise using Imatest eSFR chart

Description

example

noiseTable = measureNoise(chart) measures the noise levels using the gray regions of interest (ROIs) of an Imatest® eSFR chart [1].

Examples

collapse all

Read an image of an eSFR chart into the workspace.

I = imread("eSFRTestImage.jpg");

Create an esfrChart object, then display the chart with ROI annotations. The 20 gray patch ROIs are labeled with red numbers.

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

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

Measure the noise in all gray patch ROIs.

noiseTable = measureNoise(chart)
noiseTable=20×22 table
    ROI    MeanIntensity_R    MeanIntensity_G    MeanIntensity_B    RMSNoise_R    RMSNoise_G    RMSNoise_B    PercentNoise_R    PercentNoise_G    PercentNoise_B    SignalToNoiseRatio_R    SignalToNoiseRatio_G    SignalToNoiseRatio_B    SNR_R     SNR_G     SNR_B     PSNR_R    PSNR_G    PSNR_B    RMSNoise_Y    RMSNoise_Cb    RMSNoise_Cr
    ___    _______________    _______________    _______________    __________    __________    __________    ______________    ______________    ______________    ____________________    ____________________    ____________________    ______    ______    ______    ______    ______    ______    __________    ___________    ___________

     1         9.4147             11.349             11.099           2.6335        1.9417        2.3106          1.0328           0.76145           0.90613               3.5749                  5.8448                  4.8036           11.065    15.335    13.631     39.72    42.367    40.856      1.6901         0.5813         1.0865  
     2         9.2873             10.896             10.503            2.405        2.1309        2.0966         0.94312           0.83564           0.82218               3.8617                  5.1132                  5.0099           11.736    14.174    13.996    40.509     41.56    41.701      1.7357         0.2788        0.97788  
     3         13.488              14.95             15.017           2.4966        2.1156        2.5593         0.97907           0.82964            1.0036               5.4027                  7.0668                  5.8676           14.652    16.984    15.369    40.184    41.622    39.968      1.8095        0.77675         1.0903  
     4         20.411             21.689             22.946           2.4395        2.0206        2.5556         0.95668           0.79241            1.0022               8.3666                  10.734                  8.9791           18.451    20.615    19.065    40.385    42.021    39.981      1.8048        0.69788        0.84669  
     5         29.189             34.144             38.442           3.0436        2.8317        4.1125          1.1936            1.1105            1.6127               9.5903                  12.058                  9.3476           19.637    21.625    19.414    38.463     39.09    35.849      2.3507         1.3549         1.2242  
     6         35.009             40.337             47.544           3.2201        2.7705        3.6994          1.2628            1.0865            1.4508               10.872                   14.56                  12.852           20.726    23.263    22.179    37.973     39.28    36.768      2.3973          1.297          1.102  
     7         50.768             58.206             69.539           3.3931        3.2661         3.734          1.3306            1.2808            1.4643               14.962                  17.821                  18.623             23.5    25.019    25.401    37.519     37.85    36.687       2.787        0.98523        0.76701  
     8         61.871              69.98             80.779           3.4734        3.0966        3.1214          1.3621            1.2144            1.2241               17.813                  22.599                  25.879           25.015    27.082    28.259    37.316    38.313    38.244      2.6049        0.53852         1.0205  
     9         77.115             83.999             96.869           3.1467        2.9973        3.5088           1.234            1.1754             1.376               24.507                  28.025                  27.607           27.786    28.951    28.821    38.174    38.596    37.228       2.545        0.91262        0.89469  
    10         88.552             98.426             113.87           3.1846        2.8538        3.1835          1.2488            1.1191            1.2484               27.807                   34.49                  35.767           28.883    30.754     31.07     38.07    39.022    38.073      2.4241        0.68448        0.84718  
    11         107.25             116.97             132.94           3.3128        3.0561        3.2921          1.2991            1.1985             1.291               32.374                  38.275                  40.381           30.204    31.658    32.123    37.727    38.427    37.781      2.6033        0.74341        0.60673  
    12         124.23             131.96             146.27           3.3817        3.0611        3.3879          1.3262            1.2004            1.3286               36.737                  43.109                  43.175           31.302    32.691    32.705    37.548    38.413    37.532      2.5981        0.83262        0.64982  
    13         143.52              149.3             164.52            2.922        2.6763        3.0484          1.1459            1.0495            1.1954               49.116                  55.787                  53.969           33.824    34.931    34.643    38.817     39.58     38.45      2.3615        0.63296        0.42465  
    14         156.87             165.76             178.05           3.2507        2.6489        2.7331          1.2748            1.0388            1.0718               48.258                  62.577                  65.148           33.671    35.928    36.278    37.891    39.669    39.398      2.2917        0.47553         1.0089  
    15         178.25             184.59              193.3           2.8498         2.474        2.6084          1.1176            0.9702            1.0229               62.548                  74.612                  74.106           35.924    37.456    37.397    39.035    40.263    39.803      2.1966        0.31965        0.87419  
    16         193.81             196.97             203.42           2.2181        2.1638        2.6139         0.86985           0.84853            1.0251               87.375                  91.029                   77.82           38.828    39.184    37.822    41.211    41.427    39.785      1.8028        0.88982         0.4254  
      ⋮

Display a graph of the mean signal and the signal to noise ratio (SNR) of the three color channels over the 20 gray patch ROIs.

figure
subplot(1,2,1) 
plot(noiseTable.ROI,noiseTable.MeanIntensity_R,"r-o", ...
     noiseTable.ROI,noiseTable.MeanIntensity_G,"g-o", ...
     noiseTable.ROI,noiseTable.MeanIntensity_B,"b-o")
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.

Input Arguments

collapse all

eSFR chart, specified as an esfrChart object.

Output Arguments

collapse all

Noise values of each gray patch, returned as a 20-by-22 table. The 20 rows correspond to the 20 gray patches on the eSFR chart. The 22 columns represent the variables shown in the table. Each variable is a scalar of type double.

VariableDescription
ROIIndex of the sampled ROI. The value of ROI is an integer in the range [1, 20]. The indices match the ROI numbers displayed by displayChart.
MeanIntensity_R

Mean value of red channel pixels in the ROI.

MeanIntensity_G

Mean value of green channel pixels in the ROI.

MeanIntensity_B

Mean value of blue channel pixels in the ROI.

RMSNoise_R

Root mean square (RMS) noise of red channel pixels in the ROI.

RMSNoise_G

RMS noise of green channel pixels in the ROI.

RMSNoise_B

RMS noise of blue channel pixels in the ROI.

PercentNoise_RRMS noise of red pixels, expressed as a percentage of the maximum of the original chart image data type.
PercentNoise_GRMS noise of green pixels, expressed as a percentage of the maximum of the original chart image data type.
PercentNoise_BRMS noise of blue pixels, expressed as a percentage of the maximum of the original chart image data type.
SignalToNoiseRatio_RRatio of signal (MeanIntensity_R) to noise (RMSNoise_R) in the red channel.
SignalToNoiseRatio_GRatio of signal (MeanIntensity_G) to noise (RMSNoise_G) in the green channel.
SignalToNoiseRatio_BRatio of signal (MeanIntensity_B) to noise (RMSNoise_B) in the blue channel.
SNR_R

Signal-to-noise ratio (SNR) of the red channel, in dB.

SNR_R = 20*log(MeanIntensity_R/RMSNoise_R).

SNR_G

SNR of the green channel, in dB.

SNR_G = 20*log(MeanIntensity_G/RMSNoise_G).

SNR_B

SNR of the blue channel, in dB.

SNR_B = 20*log(MeanIntensity_B/RMSNoise_B).

PSNR_RPeak SNR of the red channel, in dB.
PSNR_GPeak SNR of the green channel, in dB.
PSNR_BPeak SNR of the blue channel, in dB.
RMSNoise_Y

RMS noise of luminance (Y) channel pixels in the ROI.

RMSNoise_Cb

RMS noise of chrominance (Cb) channel pixels in the ROI.

RMSNoise_Cr

RMS noise of chrominance (Cr) channel pixels in the ROI.

Tips

  • To linearize data for noise measurements, first undo the gamma correction of an sRGB test chart image by using the rgb2lin function. Then, create an esfrChart object from the linear image, and input the esfrChart object to the measureNoise function.

References

Version History

Introduced in R2017b