It might be worth adding a caution to the User Guide not to use the nominal 8-bit colorimetric values of the ColorChecker chart published by X-Rite to calculate the percent reflectance values of the tiles used for calibration, because they aren’t on a linear scale. They must be converted to a linear percent reflectance scale for calibration. The guide currently recommends measuring the user’s calibration targets against a known reference (ideally), but many users might not have access to the reference standard and tools for measurement, and instead rely on published ColorChecker colorimetric values for calibration. Another possible option is to refer to the spectral measurements of the ColorChecker chart found in the ImageJ/plugins/Cone Mapping/Charts folder, but this would require calculating a weighted average of the reflectance measurements over the range of wavelengths for each channel, which in any case represent a unique ColorChecker target.
I calibrated a raw ColorChecker image using three of the neutral gray tiles (black, neutral 5, and neutral 8), and measured the percent reflectance of the ColorChecker chart using the function micaToolbox>Camera calibration>Measure chart. As a check, I plotted the measurements of all 6 black, neutral gray, and white tiles against the nominal 8-bit sRGB colorimetric values published by X-Rite here: https://xritephoto.com/ph_product_overview.aspx?ID=820&Action=support&SupportID=5159
I found that the initially calibrated raw ColorChecker image did not produce a linear response when I used the published colorimetric 8-bit sRGB values. Instead, it was curving upward, with significant errors in the interpolated percent reflectance values of the black, neutral gray, and white tiles. The source of the problem is that the nominal 8-bit sRGB colorimetric values published by X-Rite aren’t linear, and need to be converted to a linear percent scale to calibrate the image. Once the nominal sRGB values for the neutral gray tiles used for calibration are converted to a linear scale, the calibrated image will also be linear.
For example, the nominal X-Rite sRGB colorimetric values for the neutral 8 gray tile are 200/200/200, which convert to 78.4 percent reflectance on a non-linear 8-bit scale (0-255). Converted to a linear scale, the reflectance values for the neutral 8 tile are 0.5776 or 57.76 percent for all three channels (within the range of most of the spectral measurements in column 2 of the .csv file in the ImageJ/plugins/Cone Mapping/Charts folder). I used an online color-space calculator (example) to convert the nominal non-linear sRGB values of the ColorChecker tiles to linear percent reflectance. After I recalibrated the image using the linear percent reflectance values for the black (3.43 percent) and neutral 8 (57.76 percent) tiles, I got linear correlations >0.99 for the three sRGB channels.
You’re absolutely right that the published values given by X-Rite are not useful at all because they are non-linear. That’s why I measured them myself quite carefully (though I only have two charts), and included those measurements in the toolbox’s linearisation feature. I should also provide those values elsewhere for when the chart grey values are used for normalisation.
Thanks for sharing your double-checking of everything though, looks good. What were all the other values you calculated for the six greys? It would be interesting to compare them to the ones I measured.
Average reflectance from 420-680nm, measured against a 99% spectralon white standard illuminated by direct sunlight using a Jeti Specbos spectroradiometer.
Thanks, Jolyon. We have measurements of a ColorChecker Mini chart using an i1 Pro spectrophotometer and obtained the following reflectance factors for the same chart on two occasions:
92.42, 60.42, 37.21, 19.24, 9.36, 3.18
91.35, 60.23, 37.21, 19.19, 9.34, 3.14