% fit2jpg

% fichero y rango de cuentas (introducir estos datos)
base= input('Introduce un nombre para la Imagen JPG resultante (sin extension): ', 's');
fichero_out_color=sprintf('%s_color.jpg',base);
fichero_out=sprintf('%s.jpg',base);

mediana_on=0;

% preparando los datos
figure(1);
B=(reshape(R,sizex,sizey)');
clear A;
B=B-correccion; 

lim_inf=min(min(B));
lim_sup=max(max(B));
if mediana_on==1
   A=medfilt2(B,[3 3]); B=A;
end

C=double(B/max(max(B)));
imshow(C);
axis equal;
colormap(gray);
colorbar;

fin=0;
while fin~=1
   mensaje=sprintf('limite inferior (%f)  :     ',lim_inf);
   cuentas_0=input(mensaje);
   mensaje=sprintf('limite superior (%f)  :     ',lim_sup);
   cuentas_1=input(mensaje);
   compresion=input('factor de compresion :     ');
   if compresion<0.001&&compresion>-0.001
      compresion=0.001;
   end   
   
   i=floor(lim_inf):ceil(lim_sup);
   A=(B<cuentas_1).*B+(B>=cuentas_1)*cuentas_1;
   A=(A>=cuentas_0).*A+(A<cuentas_0)*cuentas_0;
   i=min(min(A)):max(max(A));
   C=(A-cuentas_0)/(cuentas_1-cuentas_0);  
   j=(i-cuentas_0)/(cuentas_1-cuentas_0);
   if compresion>0
       A=log(1+compresion*C)/log(1+compresion);
       j=log(1+compresion*j)/log(1+compresion);
   else
       A=(exp(C*log(1-compresion))-1)/(-compresion);
       j=(exp(j*log(1-compresion))-1)/(-compresion);
   end    
   figure(4); plot(i,j); grid on;
   
   figure(2);
   imshow(A);
   colormap gray;
   colorbar;
   
   figure(3)
   imshow(A);
   colormap jet;
   colorbar

   fin=input('¿Fin (1|0) ?     ');
end

% escribiendo imagen en B-W
imwrite(A,fichero_out,'jpg');
%% tenemos otra opcion para escribirla, esta con mapa de color...
%figure(2); print orion.jpg -djpeg;

% escribiendo imagen en color:
colores=jet;
X=(floor(A*255));
Z=[colores(X+1,1) colores(X+1,2) colores(X+1,3)];
Y=reshape(Z,sizey,sizex,3);
imwrite(Y,fichero_out_color,'jpg');
%% tenemos otra opcion para escribirla, esta con mapa de color...
%figure(3); print orion_color.jpg -djpeg;
