Say I have an image (this, specifically) which, for whatever reason, has poor color reproduction. (In this case, what should be a medium pure red is sort of rust, and what should be a medium pure green is a washed out teal... never mind the "black" and "white" that aren't.)

Is there any way to apply color transformation by selecting several colors in the original image and mapping those to intended colors?

For instance, in this example I want to transform the colors so that:

Original Intended
#8e3c2f #a00000
#5a8366 #007018
#6ea1c0 #1060b8
#dacab3 #dabd94
#dac379 #f8d800
#e0e0e0 #ffffff

Note: I am not looking for "Color Exchange". I want to recolor the entire image using (a) transformation(s) derived from a specific set of source-to-target color pairs. I want something that would work on an image that has a continuous spectrum of colors, not something that only works on an image consisting of a distinct set of colors and requires me to specify a mapping for every color in use.

(Also, while I do want to "fix" the specific example image, I am hoping to learn a process that would be generally usable on any image with color issues.)

While a semi-automated process would be best, I'll settle for tips on how to know what combination of levels, white balance, hue/tint, etc. to apply given a situation such as this.

1 Answer 1


Using the GMIC filter suite plugin, you can use a CLUT. A CLUT is a mapping of color triplets in the RGB space to other triplets. They don't map everything (this would need a 16Mpix image), but they interpolate the missing values.

  • You load a pair of before/after pictures ("After" on top, here created by rotating the Hue)

enter image description here

  • You use GMIC to create the CLUT (Color Lookup Table) from the two layers

enter image description here

  • This create a CLUT that looks like this:

enter image description here

  • You can then load any other image, and apply the saved CLUT to it:

enter image description here

enter image description here

Of course you can create the CLUT using a pair of completely arbitrary images:

enter image description here

Which, applied to your image, gives this:

enter image description here

  • Hehe... that's obviously missing a black mapping (which, to be fair, I omitted from the table I gave). Obviously more "translation points" improves the result, and I did fiddle around with this a bit. It's a massive improvement, but I think I'm going to hold out for obtaining a scanner (I need it for more than just the one CD). Still, the tool is exactly what I wanted; thank you for introducing me to it!
    – Matthew
    Dec 13, 2023 at 21:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.