Analyses & Output – INI settings – Chart Definition Files – Chart Definition Utility – Video Analysis
INI file fields relevant to Arbitrary Charts
The following INI fields are currently exposed to the user to control the behavior of the Arbitrary Charts module and its output. They have been organized here by topic, but do not need to be in any particular order or grouping in your INI file itself.
[arbcharts] section
Slanted-edge Analysis
INI Field Name | Values | Description |
---|---|---|
doEdgeMTF | 0 or 1 | Perform slanted-edge MTF analysis on any edges present. |
channel_edgeMTF | string, channel name(s) | Color channel to run analysis on. Can be a space-separated list of allowed channel symbols. See note on Channels below. |
doEdgeLCA | 0 or 1 | Perform slanted-edge LCA analysis on any edges present with RGB channels, and an aggregate system LCA result from them. |
roiFillFactor_edge | number, range 0 to 1 | Fraction of maximum possible ROI of feature to use. (Note: this may be two element, in which case the entries refer to the [width, height] fill factors, respectively. Slanted edges derived from SlantedSquareFeatures always use the along-edge dimension as height and across-edge as width.) |
isoStd | 0 or 1 | Flag to revert to ISO-12233 compliant analysis, bypassing Imatest enhancements to the standard. Overrides the following options. |
modApod | 0 or 1 | Flag to indicate use of “modified apodization” noise reduction for increased stability of e-SFR results. (Recommended) |
edgeNonUniformCorrection | 0 or 1 | Flag to indicate use of slanted-edge non-uniformity correction. (Recommended) |
edgeDerivCorrection | 0 or 1 | Flag to indicate use of correction factor for continuous derivative approximation |
Texture Analysis
INI Field Name | Values | Description |
---|---|---|
doTextureMTF | 0 or 1 | Perform texture MTF analysis on all random texture patterns present. |
channel_textureMTF | string, channel name(s) | Color channel to run analysis on. Currently only one entry is allowed for this analysis. |
roiFillFactor_random_field | number, range 0 to 1 | Fraction of maximum possible ROI of feature to use. (Note: this may be two element, in which case the entries refer to the [width, height] fill factors, respectively.) |
nAngularSeg | Positive integer | Number of bins to partition the angles of the 2-d frequency plane into for analysis. Default: 1 |
nRadialSeg | Positive integer | Number of bins to partition the radius of the frequency plane into for analysis. I.e. number of sample points in “Texture MTF” curve. Default: 64 |
directPSDexponent | Negative number | Analytic PSD exponent value of the random pattern design used. Theoretically, typically -2. |
Star Analysis
INI Field Name | Values | Description |
---|---|---|
doStarMTF | 0 or 1 | Perform MTF analysis on all star patterns present. |
channel_starMTF | string, channel name(s) | Color channel to run analysis on. Currently only one entry is allowed for this analysis. |
roiFillFactor_star | number, range 0 to 1 | Fraction of maximum possible ROI of feature to use. (Note: this may be two element, in which case the entries refer to the [width, height] fill factors, respectively.) |
channel_starMTF | string, channel name(s) | Color channel to run analysis on. Currently only one entry is allowed for this analysis. |
nAngularSeg_star | Positive integer | Number of bins to partition the angles of the 2-d plane into for analysis. Default: 8 |
nRadialSeg_star | Positive integer | Number of bins to partition the radius of the star into for analysis. I.e. number of sample points in the MTF curve. Default:128 |
normalization_star | string: “normalize_segment”, “normalize_max_segment”, “normalize_lightest_darkest”, or “normalize_extrapolated” | MTF-curve normalization scheme selection.
NORMALIZE_SEGMENT : Normalize to each segment |
Wedge Analysis
INI Field Name | Values | Description |
---|---|---|
doWedge | 0 or 1 | Perform analysis on all wedges present. |
channel_wedge | string, channel name(s) | Color channel to run analysis on. Currently only one entry is allowed for this analysis. |
roiFillFactor_wedge | number, range 0 to 1 | Fraction of maximum possible ROI of feature to use. (Note: this may be two element, in which case the entries refer to the [width, height] fill factors, respectively.) |
Uniformity Grid Analysis
INI Field Name | Values | Description |
---|---|---|
doUniformityGrid | 0 or 1 | Perform uniformity analysis over a grid segmentation of the image plane using the background areas of the chart as a uniform color. |
channel_uniformityGrid | string, channel name(s) | Color channel to run analysis on. Can be a space-separated list of allowed channel symbols. See note on Channels below. |
nRowsGrid | positive integer | Number of rows of grid spanning the image plane for uniformity analysis |
nColumnsGrid | positive integer | Number of columns of grid spanning the image plane for uniformity analysis |
minValidPxGrid | positive integer | Number of pixels of valid chart-background area per grid section |
backgroundMargin | positive integer | Distance in pixels that a background area pixel needs to be from a chart feature or boundary to be considered valid. A margin of at least 5 is recommended. |
colorErrorGrid | string: “LAB”, “CIE_94”, “CMC”, or “CIE_2000” | What color error type to report for each grid segment. |
Color/Tone/Noise
INI Field Name | Values | Description |
---|---|---|
doColorError | 0 or 1 | Perform all color delta calculations on all color patches present. |
doNoise | 0 or 1 | Perform noise analysis on all neutral (grayscale) color patches present. |
doTonal | 0 or 1 | Perform tonal response analysis on all neutral (grayscale) color patches present. |
doFFT | 0 or 1 | Perform row/column periodic content analysis on all neutral (grayscale) color patches present. |
roiFillFactor_color_patch | number, range 0 to 1 | Fraction of maximum possible ROI of feature to use. (Note: this may be two element, in which case the entries refer to the [width, height] fill factors, respectively.) |
Circle Detection
INI Field Name | Values | Description |
---|---|---|
regionAreaThresh | number, range 0 to 1 | Circle size uncertainty. |
intensityThresh | number, range 0 to 0.5 | Intensity Variation (increase when circles are not uniform intensity). |
Perceptual metrics
INI Field Name | Values | Description |
---|---|---|
doAcutance | 0 or 1 | Perform acutance calculations on any MTF results produced (from edges or random textures). |
imgHeight | Number: -1 or a positive integer | Indicates the image height, in pixels, to use in acutance calculation if the image under test is cropped from a larger one. Set as -1 to use the image height of the input image itself (default and most common usage). |
displayHeight | Number: -1 or a positive integer | Indicates the display height, in cm, to use in acutance calculation. Set as -1 to indicate “an image height large enough to exactly hold imgHeight many pixels, assuming the supplied pxPerCm.”co |
viewDist | positive number | Viewer-to-display distance, in cm |
pxPerCm | positive number, or “inf” | Pixels per cm of the display, i.e. inverse of the pixel pitch in cm. If “inf”, the display is assumed is assumed to be “perfect” so that “lens only” acutance is reported |
displayType | “screen”, “print_l” or “print_s” | Display type indicator, which affects display mtf curve shape |
integralType | string, “CPIQ” or “SQF” | Type of integral to use for acutance/sqf calculation |
INI Field Name | Values | Description |
---|---|---|
doVideoAnalysis | 0 or 1 | Perform video analysis on valid video file. |
constantROI | 0 or 1 | Use the same ROIs for every frame of a video analysis instead of performing a target detection and alignment for each frame. This reduces analysis runtime but should be used only for static scenes. |
INI Field Name | Values | Description |
---|---|---|
distortionType | string, distortion type | Distortion model used to correct ROI placement for geometrically distorted images. See note on distortionType Models below. |
<distortionType>_distortionCenterShift | 2 numbers: x y | Center of distortion relative to center of image. Consistent with distortion center shift measurements made with checkerboard, SFRplus, and eSFR ISO analysis. See note on distortionType Models below. |
<distortionType>_distortionParameters | 1-5 numbers, depending on chosen distortion model: param_1 param_2 … param_5 | Parameters to characterize chosen distortion model. Consistent with distortion parameter measurements made with checkerboard, SFRplus, and eSFR ISO analysis. See note on distortionType Models below. |
Module operation and misc.
INI Field Name | Values | Description |
---|---|---|
save_dir_name | string, path to a directory | Path to a directory to create a ‘Results’ sub-directory in, used as save location for module outputs |
roi_confirmation | String: “no_confirmation”, “confirm_once”, or “confirm_all” | When running from Imatest Master, control if and when a window pops up for confirmation of the ROI selected in the image via automatic image registration. |
combineOutput | 0 or 1 | Flag to indicate if outputs from all images in a batch should be combined into a single output .json instead of one .json per input. |
regMarkBinarizeLevel | number, range [0,1] | Gray level value which separates the light and dark values of the registration marks, normalized relative to the bit depth of the image. This level is used to binarize the image data used for regmark detection, which is helpful in the case of low-contrast regmarks round in a high-contrast image. |
[api] section
INI Field Name | Values | Description |
---|---|---|
nomsg | 0 or 1 | Flag to indicate suppression of pop-up windows (ROI confirmation, warning messages, etc) |
continue_on_error | 0 or 1 | Flag to indicate if a batch run on multiple input images (through Master or IT) should continue processing remaining images if an error is encountered on a earlier image |
Image Channels
A number of analyses allow the user to indicate the channel (or channels) of the image data to perform the analysis on. The channel may be directly taken from the supplied image data (e.g., the R channel of an RGB image) or derived from the supplied data (e.g., the luminance channel, Y, of an RGB image). The following is a list of channels and their descriptions.
Users indicate to Imatest what channel to operate on by using the symbol for a channel where requested.
NOTE: [arbcharts] section entries typically accept lists of channels in the form of space-separated strings (e.g., “R G Y M”).
Uniformity Grid analysis will report outputs for all requested channels.
Slanted edge and Random analyses, however, will use only the first channel in the list which is also present in the image data input. If none are found, the an unrequested channel which is present will be used.
Channel Name | Symbol | Description |
---|---|---|
Red, Green, Blue | R, G, B | The “natural” channels of most color image files. |
Luminance | Y | How bright a point appears to the human eye. Derived from a weighted combination of the RGB channels if an RGB image is supplied.(relatively) |
Luma | Luma | Typically, the same linear combination of RGB channels that form the luminance channel but applied to data that is not linearly encoded. When the image data is linear, luma is the same as luminance. |
Intensity | I | Typically used for single-channel image data that does not have a known relationship to a true color space. |
CIE L*A*B* | L_star, A_star, B_star | |
RGB Mean | M | Average of R, G, and B channels. |
Channels and Image Encodings
Note that not all channels will be available for each type of input image data. For example, you can’t get an L* channel from an Intensity image created by an IR sensor because there is no appropriately defined relationship between the two.
Arbitrary Charts Module requires the user to indicate the encoding of the image data they supply so that it can be correctly interpreted.
NOTE: Currently, Arbitrary Charts really only supports two types of input encodings. If the input image is one-channel, it is interpreted as an Intensity encoding. If the input image is three-channel, it is assumed to be sRGB encoding. More encodings will be added in future point releases.
Encoding | Available Channels |
---|---|
Standard RGB encodings (sRGB, AdobeRGB, etc) | R, G, B, Y, L_star, A_star, B_star, Luma, M |
Intensity | I |
distortionType Models
A distortion model can be used to map the ROIs from a chart definition file to the correct location for highly geometrically distorted images. The distortion model can be measured for an imaging system by taking a picture under the same imaging conditions of a checkerboard chart, SFRplus chart, or eSFR ISO chart and performing a geometric analysis. The following distortion models are available in arbitrary charts and the chart definition utility:
Distortion Model | distortionType | <distortionType>_distortionCenterShift | <distortionType>_distortionParameters | Number of distortionParameters |
---|---|---|---|---|
3rd Order Polynomial | poly_3 | poly_3_distortionCenterShift | poly_3_distortionParameters | 1 |
5th Order Polynomial (3,5) | poly_5_odd | poly_5_odd_distortionCenterShift | poly_5_odd_distortionParameters | 2 |
arctan/tan | tan | tan_distortionCenterShift | tan_distortionParameters | 1 |
No distortion calc. | none | N/A | N/A | N/A |
5th Order Polynomial (ALL 2-5) | poly_5_all | poly_5_all_distortionCenterShift | poly_5_all_distortionParameters | 4 |
7th Order Polynomial Odd | poly_7_odd | poly_7_odd_distortionCenterShift | poly_7_odd_distortionParameters | 3 |
9th Order Polynomial Odd | poly_9_odd | poly_9_odd_distortionCenterShift | poly_9_odd_distortionParameters | 4 |
11th Order Polynomial Odd | poly_11_odd | poly_11_odd_distortionCenterShift | poly_11_odd_distortionParameters | 5 |
Note about overlap with other INI sections and future changes
Typically, the relevant fields for this module are in the [arbcharts] section of the INI file, but sometimes are in other sections as noted. Currently, Arbitrary Charts is its own segmented area of the Imatest eco-system, which is why some of the options (e.g., those for perceptual image quality view conditions) are found in this section instead of in, e.g., the [sqf] section of the INI file.
Future releases will consolidate these options and confer some values to other, relevant sections of the INI file. In this case, the values found in the [arbcharts] section will be carried over appropriately upon the first load of the new version, to ensure continuity.