function []=inversorlabrgbO(L,a,b)
% D65, CIE 1931, 2º
%              x       y     Y
REFERENCIA=[0.31272 0.32903 100];
xref=REFERENCIA(1);
yref=REFERENCIA(2);
zref=1-(xref+yref);
YW=REFERENCIA(3);
XW=xref*YW/yref;
ZW=zref*YW/yref;


% Inversión del modelo teórico directo

corte=6/29;
coefi=1/3*(29/6)^2;

arg=(L+16)/116;
q=(arg.^3).*(arg>corte)+...
((arg-4/29)/coefi).*(arg<=corte);
Y=YW*q;

arg=a/500+(L+16)/116;
q=(arg.^3).*(arg>corte)+...
((arg-4/29)/coefi).*(arg<=corte);
X=XW*q;

arg=(L+16)/116-b/200;
q=(arg.^3).*(arg>corte)+...
((arg-4/29)/coefi).*(arg<=corte);
Z=ZW*q;

invA=[ 3.2406   -1.5372   -0.4986
-0.9689    1.8758    0.0415
0.0557   -0.2040    1.0570];

RGB=zeros(200,300,3);
for i=1:3
  gf=invA(i,1)*X+invA(i,2)*Y+invA(i,3)*Z;
  q=(((gf/100).^(1/2.4))*1.055-0.055).*(gf>0.31308)+...
  (gf*12.92/100).*(gf<=0.31308);
  RGB(:,:,i)=q*255;
end
RGB=uint8(RGB);
figpar=figure('Position',[300 300 400 200],'menubar','none');

posg=[0.1 0.1 0.6 0.8];
axes('Position',posg,'box','on','color',[.8 .9 .8]);
imshow(RGB)
tex=['R: ',num2str(RGB(1,1,1)),'. G: ',num2str(RGB(1,1,2)),'. B: ',num2str(RGB(1,1,3))];
disp(tex)
title(tex,'fontsize',14)

uicontrol(gcf,'Style','pushbutton','String','Cerrar',...
    'BackgroundColor',[.8 .5 .3],'Position',[290 80 80 50],'FontSize',12,...
    'Callback','close');

