function valor_area = areaEtiq(E,etiq) 
%AREA Calcula el área en píxeles de la región con etiqueta etiq. 
%   Recibe la imagen de etiquetas E.
%   valor_area = area(E, etiq) 

%______________________________________________________________________%
%                                                                      %
% NOMBRE DEL FICHERO:      areaEtiq.m                                  %
%                                                                      %
% RECIBE: Imagen etiquetas con uno o varios objetos                    %
% DEVUELVE: El valor del area del objeto con esa etiqueta              %
% ALGORITMO EMPLEADO: recorre la imagen sumando el valor del n.de g.   %
% VARIABLES:   E = imagen de etiquetas. Puede obtenerse a partir de la %
%                  imagen binaria con E= bwlabel(B);                   %
%              valor_area = area del objeto con esa etiq en imagen     %
%              filas = variable entera (filas de E)                    %
%              columnas = variable entera (columnas de E)              %
%              i = variable entera,se encarga de recorrer las filas de % 
%                  la matriz                                           %
%              j = variable entera,se encarga de recorrer las columnas %
%                  de la matriz                                        %
% BUGS:                                                                %
% SUPOSICIONES : La imagen E contiene la etiqueta que se busca         %
% LIBRO: VISION ARTIFICIAL INDUSTRIAL. UNIVERSIDAD DE VALLADOLID 2012  %   
% TEMA 4 IMAGENES BINARIAS                                             %
% AUTORES: Eusebio de la Fuente y Félix Miguel Trespaderne             %
%______________________________________________________________________%
%  Ejemplo de ejecucion:                                               %
%----------------------------------------------------------------------%
% >> I = imread('tuercas_tornillo2.bmp');                              %
% >> B = binauto(I);                                                   % 
% >> B = ~B;       % negamos para que los objetos estén en blanco!!    %
% >> [E, nEtiq] = bwlabel(B);                              %etiquetado %                       
% >> areas=zeros(1,nEtiq);  %vector para guardar area de todos los obj %
% >> for i=1:nEtiq %calcularemos el area de todos los objetos en la img
% >>     areas(i)=areaEtiq(E, i);
% >> end
% >> areas                              %visualizamos vector con areas %
%______________________________________________________________________%
% Con funciones de matlab image processing toolbox   
% Ojo si hay más de un objeto en la imagen binaria falla!!
% >> Ient = imread('tuercas_tornillo2.bmp');                                            
% >> umbralOpt=graythresh(Ient);  %busca umbral optimo
% >> BW = im2bw(Ient,umbralOpt);  %binariza
% >> BW = ~BW;                    %pone objetos en blanco  
% >> [E, nEtiq] = bwlabel(BW);     %etiquetado 
% >> s  = regionprops(E, 'area');       
% >> areas = cat(1,s.Area);
%______________________________________________________________________%

% Devuelve el nº de filas y columnas en variables de salida separadas  %
[filas,columnas]=size(E);

valor_area=0;

for i=1:filas
   for j=1:columnas
         if (E(i,j)==etiq) 
             valor_area=valor_area + 1;
         end
   end
end



