File Exchange

image thumbnail

RGB to HSL

version 1.0 (1.58 KB) by

Convert from RGB to HSL and HSL to RGB.

13 Downloads

Updated

View License

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

Comments and Ratings (5)

yun l

yun l (view profile)

不能用于三维数组的图片,还要把图片转成二维,37行的return要改成continue,不然结果差值;最好对hsl提前分配空间

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...`)

David Holdaway

David Holdaway (view profile)

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

Win prizes and improve your MATLAB skills

Play today