% APRENDIZAJE AUTOMÁTICO (G. Pajares y J. M. de la Cruz, Eds.)
% Editorial: RA-MA
% Capítulo 11: Razonamiento Basado en Casos
% Autores: Ángela Ribeiro, Xavier P. Burgos Artizzu y Jesús M. Conesa Muñoz

% Calculo automático para averiguar si la imagen fue tomada en un día soleado o nublado
function soleado = fsoleado(im)

% Se calcula el numero de filas y columnas de la imagen
[f,c,x] = size(im);

% Se pasa la imagen original RGB a una imagen HSI
HSI = rgb2hsv(im);

% Se utiliza el plano I (Iluminación)
I = HSI(:,:,3);

% Se calcula el histograma del plano I 
h = hist(I(:),255);

% Si la imagen pertenece a un día soleado, debido a la intensidad
%de la luz se habrá producido una saturación sobre el sensor y el 
%número de píxeles con valor de intensidad máximo (255) será alto.
% En concreto se usa la proporción, para ser robustos ante distintos
% tamaños de imagen.

proporcion_pixeles_255 = h(255)/(f*c);

%En este caso el umbral usado es de 1.5% 

if(proporcion_pixeles_255 > 0.006) soleado = true;
else soleado = false;
end;