@Override public AffineTransformModel getModel() { return robustFitter.getModel(); }
@Override public Model<Point2d, Point2d> getModel() { return modelfit.getModel(); }
@Override public HomographyModel getModel() { return robustFitter.getModel(); }
@Override public FundamentalModel getModel() { return robustFitter.getModel(); }
@Override public Model<Point2d, Point2d> getModel() { return modelfit.getModel(); }
@Override public boolean fitData(List<? extends IndependentPair<Point2d, Point2d>> data) { // Use a robust fitting technique to find the inliers and estimate a // model using DLT if (!robustFitter.fitData(data)) { // just go with full-on DLT estimate rather than a robust one robustFitter.getModel().estimate(data); return false; } return true; }
@Override public boolean fitData(List<? extends IndependentPair<Point2d, Point2d>> data) { final Pair<Matrix> norms = TransformUtilities.getNormalisations(data); final List<? extends IndependentPair<Point2d, Point2d>> normData = TransformUtilities.normalise(data, norms); // Use a robust fitting technique to find the inliers and estimate a // model using DLT if (!robustFitter.fitData(normData)) { // just go with full-on DLT estimate rather than a robust one robustFitter.getModel().estimate(normData); robustFitter.getModel().denormaliseFundamental(norms); return false; } // remap the inliers and outliers from the normalised ones to the // original space inliers.clear(); for (final IndependentPair<Point2d, Point2d> pair : robustFitter.getInliers()) { inliers.add(data.get(normData.indexOf(pair))); } outliers.clear(); for (final IndependentPair<Point2d, Point2d> pair : robustFitter.getOutliers()) { outliers.add(data.get(normData.indexOf(pair))); } // denormalise the estimated matrix before the non-linear step robustFitter.getModel().denormaliseFundamental(norms); // Now apply non-linear optimisation to get a better estimate final Matrix optimised = refinement.refine(robustFitter.getModel().getF(), inliers); robustFitter.getModel().setF(optimised); return true; }
@Override public boolean fitData(List<? extends IndependentPair<Point2d, Point2d>> data) { final Pair<Matrix> norms = TransformUtilities.getNormalisations(data); final List<? extends IndependentPair<Point2d, Point2d>> normData = TransformUtilities.normalise(data, norms); // Use a robust fitting technique to find the inliers and estimate a // model using DLT if (!robustFitter.fitData(normData)) { // just go with full-on DLT estimate rather than a robust one robustFitter.getModel().estimate(normData); robustFitter.getModel().denormaliseHomography(norms); return false; } // remap the inliers and outliers from the normalised ones to the // original space inliers.clear(); for (final IndependentPair<Point2d, Point2d> pair : robustFitter.getInliers()) { inliers.add(data.get(normData.indexOf(pair))); } outliers.clear(); for (final IndependentPair<Point2d, Point2d> pair : robustFitter.getOutliers()) { outliers.add(data.get(normData.indexOf(pair))); } // denormalise the estimated matrix before the non-linear step robustFitter.getModel().denormaliseHomography(norms); // Now apply non-linear optimisation to get a better estimate final Matrix optimised = refinement.refine(robustFitter.getModel().getTransform(), inliers); robustFitter.getModel().setTransform(optimised); return true; }
model = modelfit.getModel(); for (final IndependentPair<Point2d, Point2d> p : modelfit.getInliers()) { final Object op = p;
model = modelfit.getModel(); for (final IndependentPair<Point2d, Point2d> p : modelfit.getInliers()) { final Object op = p;