ImmersiveMediaLaboratory / ColorTransferLib

A collection of color and style transfer algorithms and objective evaluation metrics.
MIT License
13 stars 0 forks source link

Some Implementation deficiencies #1

Open TJCoding opened 2 months ago

TJCoding commented 2 months ago

Hi, I am sorry to tell you that the coding for ‘GLO’ doesn’t seem to implement the algorithm in this paper.

https://ieeexplore.ieee.org/document/946629

The paper specifies processing in the Ruderman colour space but the implementation here seems to use the LAB colour space. This difference can be significant. See for example the discussion here and the accompanying diagram.

https://medium.com/@terence.johnson/a-free-touse-web-app-for-image-colour-transfer-processing-9f5b06c760f4

Some implementations on GitHub purport to implement the Reinhard method but use the CIELab colour space rather than the Ruderman colour space ….. etc, ..... etc

You can find a C++ implementation of the Ruderman forward and inverse transforms in the 'Main.cpp' code here. (‘IMPLEMENTATION OF L-ALPHA-BETA FORWARD AND INVERSE TRANSFORMS’)

https://github.com/TJCoding/Enhanced-Image-Colour-Transfer-2

As you can see from the referenced Github repository, I have a C++ implementation of an ‘Enhanced Reinhard method’. I hope one day to produce a Python version of this. If I do, can I assume that you will give serious consideration to including it in your library?

Please note too that the method cited as ‘Color transfer in correlated space’ (CCS) is not robust. You can find more details at the following links.

https://github.com/hangong/Xiao06_color_transfer https://github.com/TJCoding/Ruggedised-Image-Colour-Transfer

It should be a relatively simple matter to ruggedize your implementation although you would then need to cross reference myself as well as the original authors.

TJCoding commented 2 months ago

Further to my previous comment, I have coincidently been approached by someone who has produced a Python version of the ‘Enhanced Reinhard’ method. I need to check it out, but hopefully the verified code will soon be in the public domain.

This code seemingly includes functions to address the Ruderman colour space and should allow the suggested update of ‘GLO’.

Once the new code is released, will you please give serious consideration to including it in your library? I think you will find that the ‘Enhanced Reinhard’ method is by definition an improvement upon the basic method. You can verify this by exercising the Web App here, which allows a direct comparison. http://www.dustfreesolutions.com/CT/CT.html

In the meantime, I have previously suggested that you might wish to consider ruggedising ‘CCS’.

TJCoding commented 2 months ago

Python coding for the Ruderman colour space can be found within the program Enhance2.py here .....

https://github.com/minh-nguyenhoang/Enhanced-Image-Colour-Transfer-2

(Note the code is for RGB to L-alpha-beta and the inverse rather than BGR to L-alpha-beta)

It would be preferable for the GLO model to be updated by an experienced python programmer. Otherwise I am willing to do it, but only if I first get a response here that indicates a willingness to take on the corrected code.