关于RGB与HSL空间之间转换的原理,在网上很多,也很详细,这里就不做介绍了。
直接给出MATLAB代码。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% RGB空间转换到HSL空间
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [H,S,L,hsl]=rgb2hsl(img)
rgb=im2double(img);
r=rgb(:,:,1);
g=rgb(:,:,2);
b=rgb(:,:,3);
[m,n]=size(r);
%% 求 L %%
maxcolor=max(max(r,g),b);
mincolor=min(min(r,g),b);
L=(maxcolor+mincolor)/2;
H=zeros(m,n);
S=zeros(m,n);
%% 求 S %%
for i=1:m
for j=1:n
if maxcolor(i,j)==mincolor(i,j)<