colverify
Author: Graeme Gill

## profile/colverify

### Summary

Verify a color transform by comparing CIE measurement values from two test charts. The charts can be any suitably formatted CGATS or .ti3 format that contains corresponding XYZ, Lab or spectral values. The overall average and worst case delta E will be reported, as well as the worst 10% and best 90% of values.

### Usage Summary

`colverify [-options] target.ti3 measured.ti3
-v [n] Verbose mode, n >= 2 print each value
-l Match patches by sample location rather than id
-n Normalise each files reading to white Y
-N Normalise each files reading to white XYZ
-m Normalise each files reading to its white X+Y+Z
-M Normalise both files reading to mean white XYZ
-D Use D50 100.0 as L*a*b* white reference
-c Show CIE94 delta E values
-k Show CIEDE2000 delta E values
-h Plot a histogram of delta E's
-s Sort patch value by error
-w create X3DOM vector visualisation (measured.x3d.html)
` `-W create X3DOM marker & vector visualisation (measured.x3d.html)``
` `` `-x Use X3DOM axes
` `-f [illum] Use Fluorescent Whitening Agent compensation [opt. simulated inst. illum.:
M0, M1, M2, A, C, D50 (def.), D50M2, D65, F5, F8, F10 or file.sp]
-i illum Choose illuminant for computation of CIE XYZ from spectral data & FWA:
A, C, D50 (def.), D50M2, D65, F5, F8, F10 or file.sp
-o observ Choose CIE Observer for spectral data:
1931_2 (def.), 1964_10,` ``2015_2, 2015_10,` S&B 1955_2, shaw, J&V 1978_2 or file.cmf
-L profile.icm Skip any first file, out of profile gamut patches
-X file.ccmx Apply Colorimeter Correction Matrix to second file
target.ti3 Target or reference patch data file
measured.ti3 Measured or actual patch data file`

### Usage Details and Discussion

colverify provides a way of verifying how well a color transformation (such a proofing) performs.
The -v flag prints out extra information during the checking, and prints each patch value, rather than just a summary.
The -l flag makes colverify look for the SAMPLE_LOC fields to match patches by, rather than the default SAMPLE_ID field.
The -n flag causes the two sets of values to be normalized to the Y value of white for each set before comparison. White is assumed to be the patch with the largest Y value.
The -N flag causes the two sets of values to be normalized to the XYZ of white for each set before comparison. White is assumed to be the patch with the largest Y value.
The -m flag causes the two sets of values to be normalized to the X+Y+Z of white for each set before comparison. White is assumed to be the patch with the largest Y value.
The -M flag causes the two sets of values to be normalized to the average XYZ of the whites from each set before comparison. White is assumed to be the patch with the largest Y value.
The -D flag causes the white reference point for the conversion to L*a*b* to be D50 with a Y value of 100%. By default the sample with the largest Y value is found, and the L*a*b* white reference scaled to have that Y value. This allows sensible delta E values when comparing absolute color values, such as those from emission or display measurements.
The -c option causes the differences between the test values and the profile prediction of the color for each device value to be displayed in CIE94 delta E, rather than plain L*a*b* delta E. CIE94 delta E has a closer correspondence with perceived color differences than the default CIE76 delta E values.
The -k option causes the differences between the test values and the profile prediction of the color for each device value to be displayed in CIEDE2000 delta E, rather than plain L*a*b* delta E. CIEDE2000 delta E has a closer correspondence with perceived color differences than either CIE76 or CIE94 delta E values.
The -h flag will display a histogram plot of the fit delta E's. The X scale is delta E, the Y scale is %
If the -s flag is used in combination with the -v flag, then the test point by test point output will be sorted from worst to best.
The -w creates a X3DOM 3D visualization of the differences between the test points in D50 L*a*b* space, each difference being shown as a line vector. If the -W flag is used, then the target and measured values will also be marked by a small sphere. This can be used to visualize the placement of values in a .ti3 (or other CGATS file) by using the same file for both "target" and "measured" values.
The -x flag adds Lab axes to the X3DOM output.
The -f flag enables Fluorescent Whitening Agent (FWA) compensation. This only works if spectral data is available and, the instrument is not UV filtered. FWA compensation adjusts the spectral samples so that they appear to have been measured using an illuminant that has a different level of Ultra Violet to the one the instrument actually used in the measurement. The optional illumination parameter allows specifying a standard or custom illumination spectrum to be used as the similated instrument illuminant, overriding the default D50 or CIE computation illuminant used for FWA (see -i below). See colprof -f for a fuller explanation. The same value should be used as was used during the creation of the profile.
The -i flag allows specifying a standard or custom illumination spectrum, applied to the spectral test point values to compute CIE tristimulus values. A, D50, D50M2, D65, F5, F8, F10 are a selection of standard illuminant spectrums, with D50 being the default. If a filename is specified instead, it will be assumed to be an Argyll specific .sp spectrum file. If FWA compensation is used during measurement, this illuminant will be used by default as the simulated instrument illuminant. The same value should be used as was used during the creation of the profile.
The -o flag allows specifying a tristimulus observer, and is used to compute PCS (Profile Connection Space) tristimulus values. The following choices are available:
1931_2 selects the standard CIE 1931 2 degree observer. The default.
1964_10 selects the standard CIE 1964 10 degree observer.
2015_2 selects the standard CIE 2015 2 degree observer.
2015_10 selects the standard CIE 2015 10 degree observer.
1955_2 selects the Stiles and Birch 1955 2 degree observer
1978_2 selects the Judd and Voss 1978 2 degree observer
shaw selects the Shaw and Fairchild 1997 2 degree observer
file.cmf selects an observer specified by the given .cmf file.
The same parameter value should be used as was used during the creation of the profile.
The -L profile.icm parameter causes colverify to ignore any patches from the first file that are out of gamut according to the profile given by th -L argument. This can be useful in evaluating accuracy without tainting it by impossible to reach colors.
The -X file.ccmx option applies the given 3x3 calibration matrix to the values from the second file before doing any verification. This can be useful in evaluating the effects of a calibration matrix on raw colorimeter values, against reference values measured using a spectrometer.
If both CIE and spectral values are present in the input files, the CIE values will be used by default. Using the -i, -o or -f flag will force spectral values to be used. The the -i, -o or -f flags will apply to both the target and measured input files.