File Exchange

image thumbnail

RGB to HSL

version 1.0 (1.58 KB) by

Convert from RGB to HSL and HSL to RGB.

3.33333
3 Ratings

12 Downloads

Updated

View License

Functions to convert RGB colorspace to HSL colorspace and vice-versa.

Comments and Ratings (4)

Baptiste

"RGB values have to be between 0 and 1"

This file look like a bit out of date now :s

Daniel

Daniel (view profile)

Remove the second last line in both functions to increase the precision (`rgb=round...`)

without the change it returns whenever you have a 1,1,1 vector. With the change suggested it works ok. I don't like the treatment of all the same colour (e.g. [a,a,a]) though, it should interpolate the change in other colours rather than just turning it to [0,0,0]. I added the following block
if(mx-mn)==0,%if all three colors have same value,
        if i==1
        hsl(i,2)=0;%then s=0 and
        hsl(i,1)=0;%h is undefined but for practical reasons 0
        elseif i==2
        hsl(i,2)=hsl(i-1,2);%take previous value
        hsl(i,1)=hsl(i-1,1);%take previous value
        else
        hsl(i,2)=2*hsl(i-1,2)-hsl(i-2,2);%interpolate
        if hsl(i,2) > 1
           hsl(i,2) =1;
        elseif hsl(i,2) < 0
            hsl(i,2) =0;
        end
        hsl(i,1)=2*hsl(i-1,1)-hsl(i-2,1);%interpolate
        if hsl(i,1) > 1
           hsl(i,1) =1;
        elseif hsl(i,1) < 0
            hsl(i,1) =0;
        end
        end
        continue;
    end;

daniel weiler

BUG-REPORT!

Please replace the last return statement with continue... or there will be bad surprises

Updates

1.0

License update

MATLAB Release
MATLAB 5.3.1 (R11.1)
Acknowledgements

Inspired: hsl2rgb and rgb2hsl conversion

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video