function [xInliers,yInliers] = InliersRecta( x,y,A,B,C,tolerancia)
%Calcula inliers de la recta Ax + By + C = 0
% Devuelve [A,B,C]. 
% Hasta 10.000 inliers por preasignacion de memoria
%Ejemplo:
% C=edge(I);
% [X,Y] = coordPixelsCont(C); 
% [xInliers,yInliers] = InliersRecta( x,y,A,B,C,tolerancia)



%  n(A,B) unitario para calculo dist(P,r)
normAB=sqrt(A^2 + B^2);
A = A / normAB;
B = B / normAB;
C = C / normAB;

%preasignacion para mayor rapidez
xInliers=zeros(1,10000);  %hasta 10.000 inliers
yInliers=zeros(1,10000);
numInliers=0;
for k=1:length(x)
    distPuntoRecta = abs(A*x(k) + B*y(k) + C);  
    if ( distPuntoRecta < tolerancia ) % Si el pixel se ajusta a la recta
        numInliers = numInliers + 1;
        xInliers(numInliers) = x(k);
        yInliers(numInliers) = y(k);
    end
end
xInliers = xInliers(1:numInliers);
yInliers = yInliers(1:numInliers);

if ( numInliers==0 ) % Si no encuentra inliers devuelve [-1,-1]
    xInliers(1)=-1;    yInliers(1)=-1;
end
end

