Relative Color Area Collection tool (ex-"Color Cast Correction tool") for ART with CTL

I made color cast correction tool for ART with CTL.
Download link is following.

Its purpose is especially for color cast correction of film (or color photo print) scanned images. Different in algorithm, function of my tool is basically similar to Equalizer by hue or Tetrahedral color warping (RGB). But it has one different feature. It is color threshold adjusting function and I think this is definitively important for color cast correction of film scanned images. Why this is important?
Please see following sample image. It has uneven yellow cast parts in image.

With other tools, you can correct yellow cast of sky, but you cannot correct yellowish parts of roof simultaneously. Because it is ‘perceptually’ yellow but it is not ‘objectively’. With my tool, moving ‘Pivot of color threshold’ slider to upper, you can correct yellowish cast in sky and roof simultaneously.

Human color perception is not based on ‘objective’ color value, so this feature may be useful for other image editing like color grading of digital camera images.

7 Likes

And I am very thankful to Alberto and his support.

That’s the great thing about the CTL filters, there are several suitable for color balance and colorcast correction. I will definitely try out the filter you made, thank you very much.

1 Like

@yasuo, If a second instance where possible, perhaps the blue cast could be neutralized as well?

You can have as many instances as you want…

2 Likes

Hi,
With 3 instances (Y, B, Mg + area and parametric masks) and WB adjustment, we can get following result.

3 Likes

Here is the sample file for your trial.
Sample.tif (13.2 MB)
Sample.tif.arp (15.5 KB)
This file is licensed under CC BY-NC-SA 4.0 Deed.

I have revised my ctl script and renamed it “Relative Color Area Correction”. This is because the threshold of the color to be corrected can be changed and is determined relatively.

image

In this revision, two parameters have been added: “Lightness” and “Skew of target color”. ”Lightness” is a function for adjusting the lightness of the target color area for correction. The “Skew of target color” is a function to shift the target color. For example, if green is selected as the target color, moving this slider to the right will shift the target color area to a bluish green area, and moving it to the left will shift the target color area to a yellowish green area.

1 Like

I have revised “Relative Color Area Correction” tool again. This time, I have added target area view function. You can download the program from above same link.

If you check “Show target area” on, correction target area will be shown in yellow, so you can easily confirm your editing area in anytime. It’s very convenient.

And if you move pivot, skew, strength sliders, target area view will be changed.

For example. This is “Show target area” check box off. Target color is Cyan.

The check box is on. The target color area will be shown in yellow.

Moving “Pivot” to narrower. You can confirm the target color area has become narrower.

Setting area mask. The check box is off.

The check box is on. The excluded area by local editing mask is displayed in color.

Moving rgb sliders for image editing.

Please keep in your mind that do not export the editing file keeping the check box on. You may get target area view image.

2 Likes

This is very, very useful. Thank you very much!

1 Like

Considering the large number of francophone ART users, I made French version of this tool. You can download it from following link.

https://drive.google.com/file/d/1bADH6jKGMt1o0uznICaXbQQI_nn8MuaY/view?usp=sharing

image

2 Likes

That’s very kind of you. I was already thinking how to translate these scripts in other languages. I suppose we have to translate the scripts per language, so we end up with a series of CTL scripts in Japanese, French, Dutch, etc. On the other hand, I saw that the script Equalizer by Saturation has the Target already translated (in Dutch), but not the sliders. Perhaps Alberto @agriggio has a solution for this.

Anyway, your tool is fascinating, as are some of the other CTL scripts. This afternoon I was playing with a photo of my daughter Julia. I used to use G’Mic to create these effects, but it can be done in ART as well now. Never mind the slight color cast on the background on a few images, that can be avoided using masks. Upper left is the original tif.

2 Likes

If you use labels starting with a $, they will be interpreted as keys in the language translation file of ART. So one way is to add translations there. I suppose I can make this a bit nicer by supporting both a system-wide language file and a user-specific one, so that you can add all the translations you want without the risk of being overwritten by new ART releases. I’ll see what I can do…

1 Like

For basic and general words, it is preferable using ‘global’ labels in ART. For complex text and proper words to the scripts, how about having the CTL script read the “local” labels from a “local” language file (a file with the same name as the CTL script in the same directory)?

I think this is too complicated for such a limited use case. Imho a user-specific language file that complements the global one should be enough, and it’s much easier to implement.

I have revised my Relative Color Correction CTL script. In this time, I have added Gamma adjustment for correction value and applying uniform strength option. And I have rearranged parameter control items in the UI.
Clipboard_01-21-2024_01

For Gamma adjustment, originally correction amount was based on perceptual (Gamma 2.2) data (Gamma value was fixed and not adjustable), however in this time, I have changed its Gamma value adjustable (0 to 2.2). You can confirm this adjustment effect with target area preview.


(original)


(preview Gamma 2.2)


(preview Gamma 1.0)


(edited result in Gamma 1.0)

You can download it from following (same) link.

1 Like

Editing examples with this tool.

My attempts to play just - GIMP

Did you desaturate it and re-color it?

Not

Today

Color => Auto => BB

Color => Auto => Equalize

A copy of the layer and its Mode (Color LCh), now I click on Change active color and with the tool-color-picker I take a sample of the color that matches the color cast in the area.

Example: work in progress, more carefully

and I used the new jpegli encoding, so the resolution is full and the file is small.