[argyllcms] Re: Poor Man's Colorimeter

  • From: Richard Kirk <richard@xxxxxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Fri, 12 Jun 2015 17:37:01 +0100

On 06/12/2015 05:19 PM, Zi Wang wrote:


First of all just to make sure I actually understand what you two are saying.
Let’s say if my samples are CMY and all of them are produced with exactly the
same batch of inks that I can get hold of. Then cooking up a good set of
patches from those inks will actually give good result. What I’m trying to
figure out is whether this works because CMY are direct complements to RGB or
because CMY are three primitives along with the additive nature of scanners and
cameras things will somehow survive the linear interpolation?
Yes. If you known that a specific set of scanner RGB values corresponds to a particular amount of (say) CMY dye in film, or printer ink, then this should work. The scanner will not match our eye's sensitivities, but it should not be seeing IR or UV either. However, if you print with the same ink but a finer halftone pattern, then the dyes will look a bit more saturated on the finer halftone pattern from dye additivity failure. So, you have to keep the variables RGB-like and three-dimensional.

You also specifically mentioned CMY instead of CMYK, so is black going to cause
problem? I don’t know much about inks but adding even a tiny bit of carbon
black to some bright organic pigments really distorts the spectral graph. Is
this the same kind of business?
You can use CMYK of the K is generated from the CMY values in a sensible and unique manner. For example, if you replace a fraction of the common CMY density with K (undercolour removal) then the RGB values should uniquely point you back at the original CMY values. However, it will not necessarily do something sensible if your K does not depend on the CMY (keylines, text, etc).

You can model black additivity. The transform from CMYK to CMY requres solving a cubic and finding the odd root for each pixel, so it is not likely to work well with experimental values. Bit I have done it (sort of).

I get the impression that you are saying because a scanner never actually
measure the spectral reflectance curve therefore there’s not much we can do.
I’m wondering whether it’s too difficult or theoretically impossible to guess
the reflectance curve from sRGB data?
You can try. I used to work for Canon, and even then I could not get this data. I tried reconstructing the spectral sensitivity of the scanner RGB from a scan of a Macbeth chart. The result was pretty rough, but you can get something usable if you assume each primary is a single Gaussian-like peak.

I didn't trust it, but it sort-of worked.

1000 or even more sample points is not a problem for me as long as it’s worth
the effort. In fact it’s much better to know that I need a huge number of
sample points so I don’t spend time fiddling with an IT8 target that’s never
going to work. Does it make sense to create lots of patches with say 10 or 20
different pigments or something like that?

Lots of patches with 3 pigments would work as discussed earlier. I have calibrated systems to work with up to about 40 pigments to scan watercolours and oil paintings. That sort-of works too if you assume you are only going to mix the minimum number of pigments in a sensible way (i.e. you are going to make grey by mixing white and black, and not blue and yellow).

I have done a of of weird colour stuff in my time. I don't really know enough about what you are doing to speak with confidence, but my best guess is it will not work unsupervised, but you may be able to tweak it to get what you want.

Good luck.
Richard Kirk


Other related posts: