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, but slightly different) that I can assign to the images in order to obtain various color transformations.
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, if that's helpful.
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:
UnknownAbstract: Lab->Lab
Such that this equality holds:
ProPhotoRGBModified(input) == Lab2XYZ(UnknownAbstract(XYZ2Lab(ProPhotoRGB(input))))
A->B
andB->A
LUT tables because it is the only way of getting that effect with just converting to profile which you want to construct. \$\endgroup\$