[argyllcms] Scanner utility that significantly improves colorimetric accuracy

  • From: Martin Gray <mdgray@xxxxxxx>
  • To: "argyllcms@xxxxxxxxxxxxx" <argyllcms@xxxxxxxxxxxxx>
  • Date: Fri, 24 Jul 2020 05:06:24 +0000

Notice for those using desktop reflection scanners that want more accuracy and 
consistency.

Announcing a utility program that:

  1.  Corrects for errors due to internal scanner reflections that distort read 
colors
  2.  When used with an i1iSis or i1Pro 2 spectro, and Argyll s/w creates 
precision  scanner input ICC profiles.

The problem with desktop scanners is that they illuminant a slice of the 
scanner paper and, when the image region around the spot is being scanned is 
very bright or colorful, reflected light from bounces off the frosted strips 
that go across the top and bottom scanning slot.

Color shifts due to internal light reflection from the paper being scanned can 
be surprisingly large. Here's an example with my Epson V850. Two 6mm on a side 
squares where one is surrounded on all sides by 20mm of yellow and the other by 
cyan shifts the unprinted white scanned Lab values such that there is 15 delta 
E 1976 between the two. Each white patch is shifted in the direction of its 
surrounding color.

I have designed a program that models this reflection spatially using a 
calibration scan. It reduces the dE from 15 to 1 in the above example. The 
model is a matrix that is used to estimate the cumulative colors reflected 
nearby and is saved as a text file. This only needs to be done once for a 
scanner and works well with all paper types such as matte, luster, and glossy.

I posted a Github public repo with C++ code that significantly improves the 
ability of scanners to create high accuracy reproductions be removing 
re-reflection errors. Additionally, it has the ability to read tiff patch 
charts and create a CGATs file that is easily processed by Graeme Gill's 
excellent profiling software to create an input scanner profile. The utility

When using this with my Epson V850 I consistently get scanned average delta E 
values that are under .5 scanning prints I have made.

https://github.com/doug3236/scanner_refl_fix

doug

Other related posts: