geetools icon indicating copy to clipboard operation
geetools copied to clipboard

create a HSLtoRGB function for images

Open 12rambau opened this issue 1 year ago • 3 comments

That's a request on Stack Exchange that was basically discarded by Noel. I don't expect the math behind to change so I propose to hard code it in geetools: https://gis.stackexchange.com/questions/464403/how-to-convert-hsl-to-rgb-in-earth-engine-python

/**
 * Converts an HSV color value to RGB. Conversion formula
 * adapted from http://en.wikipedia.org/wiki/HSV_color_space.
 * Assumes h, s, and v are contained in the set [0, 1] and
 * returns r, g, and b in the set [0, 255].
 *
 * @param   Number  h       The hue
 * @param   Number  s       The saturation
 * @param   Number  v       The value
 * @return  Array           The RGB representation
 */
function hsvToRgb(h, s, v){
    var r, g, b;

    var i = Math.floor(h * 6);
    var f = h * 6 - i;
    var p = v * (1 - s);
    var q = v * (1 - f * s);
    var t = v * (1 - (1 - f) * s);

    switch(i % 6){
        case 0: r = v, g = t, b = p; break;
        case 1: r = q, g = v, b = p; break;
        case 2: r = p, g = v, b = t; break;
        case 3: r = p, g = q, b = v; break;
        case 4: r = t, g = p, b = v; break;
        case 5: r = v, g = p, b = q; break;
    }

    return [r * 255, g * 255, b * 255];
}.

12rambau avatar Dec 11 '24 13:12 12rambau

But in this case, you want to have a function that, given an image in rgb, can be transformed in HSL (the requested one) and viceversa?

framunoz avatar Dec 17 '24 03:12 framunoz

I suppose he meant on the client-side, since ee.Image object has its own method already: ee.Image.rgbToHsv() and ee.Image.hsvToRgb()

fitoprincipe avatar Dec 17 '24 16:12 fitoprincipe

sorry I made a mistake in the title it's HSL

12rambau avatar Dec 18 '24 07:12 12rambau