/// <summary>
/// Checks if the selected points will result in a degenerate homography.
/// </summary>
///
private bool degenerate(int[] points)
{
PointF[] x1 = this.pointSet1.Submatrix(points);
PointF[] x2 = this.pointSet2.Submatrix(points);
// If any three of the four points in each set is collinear,
// the resulting homography matrix will be degenerate.
return(Tools.Collinear(x1[0], x1[1], x1[2]) ||
Tools.Collinear(x1[0], x1[1], x1[3]) ||
Tools.Collinear(x1[0], x1[2], x1[3]) ||
Tools.Collinear(x1[1], x1[2], x1[3]) ||
Tools.Collinear(x2[0], x2[1], x2[2]) ||
Tools.Collinear(x2[0], x2[1], x2[3]) ||
Tools.Collinear(x2[0], x2[2], x2[3]) ||
Tools.Collinear(x2[1], x2[2], x2[3]));
}