Measuring Test Chart Patches with a Spectrophotometer

Using Babelcolor Patch Tool (discontinued) or SpectraShop

This post describes how to measure color and grayscale patches on a variety of test charts, including Imatest SFRplus and eSFR ISO charts, the X-Rite Colorchecker, ISO-15729, ISO-14524, ChromaDuMonde CDM-28R, and many more, using a spectrophotometer and one of two software packages.

Measurement results are stored in CGATS files, which can be used as reference files for grayscale and color chart analysis in Multicharts, Multitest, Colorcheck, Stepchart, and SFRplus. In many cases, custom reference files provide more accurate results than the default values.

In addition, Argyll CMS is a free, Open Source, command line-based package that can be used for a number of measurements, including illumination intensity and spectrum. See the Argyll CMS documentation for more details.

Spectrophotometer

At Imatest we currently use the i1Basic Pro 3 plus (a good choice if you’re shopping for a new instrument; ). We’ll call it the i1Pro in the text below. It’s one of several instruments supported by Babelcolor PatchTool and Robin Myers SpectraShop software. The i1Pro is primarily designed for reflective readings, but it can also be used to measure transmissive (backlit) charts.

Babelcolor Patch Tool (free)

Read the description of PatchTool on the Babelcolor page, then download and install it. You’ll need to purchase it in order to run Patch-Reader (no luck with evaluation mode). Registration is straightforward (no special instructions needed).

REFLECTANCE CALIBRATION: Remove the AMBIENT DIFFUSER if installed. Place the i1Pro on its BASE (white tile). When ready, press the ‘Return’ or ‘Enter’ keys or close this message window.NOTE: This calibration may take several seconds!

   OK   

A little inconsistency Although you enter patches by rows (R1C1, R1C2, …, R1Cn, R2C1, … R2Cn, …) at Patch-Reader’s prompting, the patches in CGATS files (created using Custom chart: m rows x n columns) are stored by columns: (R1C1,R2C1, …, RmC1, R1C2, …, RmC2, …). This is NOT consistent with CSV files, which are stored by patch order, i.e., rows (R1C1, R2C2, …R1Cn, R2C1, … R2Cn, … for rectangular charts). Imatest recognizes the file type (CSV or CGATS) and interprets the patch order correctly (using the LGOROWLENGTH setting in CGATS files).

Do you want to Save these measurements? Click ‘Cancel’ to continue making measurements.

 Save     Discard     Cancel

PatchTool writes files in CGATS format (an industry standard best explained in the PatchTool Help PDF document). Imatest can read CGATS file. Here is an example:

CGATS.17
ORIGINATOR    "BabelColor PatchTool, version 4.1.0 b321"
LGOROWLENGTH    4
CREATED    "2013-07-01"  # Time: 1:25:46 PM
INSTRUMENTATION    "i1Pro"
INSTRUMENT_SN    "608994"
MEASUREMENT_SOURCE    "Illumination=D50 ObserverAngle=2 WhiteBase=Abs Filter=UVcut"
ILLUMINATION_NAME    "D50"
OBSERVER_ANGLE    "2"
FILTER    "UVcut"
MEASUREMENT_CONDITION    "M2"
WEIGHTING_FUNCTION    "ILLUMINANT, D50"
WEIGHTING_FUNCTION    "OBSERVER, 2 degree"
KEYWORD    "DEVCALSTD"
DEVCALSTD    "XRGA"
#
# THIS FILE CONTAINS REFLECTANCE MEASUREMENTS MADE WITH PatchTool Patch-Reader
#
# Chart_type: "Custom chart"
# No_rows: 4
# No_columns: 5
# No_samples: 20
#
NUMBER_OF_FIELDS    3
BEGIN_DATA_FORMAT
LAB_L    LAB_A    LAB_B
END_DATA_FORMAT
NUMBER_OF_SETS    20
BEGIN_DATA
44.050    -4.479    -15.534
46.989    3.638    -16.591
38.129    6.395    6.321
52.539    -0.730    -3.700
40.766    32.354    14.498
42.772    -19.174    -21.994
57.309    12.668    12.012
53.507    1.771    3.460
47.533    -25.359    16.443
44.629    32.242    -6.113
61.667    -18.258    37.479
37.817    2.403    -27.741
33.075    4.416    -29.699
75.079    4.192    62.638
63.637    15.573    46.478
45.767    28.423    10.312
41.007    -8.057    10.701
59.762    -28.214    -1.841
55.213    23.810    34.126
33.661    10.341    -10.492
END_DATA

SpectraShop

Download and purchase SpectraShop (SpectraShop 6 as of mid-2024; the instructions here were developed using SpectraShop 4) using links at the bottom the product description page. Both Windows and Mac versions are available. The brief Tutorials are recommended. You should also download the full PDF manual and look at the FAQ, which has troubleshooting information. Open SpectraShop. Click on the Measure specimens box, which is the second from the left. (I’ve tried Create and edit charts and Measure chart without luck.)

This opens the Instrument Connection window, shown on the right. Select the spectrophotometer, click Connect, select the Specimen Type (reflective, transmissive, etc.). Be sure the spectrophotometer is on its base (with white tile), then press Calibrate.

Instrument Connection window, shown just before Calibration

After Calibration is complete, the Measure Reflective Specimens page will open. None of the settings are critical, but we recommend

  • Set Value: to 1. This is the number of the first patch. This corresponds to patch order better than the default 0.

  • Set Root: to a short description of the chart or patch.

  • Set Digits: to 2 (especially if you plan to measure over 10 patches). This will make the file sortable since the sequence will be 01, 02, …, 10, 11, …

When you have finished making settings, press Start. Place the spectrophotometer sensor over the patch. If possible the room should be dimly lit to minimize light leakage. Take each reading by clicking the spectrophotometer button— waiting about two seconds for a beep indicating that the reading is complete. Patch order is described below. Take readings carefully. I haven’t (yet) found a convenient way to edit or redo erroneous readings.

Saving the reference file

I recommend saving results in two formats: the default SpectraShop ss3 format (not interchangeable, but can be reopened in Spectrashop), which contains all results (including the spectrum), and CGATS with just the results used by Imatest. To save the SS3 file, click (in the window shown below) File, Save… or Save as… The procedure for saving Imatest-readable CGATS files is shown below.

To save the measurements in an Imatest-readable CGATS file, click File, Export… The window on the right opens. Select CGATS 1.7 ASCII as the Export Format. Spectrum should be unchecked and L*a*b* should be checked. XYZ and xyY may be checked if desired, but they will be ignored by Imatest if L*a*b* has been checked.

Spectrashop Export window
(for writing CGATS files)

Here are the results:

CGATS.17
ORIGINATOR    ""
CREATED    "2013-08-28 16:43:55"
INSTRUMENTATION    "i1Pro"
MEASUREMENT_GEOMETRY    "45/0"
MEASUREMENT_SOURCE    "A"
WEIGHTING_FUNCTION    "OBSERVER,2 degree"
WEIGHTING_FUNCTION    "ILLUMINANT,A"
NUMBER_OF_FIELDS    4
BEGIN_DATA_FORMAT
SAMPLE_ID    LAB_L    LAB_A    LAB_B     
END_DATA_FORMAT
NUMBER_OF_SETS    24 
BEGIN_DATA 
"Colorchecker-01"    39.80    14.43    17.09     
"Untitled-02"    67.86    22.51    20.21     
"Untitled-03"    48.51    -9.36    -23.27     
"Untitled-04"    43.04    -10.81    20.67     
"Untitled-05"    54.88    5.55    -24.67     
"Untitled-06"    68.04    -32.15    -6.00     
"Untitled-07"    66.70    34.88    63.83     
"Untitled-08"    38.48    -0.44    -45.06     
"Untitled-09"    56.15    47.12    25.25     
"Untitled-10"    31.91    17.66    -16.69     
"Untitled-11"    71.40    -16.98    50.80     
"Untitled-12"    74.84    21.00    71.57     
"Untitled-13"    27.04    0.66    -49.03     
"Untitled-14"    52.88    -32.25    23.97     
"Untitled-15"    47.07    55.90    37.55     
"Untitled-16"    83.99    9.76    78.29     
"Untitled-17"    55.75    47.38    -5.30     
"Untitled-18"    47.53    -31.32    -35.23     
"Untitled-19"    95.01    0.32    4.03     
"Untitled-20"    80.78    -0.72    0.38     
"Untitled-21"    66.36    -0.71    0.28     
"Untitled-22"    49.81    -1.43    -0.39     
"Untitled-23"    36.00    -0.85    -0.45     
"Untitled-24"    20.92    -0.34    -0.53     
END_DATA

Patch order

Charts with a regular m x n rectangular grid have patches numbered in a sequence shown in the example below for the 4 row X 6 column X-Rite Colorchecker. Use this order in acquiring patch data.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

Several grayscale charts (ISO-15739, etc.) that don’t have regular m x n grids have their patch order listed in Special and ISO Charts. These charts are supported by Multicharts.

Patch order for charts supported by Multicharts can be displayed by running Multicharts, selecting 3. Split Colors: Reference/Input (in Display), then checking the Numbers checkbox. Here are the patch numbers for the DSC Labs CDM-28R.

There are a few special cases, such as the Rezchecker (a tiny precision reflective chart for measuring color, tones, and MTF). The numbering follows the standard rectangular grid, but corner patches and patches used for slanted-edge MTF have L* = a* = b* = 0 in their reference file, and are omitted from color analysis. For the Rezchecker these include patches 1, 6, 8-11, 14-17, 37, and 42.

Rezchecker_imageRezchecker_patch_numbers

Some cases are not obvious, like the eSFR ISO color patches, which are supported by Multicharts, but usually run in eSFR ISO.

eSFR ISO color patches

eSFR_ISO_color_numbering

See Also