Currently, output documentation is limited to JSON outputs for Distortion and Sharpness, as well as stray light and concentric ring module results.
These preliminary descriptions of outputs do not yet cover results from all modules, and will be expanded to be more comprehensive going forward.
Please report any issues to our Support Team using our Customer Support Portal, or by emailing [email protected].
Links to Documentation
-
- Output documentation fields (embedded below)
- A searchable, filterable version is embedded below.
- Output documentation Excel spreadsheet
- Results from Stray Light and Concentric Rings
- Output documentation fields (embedded below)
Embedded Output Documentation
Output documentation fields by module, snapshotted from the Imatest output-fields spreadsheet. Switch tabs below; each table scrolls and can be filtered. The complete data is included for print and offline use.
Distortion
56 fields
| JSON Field | SFR+ | eSFR | CB | Type | Format | Units | Description | Equations | Online Documentation | |
|---|---|---|---|---|---|---|---|---|---|---|
| X_center_shift_pxls | ✓ | ✓ | ✓ | int[] | 1x1 | pixels | The horizontal shift in pixels of the detected center of the chart from the geometric center of the image. | |||
| Y_center_shift_pxls | ✓ | ✓ | ✓ | int[] | 1x1 | pixels | The vertical shift in pixels of the detected center of the chart from the geometric center of the image. | |||
| radial_center_shift_pxls | ✓ | ✓ | ✓ | float[] | 1x1 | pixels | The radial shift in pixels of the detected center of the chart from the center of the image. | |||
| rotationDegrees | ✓ | ✓ | ✓ | float[] | 1x1 | degrees | Angle of the average image rotation. | |||
| chart_height_bar_bar_cm | ✓ | float[] | 1x1 | cm | User entry for SFRplus. The spacing between the black bars at the bottom and top of the target, measured directly from the chart. | |||||
| bar_bar_vert_fraction | ✓ | float[] | 1x1 | Normalized | chart_height_bar_bar_cm normalized to the total image height. | |||||
| bar_bar_vert_pixels | ✓ | float[] | 1x1 | pixels | chart_height_bar_bar_cm given in pixels. | |||||
| mean_x_square_spacing_pxls | ✓ | float[] | 1x1 | pixels | The average horizontal distance between the centers of neighboring squares. | |||||
| mean_y_square_spacing_pxls | ✓ | float[] | 1x1 | pixels | The average vertical distance between the centers of neighboring squares. | |||||
| registration_mark_spacing_cm | ✓ | float[] | 1x1 | cm | The vertical distance between the centers of the registration marks present on the chart. Can average left and right pairs, but should be the same. | |||||
| reg_reg_vert_fraction | ✓ | float[] | 1x1 | Normalized | The vertical distance between the centers of the registration marks, normalized to the image height. | |||||
| reg_reg_vert_pixels | ✓ | float[] | 1x1 | pixels | The vertical distance between the centers of the registration marks given in pixels. | |||||
| square_height_cm | ✓ | float[] | 1x1 | cm | User input; square height measured from target in cm. | |||||
| square_vert_pixels | ✓ | float[] | 1x1 | pixels | Square height measured by Imatest given in pixels. | |||||
| square_vert_fraction | ✓ | float[] | 1x1 | Normalized | Square height measured by Imatest, normalized to the full image height. | square_vert_pixels / HeightPxls | ||||
| magnification_meas | ✓ | ✓ | ✓ | float[] | 1x1 | None | Magnification of the image on the image sensor relative to the object size. Requires using a target with known dimensions such as SFRplus, eSFR ISO, or Checkerboard, and entering the appropriate feature size on the target as well as the pixel pitch on the sensor. | docs ↗ | ||
| FieldofView_DiagHV_cm | ✓ | ✓ | ✓ | float[] | 1x3 | cm | Image FOV in diagonal, horizontal, and vertical directions, respectively. Calculated using distortion fit coefficients and given in units of cm. | |||
| FieldofView_DiagHV_bar_bar_frac | ✓ | float[] | 1x3 | Measured FOV in the diagonal, horizontal, and vertical directions, respectively. Given in terms of how many times the active (bar-bar) height of the chart would fit across each image direction. | FieldofView_DiagHV_cm / chart_height_bar_bar_cm | |||||
| FieldofView_DiagHV_reg_reg_frac | ✓ | float[] | 1x3 | Measured FOV in the diagonal, horizontal, and vertical directions, respectively. Given in terms of how many times the vertical distance between the registration would fit across each image direction. | FieldofView_DiagHV_cm / registration_mark_spacing_cm | |||||
| FieldofView_DiagHV_square_count | ✓ | ✓ | float[] | 1x3 | # squares | Image FOV in diagonal, horizontal, and vertical directions, respectively. Calculated using distortion fit coefficients and given in terms of the number of squares visible across the FOV. | FieldofView_DiagHV_cm / square_height_cm | |||
| FieldofView_DiagHV_degrees | ✓ | ✓ | ✓ | float[] | 1x3 | degrees | Image FOV in diagonal, horizontal, and vertical directions, respectively. Calculated using distortion fit coefficients and given in units of degrees. | |||
| Pixel_aspect_ratio | ✓ | ✓ | ✓ | float[] | 1x1 | (Change in hoizontal FOV due to distortion) divided by (Change in vertical FOV due to distortion). | ΔFOV_h / ΔFOV_v | |||
| H_conv_angle_degrees | ✓ | ✓ | ✓ | float[] | 1x1 | degrees | The angle at which the horizontal lines in the image would intersect if extended far enough. | |||
| V_conv_angle_degrees | ✓ | ✓ | ✓ | float[] | 1x1 | degrees | The angle at which the vertical lines in the image would intersect if extended far enough. | |||
| lens_to_chart_distance_cm | ✓ | ✓ | ✓ | float[] | 1x1 | cm | Distance from the entrance pupil of the camera to the target. Entered by user in settings. | |||
| focal_lth_measured_mm | ✓ | ✓ | ✓ | float[] | 1x1 | mm | Focal length of the lens being used for testing. Entered by user or included in EXIF data. | |||
| SMIA_TV_Distortion_Pct | ✓ | ✓ | ✓ | float[] | 1x1 | % | TV distortion calculated using equations defined in the SMIA specification. | SMIA TV Distortion = 100(A - B)/B A = (A1 + A2)/2 | ||
| ISO_TV_Distortion_Pct | ✓ | ✓ | ✓ | float[] | 1x1 | % | TV distortion calculated using equations from ISO 16505 standard. | |||
| k1_3rd_order_dist_coeff | ✓ | ✓ | float[] | 1x1 | Coefficient, k1, calculated for fit to 3rd order distortion model. | Standard: | ||||
| Division Model: | ||||||||||
| h1_h2_5th_order_dist_coeffs | ✓ | ✓ | float[] | 1x2 | Coefficients, k1, k2, calculated for fit to 5th order distortion model. | Standard: | ||||
| Division Model: | ||||||||||
| arctan_tan_dist_coeff | ✓ | ✓ | ✓ | float[] | 1x1 | Coefficient, p1, calculated for fit to arctan/tan disortion model. | ||||
| distortion_coeffs_2nd_5th_All | ✓ | ✓ | float[] | 1x4 | Coefficients k_n for the "5th Order (ALL 2-5)" distortion calculation option. When this calculation option is not selected, the output for this field is always [0, 0]. | Standard: | ||||
| Division Model: | ||||||||||
| x_distortion_decenter_ctrcor | ✓ | float[] | 1x1 | Normalized | Location of the horizontal center of distortion given relative to the horizontal center of the image. The normalization factor is the center-to-corner distance of the image. Positive values are to the right. | |||||
| y_distortion_decenter_ctrcor | ✓ | float[] | 1x1 | Normalized | Location of the vertical center of distortion given relative to the vertical center of the image. The normalization factor is the center-to-corner distance of the image. Positive values are downward. | |||||
| x_distortion_decenter_pixels | ✓ | float[] | 1x1 | pixels | Location of the horizontal center of distortion given relative to the horizontal center of the image. Positive values are to the right. | |||||
| y_distortion_decenter_pixels | ✓ | float[] | 1x1 | pixels | Location of the vertical center of distortion given relative to the vertical center of the image. Positive values are downward. | |||||
| x_distortion_decenter | ✓ | float[] | 1x1 | pixels | Location of the horizontal center of distortion given relative to the horizontal center of the image. Positive values are to the right. | |||||
| y_distortion_decenter | ✓ | float[] | 1x1 | pixels | Location of the vertical center of distortion given relative to the vertical center of the image. Positive values are downward. | |||||
| distortion_decenter_norml | ✓ | float[] | 1x2 | Normalized | [x, y] locations of the center of distortion given relative to the vertical center of the image. Positive values are downward and to the right. The normalization factor is output in radius_norml_factor_px. | |||||
| max_detected_radius_norml | ✓ | float[] | 1x1 | Normalized | The normalized radius of the farthest detected checker saddle point from the center. All distortion paramters/measurements above this radius are extrapolated. The smaller this is the less reliable distortion measurements are. The normalization factor is output in radius_norml_factor_px. | |||||
| radius_norml_factor_px | ✓ | float[] | 1x1 | pixels | The radius in pixels used to normalize distortion distances. If no image circle is used, then this is the center-corner distance. | |||||
| best_distortion_calculation | ✓ | ✓ | string | Human readable output indicating which distortion model returned the best fit. | ||||||
| image_circle_method | ✓ | string | The user-provided method for computing the image circle. One of: "None", "Specify radius (px) from image center", or "Specify radius and center". | |||||||
| image_circle_params | ✓ | float[] | 1x3 | pixels | The image circle parameters: center x, center y, radius. This does not appear in the results unless image_circle_method is not None. The center location is in IEEE Std 2020:2024 Type IV image coordinates (one indexed from upper-left). | |||||
| distortion_coefficients | ✓ | ✓ | float[] | 1xn_coeffs | The distortion coefficients corresponding to best_distortion_calculation. n_coeffs = the number of coefficients required for the best fit equation. | |||||
| radius | ✓ | ✓ | float[] | 1x11 | Normalized | Normalized radii of points, r, in distorted (input) image The normalization factor is output in radius_norml_factor_px. | ||||
| radius_undistorted | ✓ | ✓ | float[] | 1x11 | Normalized | Normalized radii of points, r', in undistorted (distortion corrected) image The normalization factor is output in radius_norml_factor_px. | ||||
| Delta_radius | ✓ | ✓ | float[] | 1x11 | Normalized | The change in radius, Δr, between points in the distorted (input) image and the undistorted (distortion corrected) image. The normalization factor is output in radius_norml_factor_px. | Δr = r - r' = radius - radius_undistorted | |||
| lens_geometric_distortion_pct | ✓ | ✓ | float[] | 1x11 | % | Lens Geometric Distortion (LGD), which is included in the CPIQ Phase 2 specification, and is equivalent to Optical Distortion (defined by Edmund Optics). | LGD = 100x(Delta_radius/radius_undistorted) | |||
| max_geometric_distortion_pct | ✓ | ✓ | float[] | 1x1 | % | Maximum value in lens_geometric_distortion_pct. | ||||
| min_geometric_distortion_pct | ✓ | ✓ | float[] | 1x1 | % | Minimum value in lens_geometric_distortion_pct. | ||||
| worst_geometric_distortion_pct | ✓ | ✓ | float[] | 1x1 | % | Absolute value of min_geometric_distortion_pct. | ||||
| chart_angle_from_circles_degrees | ✓ | float[] | 1x1 | degrees | Angle of the checkerboard chart derived from the chart center circles. Represents the angle of the horizontal arm of an upside-down "L" shape circle pattern, relative to the x-axis of the image. Clockwise rotations are reported as positive angles (-180 to 180). |
Sharpness
170 fields
| JSON Field | SFR | SFR+ | eSFR | reg | CB | LFC | Wedge | Rand | Star | Type | Format | Units | Description | Equations | Online Documentation | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| EDGE MTF | ||||||||||||||||||||
| angle_from_tangential_sfr_deg | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | degrees | Angle away from tangential sfr (radial edge). Radial edges (tangential sfr) will have values close to 0. Tangential edges (saggital SFR) will have values close to 90. The angle is measured between the image-center-to-edge-center vector and the edge vector. | ||||||||||||
| apply_MTF_compensation_deconv | ✓ | ✓ | ✓ | ✓ | int[] | 1x1 | None | Indicates whether or not the user has selected to apply MTF compensation. 0 = No 1 = Yes | ||||||||||||
| mtfPeak | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | cycles/pixel | The maximum MTF value for each selected edge. Values are normalized to the low-frequency value for each individual MTF measurement. | |||||||||||
| mtfnn | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | cycles/pixel | Frequency value where MTF = nn% of 1 for each selected edge. nn = 50, 30, 20, 10 | |||||||||||
| mtfnnp | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | cycles/pixel | Frequency value where MTF = nn% of its maximum for each selected edge. nn = 50, 30, 20, 10 | |||||||||||
| MTF_user_units | ✓ | ✓ | ✓ | ✓ | ✓ | object | Gives MTF results in frequency_units, selected by user. | |||||||||||||
| frequency_units | ✓ | ✓ | string | "<units>" | user selected | Indicates MTF frequency units selected by user. | ||||||||||||||
| secondary_readout_n | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | string | None | Human readable description of selected secondary readout. | ||||||||||
| secondary_n_results | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | user selected | Results of selected secondary readout for each ROI. | |||||||||
| secondary_n_min_max_ratio | ✓ | ✓ | ✓ | ✓ | float[] | 1x1 | The ratio of the minimum to maximum values in secondary_n_results. | |||||||||||||
| quadrants | ✓ | ✓ | ✓ | ✓ | string | None | Divides the test chart up into 5 sections where the regions that fall into those sections are averaged, including Center, UR, LR, UL, LL. | docs ↗ | ||||||||||||
| secondary_n_quadrant_mean | ✓ | ✓ | ✓ | ✓ | float[] | 1x5 | The mean value of the secondary readout for each quadrant. | |||||||||||||
| secondary_n_quadrant_min | ✓ | ✓ | ✓ | ✓ | float[] | 1x5 | The minimum value of the secondary readout for each quadrant. | |||||||||||||
| secondary_n_quadrant_min_location | ✓ | ✓ | ✓ | ✓ | string | "quadrant" | None | The quadrant containing secondary_n_quadrant_min. Possible values: "Center", "UR", "LR", "UL", "LL" | ||||||||||||
| secondary_n_quadrant_max | ✓ | ✓ | ✓ | ✓ | float[] | 1x5 | The maximum value of the secondary readout for each quadrant. | |||||||||||||
| secondary_n_quadrant_max_location | ✓ | ✓ | ✓ | ✓ | string | "quadrant" | None | The quadrant containing secondary_n_quadrant_max. Possible values: "Center", "UR", "LR", "UL", "LL" | ||||||||||||
| riseLevelsPct | ✓ | ✓ | ✓ | ✓ | ✓ | string | "nnnn" | % | Gives lower and upper limits of rise distance calculation Example: "1090" --> 10-90% of the edge spread function. | |||||||||||
| riseDistPxls | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | pixels | X-distance between the upper and lower y-limits set by riseLevelPct, given for each edge. | |||||||||||
| edgeRoughnessSTD | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 4xN_roi | Total edge roughness (STD) measurement for each color channel (row) and ROI (column). Color channel order = RGBY | docs ↗ | |||||||||||
| overSharpeningPct | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | % | The amount of sharpening relative to standardized sharpening, which results in a modest amount of overshoot, similar to what you might get after manually sharpening the image. Undersharpening is displayed here as a negative number. Note that this is a measurement made in the frequency domain. | ||||||||||
| overshootPct | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | % | Measurement of the "bump" in the edge profile caused by sharpening. Note that this is a measurement made in the spatial domain. | 100 * (esf_max - pixel_level_light) / pixel_level_light esf = edge spread function We calculate this with normalized data as: 100 * (esf_max_norm - 1) [This data is "normalized" as: pixel_level_light = 1, pixel_level_dark = 0] | docs ↗ | |||||||||
| undershootPct | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | % | Measurement of the "dip" in the edge profile caused by sharpening. Note that this is a measurement made in the spatial domain. | 100 * (pixel_level_dark - esf_min) / pixel_level_dark esf = edge spread function We calculate this with normalized data as: -100 * (esf_min_norm) [This data is "normalized" as: pixel_level_light = 1, pixel_level_dark = 0] | ||||||||||
| LineSpreadFn_PW50_Pxls | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | pixels | "Pulse width 50", equivalent to "Full width at half maximum" (FWHM). | |||||||||||
| edge_angle_degrees | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | degrees | The angle of the edge with respect to perfectly horizontal or vertical. | |||||||||||
| pixel_level_light | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | DN (255) | Pixel level at which the edge response curve plateaus on the bright side. | docs ↗ | ||||||||||
| pixel_level_dark | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | DN (255) | Pixel level at which the edge response curve plateaus on the dark side. | |||||||||||
| pixel_level_ratio | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1xN_roi | None | pixel_level_light / pixel_level_dark for each ROI. | |||||||||||
| pixel_level_ratio_mean | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1x1 | None | pixel_level_light / pixel_level_dark averaged over all ROIs. | |||||||||||
| mtf50asym_x_y_Pct | ✓ | ✓ | ✓ | ✓ | float[] | 1x2 | % | MTF asymmetry is calculated in the x (horizontal) and y (vertical) directions. MTF50 as functions of x and y are fitted to second-order (parabolic) curves, which are used to calculate expected MTF50 values at the Top, Bottom, Left and Right (MTF50T, etc.) of the image. | MTF asymmetry (x) = (MTF50R-MTF50L) / (MTF50R+MTF50L) MTF asymmetry (y) = (MTF50T-MTF50B) / (MTF50T+MTF50B) | docs ↗ | ||||||||||
| mtf_center_loc_Pct | ✓ | ✓ | ✓ | ✓ | float[] | 1x2 | % | The location of the center of focus in the horizontal (x) and vertical (y) directions, respectively. Given as percentages of the full image width and height, respectively. | (mtf_center_loc_Pixels[1] / WidthPxls ) * 100, (mtf_center_loc_Pixels[2] / HeightPxls) * 100 | |||||||||||
| mtf_center_loc_Pixels | ✓ | ✓ | ✓ | ✓ | float[] | 1x2 | pixels | The location of the center of focus in the horizontal (x) and vertical (y) directions, respectively.
Given as the pixel index. | ||||||||||||
| freq1units | ✓ | string | "<units>" | user selected | User selected frequency units in human-readable form. | |||||||||||||||
| freq2units | ✓ | string | "<units>" | user selected | User selected frequency units in human-readable form. | |||||||||||||||
| freq1 | ✓ | float[] | 1x637 | user selected | Frequency values corresponding to freq1units. | |||||||||||||||
| freq2 | ✓ | float[] | 1x637 | user selected | Frequency values corresponding to freq2units. | |||||||||||||||
| mtf_nchan | ✓ | float[] | 1x637 | None | MTF values for primary channel selected by user. | |||||||||||||||
| mtf_r | ✓ | float[] | 1x637 | None | Red channel MTF. | |||||||||||||||
| mtf_g | ✓ | float[] | 1x637 | None | Green channel MTF. | |||||||||||||||
| mtf_b | ✓ | float[] | 1x637 | None | Blue channel MTF. | |||||||||||||||
| mtf_y | ✓ | float[] | 1x637 | None | Luminance channel MTF. | |||||||||||||||
| MTFfreq_CP | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1x31 | cycles/pixel | Frequency values in units of cycles/pixel. Same frequencies are always used. | |||||||||||
| MTF_Interpolated | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | N_roi x31 | None | - Interpolated MTF data for the primary color channel selected by user. - Will always duplicate one of the MTFinterpn arrays. | |||||||||||
| mtf_diff_ltd_freq | ✓ | ✓ | float[] | 1x221 | Frequency values for diffraction-limited MTF calculation. | |||||||||||||||
| mtf_diff_ltd | ✓ | ✓ | float[] | 1x221 | Diffraction-limited MTF. - This is a theoretical limit, not a measurement. - Must enter pixel size and aperture information to get this output. | |||||||||||||||
| freq_ois | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1x61 | Frequency values for mtf_ois. | ||||||||||||
| mtf_ois | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | N_roi x61 | MTF related to optical image stabilization. | ||||||||||||
| MTFinterpn | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | N_roi x31 | None | - MTF data for the R, G, B, and Y channels respectively. - Measured MTF curve interpolated to report values at frequencies given by MTFfreq_CP. | |||||||||||
| rnnnnPxls | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1x1 | pixels | - Rise distance in pixels (measured from edge profile). - nnnn = 1090 indicates a rise distance measured between 10% and 90% of the dark/light plateau values. | |||||||||||
| linearization_method | ✓ | ✓ | ✓ | ✓ | ✓ | string | 1x1 | None | The user-selected method for linearizing the slanted-edge ROI image data for SFR calculations. Also used for linearizing any wedge ROI data for SFR calculations. | |||||||||||
| linearization_required_extrap_edge | ✓ | ✓ | ✓ | ✓ | ✓ | int[] | 1 x N_edge_rois | None | - List of logical (1 or 0) indicating whether each edge ROI required extrapolation of the LUT when linearizing the image data. - This field only appears when the linearization_method is "Linearly interpolated LUT from step chart". | |||||||||||
| linearization_required_extrap_wedge | ✓ | ✓ | ✓ | ✓ | ✓ | int[] | 1 x N_wedge_groups | None | - List of logical (1 or 0) indicating whether each wedge ROI required extrapolation of the LUT when linearizing the image data. - This field only appears when the linearization_method is "Linearly interpolated LUT from step chart". | |||||||||||
| MTF SUMMARY | ||||||||||||||||||||
| region_weights | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1x3 | fractional % | Weights applied to values from central, inner, and outter regions respectively for summary results (e.g. mean MTF50). | |||||||||||
| summaryRegions | ✓ | ✓ | ✓ | ✓ | string | Labels for entries in "summary" results below. | ||||||||||||||
| mtf_summary_specified_units | ✓ | ✓ | ✓ | ✓ | string | "<units>" | MTF units selected by user. | |||||||||||||
| mtfnn_CP_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | cycles/pixel | Frequency value where MTF = nn% of 1, for slanted-edges. Values correspond to summaryRegions. | ||||||||||||
| mtfnn_specified_units_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | user selected | |||||||||||||
| mtfnn_LWPH_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | LW/PH | |||||||||||||
| mtfnn_CP_wedge_summary | ✓ | float[] | 1x11 | cycles/pixel | Frequency value where MTF = nn% of 1, for wedges. Values correspond to summaryRegions. | |||||||||||||||
| mtfnn_specified_units_wedge_summary | ✓ | float[] | 1x11 | user selected | ||||||||||||||||
| mtfnnp_CP_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | cycles/pixel | Frequency value where MTF = nn% of its maximum, for slanted-edges. Values corresponds to summaryRegions. | ||||||||||||
| mtfnnp_specified_units_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | user selected | |||||||||||||
| mtfnnp_LWPH_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | LW/PH | |||||||||||||
| mtfnnP_CP_wedge_summary | ✓ | float[] | 1x11 | cycles/pixel | Frequency value where MTF = nn% of its maximum, for wedges. Values corresponds to summaryRegions. | |||||||||||||||
| mtfnnP_specified_units_wedge_summary | ✓ | float[] | 1x11 | user selected | ||||||||||||||||
| riseDistPxls_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | pixels | The 10-90% rise distance values corresponding to summaryRegions. | ||||||||||||
| riseDist_PH_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | % picture height | |||||||||||||
| overSharpening_Pct_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | % | overSharpeningPct results corresponding to summaryRegions. | ||||||||||||
| overshoot_Pct_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | % | overshootPct results corresponding to summaryRegions. | ||||||||||||
| secondary_n_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | User selected | Secondary readout results corresponding to summaryRegions. | ||||||||||||
| edgeRoughSTD_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | Total edge roughness (STD) measurement for Y-channel. | |||||||||||||
| MTF_Area_PkNorm_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | Area under the MTF curve (below the Nyquist frequency), normalized to its peak value. Values correspond to summaryRegions. | |||||||||||||
| mean_ROI_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | Mean normalized pixel level for selected ROIs. | |||||||||||||
| peakMTF_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | None | Maximum MTF values corresponding to summaryRegions. Values are normalized to the low-frequncy value for each individual MTF measurement. | ||||||||||||
| LSF_PW50_pxls_summary | ✓ | ✓ | ✓ | ✓ | float[] | 1x11 | pixels | The width of the line spread function at 50% of its maximum value. Values correspond to summarRegions. | ||||||||||||
| Non-Edge MTF | ||||||||||||||||||||
| row | ✓ | int[] | 1x23 | None | Indices of horizontal rows 1-23 used for calculation. | |||||||||||||||
| contrast | ✓ | float[] | 1x23 | Low frequency contrast for MTFnn plot. | ||||||||||||||||
| MTFnn_Cycles_per_Pixel | ✓ | ✓ | ✓ | ✓ | float[] | 1x23, 1xN_wedge, 1xN_segments | cycles/pixel | The frequency at which the MTF reaches nn% of the low frequency value. | ||||||||||||
| MTFnnP_Cycles_per_Pixel | ✓ | ✓ | ✓ | ✓ | float[] | 1x23, 1xN_wedge, 1xN_segments | cycles/pixel | The frequency at which the MTF reaches nn% of the peak MTF value. | ||||||||||||
| freq_CP_row_n | ✓ | float[] | 1x269 | cycles/pixel | Frequency values for MTF_smooth_row_n. n = 1, 4, 7, 10, 13, 16, 19 | |||||||||||||||
| MTF_smooth_row_n | ✓ | float[] | 1x269 | None | Smoothed MTF values for each analysis row given by "n". n = 1, 4, 7, 10, 13, 16, 19 | |||||||||||||||
| max_detected_frequency_Cycles_per_Pixel | ✓ | ✓ | ✓ | ✓ | float[] | 1x1 | cycles/pixel | The maximum measurable frequency detected in the test image. | ||||||||||||
| frequency_Cycles_per_Pixel | ✓ | float[] | cycles/pixel | Frequency values for MTF & MTF_with_noise. | ||||||||||||||||
| MTF_for_segments | ✓ | float[] | N_segments x length(frequency_Cycles_per_Pixel) | The MTF curve data for each chart segment measured. The number of segments is selected by the user in the "More settings" window. | ||||||||||||||||
| MTF | ✓ | float[] | 1xlength(frequency_Cycles_per_Pixel) | None | Noise-subtracted MTF values corresponding to frequency_Cycles_per_Pixel. | |||||||||||||||
| MTF_with_noise | ✓ | float[] | 1xlength(frequency_Cycles_per_Pixel) | None | MTF values with noise (without noise-subtraction) correspondning to frequency_Cycles_per_Pixel. | |||||||||||||||
| noise_PSD | ✓ | float[] | 1xlength(frequency_Cycles_per_Pixel) | Power Spectral Density calculated from flat gray regions on the sides of the Spilled Coins target. | docs ↗ | |||||||||||||||
| signal_plus_noise_PSD | ✓ | float[] | 1xlength(frequency_Cycles_per_Pixel) | Power Spectral Density calculated from the texture pattern region of the Spilled Coins target. | ||||||||||||||||
| signal_PSD | ✓ | float[] | 1xlength(frequency_Cycles_per_Pixel) | The difference between signal_plus_noise_PSD and noise_PSD. | signal_plus_noise_PSD - noise_PSD | docs ↗ | ||||||||||||||
| number_of_radii | ✓ | Number of radii to use for calculation. Selected by user. | ||||||||||||||||||
| segments_total | ✓ | int[] | 1x1 | None | Number of segments used for calculation. Set by user in "More settings" window. | |||||||||||||||
| segments_valid | ✓ | int[] | 1xN_vs | None | Lists each segment considered valid for use in calculations. N_vs = Number of valid segments. Can range from 0-segments_total. | |||||||||||||||
| frequency_C_P | ✓ | float[] | 1xnumber_of_radii | cycles/pixel | The frequency of the star pattern at each radius measured. | |||||||||||||||
| freq_interp_C_P | ✓ | float[] | 1x51 | cycles/pixel | Interpolated frequency values calculated using values in frequency_C_P. | |||||||||||||||
| MTF_unsmoothed_mean | ✓ | float[] | 1xN_radii | None | MTF values corresponding to frequency_C_P. Averaged over all segments. | |||||||||||||||
| MTF_interp_smooth_mean | ✓ | float[] | 1x51 | None | MTF values corresponding to freq_interp_C_P. Averaged over all segments. | |||||||||||||||
| MTF_interp_smooth_segments | ✓ | float[] | N_segments x51 | None | MTF values corresponding to freq_interp_C_P for each chart segment analyzed. | |||||||||||||||
| WEDGE | ||||||||||||||||||||
| moire_measurement | ✓ | string | The moire measurement method (color difference) selected by the user. | |||||||||||||||||
| moire_smoothing | ✓ | string | Indicates whether or not smoothing has been applied. | |||||||||||||||||
| wedge_number | ✓ | int[] | 1xN_wedge | Indices for wedge groups. Each wedge group consists of one high frequency wedge and one low frequency wedge. | ||||||||||||||||
| MTFnn_wedge_Cycles_per_Pixel | ✓ | float[] | 1xN_wedge | cycles/pixel | The frequency at which the MTF reaches nn% of the low frequency value, for each wedge group analyzed. | |||||||||||||||
| MTFnnP_wedge_Cycles_per_Pixel | ✓ | float[] | 1xN_wedge | cycles/pixel | The frequency at which the MTF reaches nn% of the peak MTF value, for each wedge group analyzed. | |||||||||||||||
| *_freq_wedge_center_locations_x | ✓ | float[] | 1xN_wedge | pixels | The locations of the centers of each wedge ROI. x = horizontal, y = vertical, corner_pct = radial * = "low", "high" | |||||||||||||||
| *_freq_wedge_center_locations_y | ✓ | float[] | 1xN_wedge | pixels | ||||||||||||||||
| *_freq_wedge_center_corner_pct | ✓ | float[] | 1xN_wedge | % ctr-corner | ||||||||||||||||
| *_freq_wedge_boundary_x_left | ✓ | float[] | 1xN_wedge | pixels | The x, y boundaries of each wedge ROI. * = "low", "high" y_top | - - - | x_left | | x_right | - - - | y_bot | |||||||||||||||
| *_freq_wedge_boundary_x_right | ✓ | float[] | 1xN_wedge | pixels | ||||||||||||||||
| *_freq_wedge_boundary_y_top | ✓ | float[] | 1xN_wedge | pixels | ||||||||||||||||
| *_freq_wedge_boundary_y_bot | ✓ | float[] | 1xN_wedge | pixels | ||||||||||||||||
| aliasing_onset_smoothed_CPP | ✓ | ✓ | float[] | 1xN_wedge | cycles/pixel | The spatial frequency where the (un)smoothed count of bars drops below 95% of the low frequency count. | ||||||||||||||
| aliasing_onset_unsmoothed_CPP | ✓ | ✓ | float[] | 1xN_wedge | cycles/pixel | |||||||||||||||
| aliasing_onset_sm_CPP_mean_1_4 | ✓ | float[] | 1x1 | cycles/pixel | Mean of aliasing_onset_smoothed_CPP for the first four wedge groups only. | |||||||||||||||
| aliasing_onset_sm_CPP_mean_all | ✓ | float[] | 1x1 | cycles/pixel | Mean of aliasing_onset_smoothed_CPP. | |||||||||||||||
| moire | ✓ | float[] | 1x317 | The color difference selected by the user, indicated by moire_measurement, given for all measured frequencies of each wedge. | docs ↗ | |||||||||||||||
| moire_spread_near_Nyq | ✓ | ✓ | float[] | 1xN_wedge | Measures the amplitude (spread) of moiré artifacts in the frequency band near the Nyquist limit (where aliasing is most likely) for each wedge. | |||||||||||||||
| color_aliasing_max_mean_R_minus_B | ✓ | ✓ | float[] | 1xN_wedge | the worst-case moiré color artifact of the Red channel minus the Blue channel for eachwedge, which can be used for reporting, plotting, or further analysis of color artifacts in the test chart image. | |||||||||||||||
| color_aliasing_max_mean_R_minus_B_normalized | ✓ | ✓ | float[] | 1xN_wedge | the worst-case moiré color artifact of the Red channel minus the Blue channel for eachwedge, which can be used for reporting, plotting, or further analysis of color artifacts in the test chart image, normalized between 0-1. | |||||||||||||||
| color_aliasing_max_mean_R_minus_G | ✓ | ✓ | float[] | 1xN_wedge | the worst-case moiré color artifact of the Red channel minus the Green channel for eachwedge, which can be used for reporting, plotting, or further analysis of color artifacts in the test chart image. | |||||||||||||||
| color_aliasing_max_mean_R_minus_G_normalized | ✓ | ✓ | float[] | 1xN_wedge | the worst-case moiré color artifact of the Red channel minus the Green channel for eachwedge, which can be used for reporting, plotting, or further analysis of color artifacts in the test chart image, normalized between 0-1. | |||||||||||||||
| color_aliasing_max_mean_G_minus_B | ✓ | ✓ | float[] | 1xN_wedge | the worst-case moiré color artifact of the Green channel minus the Blue channel for eachwedge, which can be used for reporting, plotting, or further analysis of color artifacts in the test chart image. | |||||||||||||||
| color_aliasing_max_mean_G_minus_B_normalized | ✓ | ✓ | float[] | 1xN_wedge | the worst-case moiré color artifact of the Green channel minus the Blue channel for eachwedge, which can be used for reporting, plotting, or further analysis of color artifacts in the test chart image, normalized between 0-1. | |||||||||||||||
| iqkpi_metric | ✓ | ✓ | string[] | N_wedge x2 | cycles/pixel | This method estimates image resolution by analyzing Y-channel resolution wedges and counting distinguishable lines in image rows and columns using gradient-based thresholds, with final resolution defined by where a set number of lines become indistinguishable due to merging. Output is in cycles/pixels. | docs ↗ | |||||||||||||
| iqkpi_LPH | ✓ | ✓ | string[] | N_wedge x2 | LW/PH | The above iqkpi_metric in units of Line Widths per Picture Height. | ||||||||||||||
| frequency_Cycles_per_Pixel | ✓ | float[] | 1x317 | cycles/pixel | Frequency values for MTF_smooth & MTF_orig. | |||||||||||||||
| MTF_orig | ✓ | float[] | 1x317 | None | MTF curve data corresponding to frequency_Cycles_per_Pixel. | |||||||||||||||
| MTF_smooth | ✓ | float[] | 1x317 | None | Smoothed MTF curve data corresponding to frequency_Cycles_per_Pixel. | |||||||||||||||
| fraction_bars_smooth | ✓ | float[] | 1x317 | None | Fraction of the total number of bars that are detectable at each measured frequency after smoothing. | |||||||||||||||
| fraction_bars | ✓ | float[] | 1x317 | None | Fraction of the total number of bars that are detectable at each measured frequency. | |||||||||||||||
| Acutance & SQF | ||||||||||||||||||||
| print_height_for_SQF | ✓ | ✓ | ✓ | ✓ | float[] | 1x100 | cm | The print height corresponding to each value in the SQF output, below. For a fixed print height and varying viewing distance, all values in this output will be the same. | docs ↗ | |||||||||||
| viewing_distance_for_SQF | ✓ | ✓ | ✓ | ✓ | float[] | 1x100 | cm | The viewing distance corresponding to each value in the SQF output, below. For a fixed viewing distance and varying print height, all values in this output will be the same. | ||||||||||||
| SQF | ✓ | ✓ | ✓ | ✓ | float[] | 1x100 | The subjective quality factor results corresponding to each print_height_for_SQF and viewing_distance_for_SQF result given above. | |||||||||||||
| print_height_cm | ✓ | ✓ | ✓ | float[] | 1xN | cm | The array of print height(s) in cm used to calculate each value in sqf_calculation. Note either this or viewing_distance_cm will be constant. | |||||||||||||
| viewing_distance_cm | ✓ | ✓ | ✓ | float[] | 1xN | cm | The array of viewing distance(s) in cm used to calculate each value in sqf_calculation. Note either this or print_height_cm will be constant. | |||||||||||||
| readout_picture_height_cm | ✓ | ✓ | ✓ | float[] | 1x1 | cm | The user-provided readout picture height in cm. | |||||||||||||
| readout_viewing_distance_cm | ✓ | ✓ | ✓ | float[] | 1x1 | cm | The user-provided readout viewing distance in cm. | |||||||||||||
| readout_type | ✓ | ✓ | ✓ | string | The calculation type selected by the user in the Acutance & SQF settings window. | |||||||||||||||
| readout_value | ✓ | ✓ | ✓ | float[] | 1x1 | The value of the calculation defined in readout_type at the "Readout" height/distance set by the user. | ||||||||||||||
| acutance_readout | ✓ | ✓ | ✓ | string | A human readable string that summarizes the readout_value actuance calculation. | |||||||||||||||
| sqf_calculation_type | ✓ | ✓ | ✓ | string | The calculation type selected by the user in the Acutance & SQF settings window. | |||||||||||||||
| SQFregion | ✓ | ✓ | ✓ | string | The chart region used for the acutance calculation. | |||||||||||||||
| sqf_calculation | ✓ | ✓ | ✓ | float[] | Results of the SQF calculation for each picture height/viewing distance. | |||||||||||||||
| sqf_normalization | ✓ | ✓ | ✓ | string | String that provides information on the normalization method selected by the user in the Acutance & SQF settings. | |||||||||||||||
| EDGE Information Capacity | ||||||||||||||||||||
| edge_info_note1 | ✓ | ✓ | ✓ | ✓ | ✓ | string | 1x1 | "Information capacity results. For color images, channels are R G B Y". | ||||||||||||
| edge_info_signal_V_P_P | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x n_roi | Peak to peak voltage (sqrt of power) of the slanted edge signal. | ||||||||||||
| edge_info_noise_V_RMS | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x n_roi | Root mean square of the slanted edge signal. Output includes value for each color channel (e.g., RGBY) and each edge ROI. | ||||||||||||
| edge_info_snr_RMS | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x n_roi | Root mean square of slanted edge SNR. Output includes value for each color channel (e.g., RGBY) and each edge ROI. | ||||||||||||
| edge_info_capacity_C_4_b_p | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x n_roi | bits/pixel | Information capacity of a 4:1 contrast edge. Calculated from SNR. Measured in bits/pixel. | |||||||||||
| edge_info_capcity_C_max_b_p | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x n_roi | bits/pixel | Information capacity if the entire dynamic range of the camera is utilized. Calculated from SNR. Measured in bits/pixel. | |||||||||||
| edge_info_capacity_C_4_NEQ_b_p | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x n_roi | bits/pixel | Information capacity of a 4:1 contrast edge. Calculated from noise equivalent quanta measurements (NEQ). Measured in bits/pixel. | |||||||||||
| edge_info_capacity_C_max_NEQ_b_p | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x n_roi | bits/pixel | Information capacity if the entire dynamic range of the camera is utalized. Calculated from noise equivalent quanta measurements (NEQ). Measured in bits/pixel. | |||||||||||
| signal_averages_for_info | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1x1 | Noise reduction at edge via signal averaging. | ||||||||||||
| edgeInfoCapactyMax_total_Mb | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1x1 | Total C_max in megabits. | ||||||||||||
| edge_info | ✓ | ✓ | ✓ | ✓ | ✓ | struct | nrois x 1 | |||||||||||||
| { | ||||||||||||||||||||
| ROI | ✓ | ✓ | ✓ | ✓ | ✓ | string | 1x1 | Region of interest index. | ||||||||||||
| Channels | ✓ | ✓ | ✓ | ✓ | ✓ | string | n_channels x 1 | Channel labels. | ||||||||||||
| frequency_dependent | ✓ | ✓ | ✓ | ✓ | ✓ | struct | 4x1 | |||||||||||||
| { | ||||||||||||||||||||
| frequency | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1 x n_freq | C/P | Frequency in secondary readout units. Default is cycles per pixel. | |||||||||||
| Noise_Voltage_Spectrum | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x n_freq | signal / sqrt(hz) | Square root of noise power spectrum. Measured in [signal]/sqrt(Hz). | |||||||||||
| Noise_Power_Spectrum | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x n_freq | signal.^2 / hz | Noise power at a slanted edge as a function of frequency. Measured in [signal].^2 / Hz. | |||||||||||
| Noise_Equivalent_Quanta | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x n_freq | Number of quanta, or photons | Frequency dependent signal to noise ratio. Measured in number of quanta, or photons. | |||||||||||
| } | ||||||||||||||||||||
| Edge_Voltage | ✓ | ✓ | ✓ | ✓ | ✓ | struct | 2x1 | |||||||||||||
| { | ||||||||||||||||||||
| pixels | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1 x n_pixels (not image pixels) | Slanted edge roi coordinate. | ||||||||||||
| Edge_Voltage_unnormalized | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channles x n_pixels | Slanted edge signal of the unbinned image. | ||||||||||||
| } | ||||||||||||||||||||
| Autocorrelation | ✓ | ✓ | ✓ | ✓ | ✓ | struct | 2x1 | |||||||||||||
| { | ||||||||||||||||||||
| pixels | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1 x 11 | Spatial position seperation between two correlation points of the noise power spectrum across a slanted edge. | ||||||||||||
| Noise_Autocorrelation | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x 11 | Similarity between noise power across a slanted edge as a function of spatial position difference. Calculated as the absolute value of the inverse fourier transform of noise voltage spectrum (via the Wiener-Khinchen theorem). | ||||||||||||
| } | ||||||||||||||||||||
| SNRi | ✓ | ✓ | ✓ | ✓ | ✓ | struct | 3x1 | |||||||||||||
| { | ||||||||||||||||||||
| box_width | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | 1 x 10 | pixels | Size of small object. Measured in pixels. | |||||||||||
| SNRi_square | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x 10 | Measure of detectability of a square of size w x w. | ||||||||||||
| SNRi_rectangle | ✓ | ✓ | ✓ | ✓ | ✓ | float[] | n_channels x 10 | Measure of detectability of a rectangle of size w x 4w. | ||||||||||||
| } | ||||||||||||||||||||
| } | ||||||||||||||||||||
Change Log
4 fields
| Update | Sheet | Field Name | Description | Old Field Name | Old Description | Additional Notes |
|---|---|---|---|---|---|---|
| change field | Sharpness | readout_picture_height_cm | The user-provided readout picture height in cm. | picture_ht_cm | The value set for the fixed picture height. | |
| new field | Sharpness | readout_viewing_distance_cm | The user-provided readout viewing distance in cm. | |||
| update description | Sharpness | print_height_cm | The array of print height(s) in cm used to calculate each value in sqf_calculation. Note either this or viewing_distance_cm will be constant. | Print height values used to calculate each value in sqf_calculation. When using fixed print height, all values in this array will be the same. | ||
| update description | Sharpness | viewing_distance_cm | The array of viewing distance(s) in cm used to calculate each value in sqf_calculation. Note either this or print_height_cm will be constant. | The value set for the fixed viewing distance. |