Analyze the Siemens Star chart
|News– Imatest 4.0: Automatic region detection is available for a new version of the Star Chart that has registration makes on the sides. See below.
A new web page, Slanted-edge versus Siemens Star – A comparison of sensitivity to signal processing, has been published.
Star Chart, which can be run in the interactive Rescharts interface or as a fixed module, measures SFR (Spatial Frequency Response); also known as MTF (Modulation Transfer Function) from sinusoidally-modulated Siemens star charts, which are included the ISO 12233:2014 standard.
A detailed comparison of Siemens Star and slanted-edge MTF results is presented in Slanted-edge versus Siemens Star – A comparison of sensitivity to signal processing. For most purposes we recommend the slanted-edge, which provides accurate reliable measurements, runs fast, and can produce highly detailed maps of sharpness over the image surface. But we remain committed to supporting the Siemens Star, which provides information on angular MTF response and is the only pattern other than the slanted-edge that can analyze MTF response above the Nyquist frequency.
Charts with 144, 72, and 48 cycles can be analyzed in 8, 12, or 24 segments around the circle. Several options are provided for calculating the value of gamma used to linearize the chart and the low frequency reference.
Photographing the chart and running the program
Star Chart measures MTF from a sinusoidally-modulated pattern along the radii of a circle for a range of angles (in 8, 12, or 24 segments). This method is more direct than the slanted-edge method, but requires more real estate. Because calculations are performed on circles of known spatial frequencies, the results are more robust against noise than Log Frequency, which also uses a sinusoidally-modulated pattern.
The image above used to compare Star chart results with Slanted-edge SFR and Log Frequency. It was captured with a Canon EOS-40D camera, 24-70mm f/2.8L lens set at 50mm, f/5.6, ISO 100. It includes Star, Log Frequency-Contrast and slanted-edge charts with high and low contrast (20:1 and 2:1).
You can Purchase test charts from the Imatest Store or create a file using Imatest Test Charts, then print the chart on a high quality inkjet printer. Recommended Test Charts options are PPI: 720 (Epson inkjets) or 600 (HP or Canon inkjets), Height (cm) (as required), Highlight color: White, Contrast ratio: 50, Type: Sine, Gamma: 2.2, Star pattern bands: 144 or 72 (for high or low resolution cameras, respectively), Chart lightness: Lightest, ISO standard chart: Yes or Yes (small inner circle) (inner circle has 1/10 or 1/20 the diameter of the outer, respectively).
|Number of chart cycles Ideally the maximum spatial frequency (just outside the inner circle) should be around 0.6 to 1.0 cycles/pixel. The diameter of the inner circle di is 1/10 or 1/20 times the diameter dP of the circular sine pattern, depending on the chart (selectable in Test Charts). The smallest diameter for analysis is 0.11dP or 0.056dP. For an image of P pixels (width or height) of a star with N cycles, where the pattern circle diameter dP takes up a fraction g of P (dP = gP; di = 0.11 gP ( or 0.056 gP) ) , the maximum spatial frequency in cycles/pixel isfmax = N / (0.11 π dP) = N / (0.11 π g P) (inner circle 1/10 the diameter of the outer)
fmax = N / (0.056 π dP) = N / (0.056 π g P) (inner circle 1/20 the diameter of the outer)Example: for a 3000 pixel wide image where the pattern circle dP takes up g = 0.25 (25%) of the image and the inner circle has 1/10 the diameter, fmax = 0.555 cycles/pixel for a 144-cycle pattern; fmax = 0.278 cycles/pixel for a 72-cycle pattern. The 144-cycle pattern is indicated. 72-cycle patterns are most suitable for low resolution cameras (~2 megapixels or less).
Mount the chart on a flat dark board— 1/2 inch foam board works well; thinner board warps more easily. Depending on the number of horizontal pixels in the chart to be analyzed, the chart should occupy 1/3 to 1/4 of the horizontal frame for high resolution cameras (more for lower resolution cameras: VGA, etc.). Other charts can be mounted along with it.
The chart itself contains no clear indication of the recommended orientation. We recommend the following orientation (though Imatest will correct for incorrectly oriented charts).
– The pattern should be oriented horizontally, i.e., in landscape orientation (it is slightly wider than high).
– The darkest grayscale patches should be in the lower-right of the image; the lightest should be in the upper-right.
Photograph the chart using glare-free even lighting (±5%, which should be easy to achieve since the chart is relatively small), as described in Imatest Lab or How to test lenses. Save the image in any one of several high quality formats, but beware of JPEGs with high compression (low quality), unless you are testing for JPEG degradation.
Because resolution varies over the image for most cameras and lenses, the chart should not take up too much of the frame. The active chart height (the Star diameter) should be between about 300 and 2000 pixels, with at least 600 pixels recommended for high resolution cameras. For typical high resolution cameras the active chart height should be no more than about 1/3 to 1/2 of the total image height, i.e., the area of the star pattern should not exceed about 1/8 of the total chart area. This recommendation does not apply to low resolution systems such as VGA, which need at least 300 pixels of active chart height (more if possible).
Open Imatest, then click on to run from the interactive Rescharts window or to run as a fixed module.
|In Rescharts you can use the Chart configuration dropdown menu to select the chart type. Two settings are shown here (more may be added in the future). Star (black squares in corners) is the traditional design. Star (registration marks…), shown on the right, is a newer design that includes registration marks and slanted-edges on the sides. It works with Automatic ROI detection (selected in the ROI Options window).|
In Rescharts, select the pattern to analyze (in this case, Star Chart ) by clicking on the appropriate entry in the popup menu below Rescharts starts.or by clicking on if Star Chart is displayed. The button and popup menu (shown on the right) are highlighted (yellow background) when
Select the image to read. If the pixel size is the same as the previous Star Chart run, you’ll be asked if you want to use the previous ROI, adjust the previous ROI, or crop anew. If the folder contains meaningless camera-generated file names such as IMG_3734.jpg, IMG_3735.jpg, etc., you can change them to meaningful names that include focal length, aperture, etc., with the Rename Files utility, which takes advantage of EXIF data stored in each file.
Cropping The initial crop should include the entire pattern, including the outside of the black rectangles (with the small white squares inside). It doesn’t have to be precise because it will be refined in the ROI fine adjustment window, shown below. The ROI fine adjustment window may be maximized to facilitate fine selection.
In the ROI fine adjustment window the pattern should be cropped so
- the middle cyan square is at the bounds of the large star pattern circle (or slightly inside if there is distortion),
- the inner cyan square is on the inner circle (which consists of four quadrants— two white, two black) for inner circles with 1/10 the diameter of the outer. (The inner circle will be well inside of the inner cyan square for small inner circles, which have 1/20 the diameter.),
- the magenta crosshair inside the inner circle is well-centered. If it is slightly off Imatest will automatically correct it.
ROI fine adjustment window showing the cropped Star Chart image
Canon EOS-40D camera, 24-70mm f/2.8L lens set at 50mm, f/5.6, ISO 100.
Click here or on the image to load full-size test image.
If Express mode is not selected, the input dialog box shown below appears. In Rescharts this dialog box can be at opened any time by pressing thebutton.
Chart configuration applies to the next run. You can choose between the traditional design, which has no registration marks, or newer designs that work with automatic ROI detection. It can also be selected from the Chart configuration dropdown menu in Rescharts.
Normalization selects the MTF normalization method (where to set MTF to 1.0):
- normalize to the outer MTF value for each segment (the default),
- normalize to the maximum outer MTF value in all segments, or
- normalize to the difference between the lightest and darkest of the grayscale square patches near the pattern edge. This often gives the best estimate.
- Normalize by extrapolating smoothed MTF to 1 at f = 0 (OK for simple curves)
(1) may be slightly better when illumination is nonuniform. (2) may be slightly better when actual MTF varies between segments. (3) is usually better because the lowest spatial frequencies in the star may not be low enough approximate zero spatial frequency.
Inner circle May have either 1/10 or 1/20 the diameter of the outer. Should match the chart. Affects the maximum spatial frequency of the analysis.
Channel is R, G, B, or Y (luminance; the default).
Calc segments is the number of segments around the circle to display in the analysis. 8, 12, and 24 are supported. 8 is the default.
Calc. radii is the number of radii on the circle used for the MTF calculations. 64 is more accurate than 32, but slightly slower (it’s the new default). 128 is slightly more accurate and slower still.
Enter or calculate gamma Choose between Calculate gamma & linearize from chart patches or Enter gamma for linearization. If Calculate gamma… is selected, the 16 small square patches at the periphery of the star chart are used to determine the value of gamma for linearizing the chart, Gamma (below) is disabled, and the displayed value of gamma includes the indicator (chart).
Gamma is used to linearize the test chart when Enter gamma… (above) is selected. It can be measured by Stepchart, Colorcheck, or Multicharts. 0.5 is a typical value for color spaces intended for display at gamma = 2 2 (sRGB, Adobe RGB, etc.). If gamma is entered (rather than calculated), the displayed value of gamma includes the indicator (input).
MTF units, etc. selects the x-axis units. If Cycles/inch or Cycles/mm are selected, the pixel spacing (um/pixel, pixels/inch, or pixels/mm) should be entered.
Maximum x-axis frequency for linear plots selects the maximum spatial frequency to be displayed in linear plots. Star chart is the only module other than the slanted-edge modules that can analyze MTF above the Nyquist frequency (0.5 cycles/pixel).
Secondary readout allows up to two secondary readouts (MTFnn, MTFnnP, or MTF at a specified spatial frequency) to be displayed on the MTF plots. Details here.
If you’re running from Rescharts, don’t worry about getting all settings correct: You can always open this dialog box by clicking on.
After you press, calculations are performed and the most recently-selected display appears.
The Display box in the Rescharts window, shown below, allows you to select any of several displays. Display options are set in boxes that appear below Display. All displays except Exif data have a channel selection option (Red, Green, Blue, or Luminance (Y) (0.3R + 0.59G + 0.11B).
|MTF (original and linearized)||MTF for up to 8 segments of the star. Both linear and logarithmic frequency displays are available.|
|MTFnn or MTFnnP||Display MTFnn (the frequencies where MTF equals nn % of the low frequency values) and MTFnnP (the frequencies where MTF equals nn % of the peak value) for nn = 70, 50, 30, 20, and 10. Both polar (spider) and rectangular plots are available.|
|MTF contours (rectangular)||Display MTF contours in a rectangular plot with linear or logarithmic frequency display. Similar to the MTFnn rectangular plot.|
|MTF contours (polar)||Display MTF contours in a polar plot whose geometry duplicates that of the target.|
|EXIF data||Show EXIF data if available as well as linearization curves (used to calculate gamma from the chart).|
|In addition to the displays, two buttons allow you to save results.|
|Saves an image of the Starchart window as a PNG file. If you check Display screen in the Save screen dialog box, the image will be opened in the editor/viewer of your choice. (Irfanview works well, and it’s free.)|
|Saves detailed results in a CSV file that can be opened by Excel and also in an XML file.|
The spatial frequency is automatically calculated from the image, under the assumption that log frequency increases linearly with distance. The number of chart cycles is also determined automatically.
The MTF (Spatial Frequency Response) can be displayed on a linear or logarithmic frequency scale. You can select between showing the first 8 segments equally weighted, or emphasizing any of the segments (Segment 1 is shown as a thick black line below). The average response is a thick magenta-gray line. Smoothed, interpolated response is normally displayed, but uninterpolated, unsmoothed (raw) response is available as an option.
Normalization: MTF is normalized (set to 1.0) using either (1) MTF at the outer radius of each segment, (2) the maximum value of MTF at the outer radii of all segments, or (3) the difference between the lightest and darkest square near the pattern edge. Neigher case (1) nor (2) is ideal because the minimum spatial frequency is not as low as it should be for correct normalization. (The high to low spatial frequency ratio is only 10 or 20 for the star chart — much lower than for the Log Frequency or Log F-Contrast charts.) In general, normalizing MTF to the outer radius of the star increases MTF slightly above its true value. MTF should ideally be normalized to a lower spatial frequency. Case (3) should only be used with maximum contrast patterns.
MTF (linear frequency scale) for 8 segments of the Star pattern
The entire Rescharts window is shown. The original 64 radii are linearly interpolated to 101 frequencies, then smoothed to eliminate response roughness caused by calculation artifacts and noise. Gamma = 0.454 (chart) at the lower left of the plot indicates that gamma was calculated from the 16 small square patches at the periphery of the chart. If it were calculated elsewhere and entered into Star Charts, (input) would be displayed instead of (chart).
MTF50, MTF50P, MTF20, MTF20P, MTF10, and MTF10P for the first 8 segments are displayed in a table below the plot for this and several of the output plots (but not shown below).
The plot on the right shows MTF70 through MTF10 (spatial frequencies where MTF = 70,, 50, 30, 20, and 10%) on a linear frequency scale displayed in rectangular (Cartesian) coordinates. Frequency is displayed in cycles/pixel, but Line Widths per Picture Height (LW/PH), cycles/inch, or cycles/mm can be selected by pressing the button. The full circle is shown: segment 9 corresponds to segment 1: (0 degrees center angle).
The legend (the box on the right) has been moved using the mouse to uncover the MTF10 (blue) line.
MTF70 – MTF10: Rectangular (Cartesian)
coordinates, Linear frequency scale.
The plot on the right shows MTF70 through MTF10 displayed in polar coordinates. Spatial frequency (cycles per pixel in this case) increases with radius. (This is the opposite of the image itself, where spatial frequency is inversely proportional to radius.)
This plot is most similar to the spider plot shown in Image Engineering digital camera tests and Digital Camera Resolution Measurement Using Sinusoidal Siemens Stars (Fig. 15), by C. Loebich, D. Wueller, B. Klingen, and A. Jaeger, IS&T, SPIE Electronic Imaging Conference 2007. MTF10 (the black octagon on the right) corresponds to the Rayleigh diffraction limit.
MTF70 – MTF10: Polar coordinates,
Linear frequency on radius.
MTF contours: rectangular and polar
The plot on the right shows the MTF contours for each of the 8 segments. Spatial frequency is displayed on a linear scale, but a log scale may be selected and a color bar (see below) may be added.
This plot contains information similar to the rectangular MTFnn plot, above.
MTF contours, rectangular display,
Linear frequency scale.
The plot on the right shows the MTF contours for each of the 8 segments, displayed on a polar scale, where location (radius) on the plot corresponds to the image. This is the inverse of the polar MTFnn plot, above, where spatial frequency is the inverse of image radius.
Most of the action in this image is near the center. If the Zoom box is checked you can zoom in by selecting a portion of the image or simply by clicking on it.
MTF contours, polar display.
Equations, algorithm, and issues
|Equations for analyzing the Siemens star are given in Digital Camera Resolution Measurement Using Sinusoidal Siemens Stars by C. Loebich, D. Wueller, B. Klingen, and A. Jaeger, IS&T, SPIE Electronic Imaging Conference 2007. The algorithms used for Imatest Star Charts are similar, differing only in details. The 32, 64, or 128 radii ri , located from just outside the inner circle to just inside the outer circle, are selected using a logarithmic scale that makes them more closely spaced near the inner circle. This makes the frequency spacing (proportional to 1/radius) more consistent than for uniformly spaced radii. For each of the 32 radii ri , all points are located with radii between ( ri-1+ri )/2 and ( ri+ri+1 )/2 pixels. ( ri−0.7 and ri+0.7 pixels, used prior to Imatest 2.7.2, caused significant bumps in the MTF response.) Spatial frequency is 1/(2π ri ) cycles/pixel. These points fit the curve,
I(φ) = a + b1 sin(2π/g) φ ) + b2 cos(2π/g) φ ), where b = sqrt( b12 + b22 )
MTF = b/a
The equation for I(φ) is recognized as a term in a Fourier series expansion, which can be solved using the standard Fourier series equation since each segment (there are 8, 12, or 24) has an integral number of cycles (of a total of 144, 120, 72, or 48 cycles on the chart).
b1 = k mean( sin(2π/g) I(φ) ); b2 = k mean( cos(2π/g) I(φ) ); a = mean( I(φ) )
Since MTF is normalized to 1 at the lowest measured spatial frequency for each segment, k drops out of the final result.
Bumps in the MTF response curve caused by aliasing are visible in the image below.
3x enlarged image of the center of a star pattern acquired on the Canon EOS-40D,
24-70mm f/2.8 lens set to 50mm, f/8 (a sharp setting)
Normalization: MTF is normalized using (1) MTF at the outer radius of each segment, (2) the maximum value of MTF at the outer radii of all segments, or (3) the difference between the lightest and darkest square near the pattern edge. Neither case (1) nor (2) is ideal because the minimum spatial frequency is not as low as it should be for correct normalization. (The high to low spatial frequency ratio is only 10 or 20 for the star charts — much lower than for the Log Frequency or Log F-Contrast charts.) In general, normalizing MTF to the outer radius of the star increases MTF above its true value. MTF should ideally be normalized to a lower spatial frequency, as with case (3), which should only be used with maximum contrast charts.