% By Philip Torr 2002
% copyright Microsoft Corp.
%this is code to remove outliers via chieral constraint
function inlier_index = torr_robust_chieral(X,P1,P2)
%next reproject and compare with the images
%the chieral constraint is sign(det M) * sign (third homog coord of reprojected image) * sign (fourth homog coord X)
% to make sure we dont get any outliers we average the inequalities over all the points, ones with a bad sign
% can later be removed as outleirs.
%we want chieral for both cameras to be positive
ax1 = P1 * X;
bx1 = P2 * X;
chieral = (sign(ax1(3,:) ) .* sign (X(4,:))) + (sign(bx1(3,:) ) .* sign (X(4,:)));
inlier_index = find(chieral == 2);