Colorimetric Nightmare: PNG => CIELAB; with ICC Profile



I am new to color space theory and I just about tripped into its complexities in a rush to finish an ongoing project, I really could use some help right now! Any insights will be highly appreciated.
I have scanned many pictures in an uncalibrated scanner and have now realized I REALLY need to somehow calibrate the scanner in order to obtain sound transformations of my image into CIELAB. All I currently have is R,G,B values from PNG images. I would like to translate these values to CIELAB. I have IT8 targets available and the images were scanned not so long ago so a current ICC profile of the scanner should be representative of the scanner’s operation during the aquisition of my images.

The problem is I absolutely don’t know how to convert available PNG RGB values to CIELAB (or XYZ) values, based on an ICC profile. Any ideas on how to do this?


I know of no plugins for ImageJ that do what you want. This is an area where contributions could potentially have a substantial positive impact for the community. This StackOverflow post might be helpful as a starting point, assuming you want to write code in Java. This 2014 thread from the ImageJ mailing list might also be informative, albeit intimidating.