My interest in scanners is quite recent. I anticipated metameric error knowing that current scanners use "white" LEDs that typically have extremely peeked spectra. So I fully expected that profiling the scanner with an IT8 card on Kodak Endura would not yield particularly good scans of a XRite Colorchecker, nor my Epson 9800 prints. I was not disappointed. After profiling to the IT8 card, scanning my XRite Colorchecker card and comparing the dE (All dEs in this post are 1976) values to those measured with an I1Pro2 yielded an average dE of 4.3 across the 24 patches with a max of 8.0 which was due to the last, "black", mostly fromo a negative a* over -7.
But then why should an IT8 Endura photo print be all that close to a Colorchecker? Besides, the reason I got the scanner was to critically search printer gamut smoothness to evaluate subtle differences between printers not easily measured. This requires searching a significant fraction, perhaps hundreds of thousands of near colors, and is not realistic to do with a spectrophotometer.
So rather than messing around with different IT8 or other photo based targets I made my own, a 1914 patch set printed on 2 pages in the standard used for making printer ICC targets. These were printed, dried, and scanned with the V850 (raw, "no color correction") and Lab values measured with an iSiS. The RGB values were extracted from the scanned patches and combined with the iSiS Lab values and run through Argyll's software, txt2ti3, and colprof, producing an ICC scanner profile.
The profile actually produced slightly (10%) better dEs measuring the XRite CC than the IT8 but still had average dEs in the high 3's. No biggie I thought. Since my hypothesis was that the profile should be well tuned for my 9800 printer that it should be quite good reading CC colors printed from that printer. It was better, with dEs dropping to mid 2's but that was disappointing. Since the scanner target was printed and profiled from 9800 prints, it should produce closer matches as metameric shifts should no longer be a factor. So what gives.
That's when I noticed that a white patch in the scanner profile print, as output by the custom scanner profile, was way off (L* diff of 6) compared to the larger white areas of the scan that were unprinted. Looked at scans using the IT8 profile as well as the V850 defaults. Same differences. It isn't something fixable by profiling because the raw RGB values from the scanner differs. And by a lot.
What could be causing this? So I looked at what the scanner was doing with the lid up and saw two frosted white led light sources on either side of a slot. Deep within the slot is a lens that focuses reflected light coming through the slot.
Examining this while scanning shows intense light surrounding lighter areas leading to the observation that light was being reflected off the paper's brighter areas, bouncing off the frosted white surfaces of the LED covers, and adding back into the light illuminating the area being scanned.
Next, I measured the effect by scanning increasing diameters of white circles embedded in black. A large, 50mm, white circle produced about 22% more light than small circles of 3mm and 18% more light than a 6mm square (which is the default iSis and IT8 patch size). Below 2mm, diffraction effects start to dominate while the light reflected from a 2mm circle and bouncing back drops below a 1% effect.
Next I measured horizontal and vertical reflected light with very large squares of white/black and measuring the reflected light increase as distance from the black squares increased. I also measured the change at a diagonal to get a feel for how reflected light from a vertical and horizontal offset combined. I also made a randomized matrix of small, 4mm, black and white patches and did a regression analysis to determine the reflected light at offsets from 4mm white patches as a cross check.
Then I used a curve fit to the horizontal and vertical offsets to create a function that estimated reflected light given an x,y position offset. This function was then applied to the scanner image, pixel by pixel, within about 25mm, to estimate the light, including color, that was reflected from other nearby areas.
This estimate of reflected light, in linear space, was then subtracted from the scanned RGB values, also in linear space and the result was written to a new tif file.
Now I created a page, in iSis scannable format, of 5 high tone neutrals from L*90 to L*98 in Rel. Col. These were embedded in a white surround and also a black surround. I did the same for the 24 CC patches as read from my "Classic" Colorchecker but using Abs. Col. Again, in a white surround and black surround. This was measured with an Isis and scanned with the V850. Here is what the scan looks like:
Looking at just the high tone patches in the white and black surround, we get these results:
First, shown with the L*a*b* values as measured by the iSiS:
Next, as scanned and profiled normally:
Finally, as scanned with the scan corrected for reflected light:
I haven't show the detail for the Colorchecker patches but the improvements are similarly dramatic.
L90 to L98: Ave. dE between white and black backgrounds
| ColorChecker: Ave. dE between white and black backgrounds
| |
6.30 4.67 Printer based Argyll profile
0.87 0.86 Printer based Argyll profile, Refl. removed