Note to Pilot Program / Beta users
As of the Imatest 5.0 Beta release date of August 11, 2017, there are no GUI settings windows for operational or output options related to the Arbitrary Charts module. Users must instead manually edit their INI file according to the following list.
Typically, these fields are in the [arbcharts] section of the INI file, but sometimes are in other sections, as noted. Currently (during the Beta period, before 5.0 official release), 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.
Note that this arrangement is currently extremely fluid and will change during the period the Beta test, including the INI field names themselves, so it is best to check back here frequently if you are using this module. Likewise, it would be unwise to base your post-Beta workflow on the current arrangement of fields.
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.
[imatest] section
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 |
[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 |
[arbcharts] section
Slanted-edge Analysis
INI Field Name | Values | Description |
---|---|---|
doEdgeMTF | 0 or 1 | Perform slanted-edge MTF analysis on any edges present. |
channel_edge | 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. |
roiFillFactor_edge | number, range 0 to 1 | Fraction of maximum possible ROI of feature to use. |
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 |
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 |
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. Can be a space-separated list of allowed channel symbols. See note on Channels below. |
roiFillFactor_random_field | number, range 0 to 1 | Fraction of maximum possible ROI of feature to use. |
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. |
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 |
nColsGrid | positive integer | Number of columns of grid spanning the image plane for uniformity analysis |
minValidPxGrid | non-negative 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. |
Module operation and misc.
INI Field Name | Values | Description |
---|---|---|
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. |
doColorError | 0 or 1 | Perform all color delta calculations on all color patches present. |
roiFillFactor_color_patch | number, range 0 to 1 | Fraction of maximum possible ROI of feature to use. |
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. |
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 TO PILOT PROGRAM/BETA USERS: [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 obviously 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 appropriate 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 TO PILOT PROGRAM/BETA USERS: Upon initial pre-release of 5.0 Beta, 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, These capabilities will be extended during the beta period.
Encoding | Available Channels |
---|---|
Standard RGB encodings (sRGB, AdobeRGB, etc) | R, G, B, Y, L_star, A_star, B_star, Luma, M |
Intensity | I |