% 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

% Función auxiliar
% Eliminación parcial de la línea de cultivo, método E3
function [res,colD1,aux2] = fC2Izq(A,aux2,angulo,maximo,ptoIni,umb1,umb2,porc)
    [f,c] = size(A);
    res = A;
    mediaI=0;
    for i=1:f
        if(ptoIni-1>1)
            ptoI = ptoIni-1;
        else ptoI = 1;
        end;
        sigueIzq = true;
        while(sigueIzq)
           if(sigueIzq & ptoI>1)
               if(A(i,ptoI) == 1)%solo B 
                    if(ptoI-1>=1)
                        if(angulo(i,ptoI-1) == 1 | A(i,ptoI-1) == 1)
                            res(i,ptoI) = 0;
                            aux2(i,ptoI,1)=255;
                            aux2(i,ptoI,2)=255;
                            aux2(i,ptoI,3)=0;
                            ptoI = ptoI-1;
                        else ptoI = ptoI-1;
                        end;
                    else sigueIzq = false;
                    end; 
                elseif(angulo(i,ptoI) == 1)%R (miro distancia a siguiente R)
                    aux = ptoI-1;
                    enc = (angulo(i,aux)==1 | A(i,aux)==1);
                    while(~enc & aux>=1)
                        enc = (angulo(i,aux)==1 | A(i,aux)==1);
                        aux = aux-1;
                    end;
                    enc = (enc & aux>=1);
                    if(enc) 
                        if(ptoI-aux<=umb1)
                            res(i,aux:ptoI) = 0;
                            aux2(i,aux:ptoI,1)=255;
                            aux2(i,aux:ptoI,2)=255;
                            aux2(i,aux:ptoI,3)=0;
                            ptoI = aux;
                        elseif(ptoI-aux>umb1 & ptoI-aux<=umb2)
                            vfilas = sum(A(:,aux:ptoI));
                            if(max(vfilas)>=maximo*porc)
                                res(i,aux:ptoI) = 0;
                                aux2(i,aux:ptoI,1)=255;
                                aux2(i,aux:ptoI,2)=255;
                                aux2(i,aux:ptoI,3)=0;
                                ptoI = aux;
                            else sigueIzq = false;
                            end;
                        else sigueIzq = false;
                        end;    
                    else sigueIzq = false;
                    end;
               else
                    aux = ptoI-1;
                    enc = (angulo(i,aux)==1 | A(i,aux)==1);
                    while(~enc & aux>=1)
                           enc = (angulo(i,aux)==1 | A(i,aux)==1);
                           aux = aux-1;
                    end;
                    if(ptoI-aux>umb2) sigueIzq = false;
                    else ptoI = aux;
                    end;
                end;
           else sigueIzq = false;
           end;
        end;
        mediaI = mediaI+ptoI;
    end;
    colD1 = mediaI/f;
    res(:,ptoIni)=0;
    aux2(:,ptoIni,1)=255;
    aux2(:,ptoIni,2)=255;
    aux2(:,ptoIni,3)=0;