[argyllcms] How can I generate an abstract profile from the delta of two input profiles

  • From: Aram Hăvărneanu <aram.h@xxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Sun, 12 Nov 2017 18:24:11 +0100

Good day,

I have a set of images (48-bit TIFF) that are encoded in ProPhoto
RGB.

I have a set of alternative *input* color profiles (related to
ProPhoto RGB) that I can *assign* to the images in order to obtain
various color transformations (saturation change).

This is not the correct way of using color profiles though. If you
need a color transformation you either want a 3DLUT (working
color-space dependent, more like a device-link profile), or an
*abstract* profile (Lab->Lab mapping, color-space independent).

Photoshop supports both 3DLUTs and abstract profiles.

I want to create either a 3DLUT, or an abstract profile that encodes
the same transformation as the one achieved by changing the input
profile. I don't know how to proceed further. I am a programmer and
can write code, but I don't really understand CMSes very well.

In more math notation, we have these functions:

    ProPhotoRGB: RGB->XYZ
    ProPhotoRGBModified: RGB->XYZ
    XYZ2Lab: XYZ->Lab
    Lab2XYZ: Lab->XYZ

And we want to find this function:

    UnknownFunction: Lab->Lab

Such that this equality holds:

    ProPhotoRGBModified(input) ==
Lab2XYZ(UnknownFunction(XYZ2Lab(ProPhotoRGB(input))))

Can this be done? I suppose one way to do it would be to generate
test images, sample them and feed them to Argyll's refine tool, but
there has to be a better way.

Many thanks!

-- 
Aram Hăvărneanu

Other related posts: