public final ArrayList<TransformationHypothesis> getTrHypothesis(
      LocalFeaturesMatches matches, int qN) {

    Hashtable<Long, LocalFeaturesMatches> ht = this.getLoweHoughTransforms_HT(matches);

    if (ht == null || ht.size() == 0) return null;
    LocalFeaturesMatches[] ordered = LoweHoughTransform.orderHT(ht);

    if (ordered[0].size() < minHoughMatches || ordered[0].size() / (double) qN < minPercMatches)
      return null;

    totNRANSAC++;

    return matches.getRANSAC(
        ht, cycles, nHoughMaxForRANSAC, errorPerc, tr, minXYDist, true, rejectUnConsistent);
  }