/** * @return a matcher with a homographic constraint */ private static LocalFeatureMatcher<Keypoint> createConsistentRANSACHomographyMatcher() { final ConsistentLocalFeatureMatcher2d<Keypoint> matcher = new ConsistentLocalFeatureMatcher2d<Keypoint>( createFastBasicMatcher()); matcher.setFittingModel(new RobustHomographyEstimator(10.0, 1000, new RANSAC.BestFitStoppingCondition(), HomographyRefinement.NONE)); return matcher; }
final RobustHomographyEstimator ransac = new RobustHomographyEstimator(0.5, 1500, new RANSAC.PercentageInliersStoppingCondition(0.6), HomographyRefinement.NONE, new TransformMatrixConditionCheck<HomographyModel>(10000));
final RobustHomographyEstimator ransac = new RobustHomographyEstimator(0.5, 1500, new RANSAC.PercentageInliersStoppingCondition(0.6), HomographyRefinement.NONE, new TransformMatrixConditionCheck<HomographyModel>(10000));
@Override public void keyPressed(KeyEvent key) { if (key.getKeyCode() == KeyEvent.VK_SPACE) { this.videoFrame.togglePause(); } else if (key.getKeyChar() == 'r') { vwv.display.seek(0); } else if (key.getKeyChar() == 'c' && this.polygonListener.getPolygon().getVertices().size() > 2) { try { ransacReader = false; final Polygon p = this.polygonListener.getPolygon().clone(); this.polygonListener.reset(); modelImage = this.vwv.capture.getCurrentFrame().process( new PolygonExtractionProcessor<Float[], MBFImage>(p, RGBColour.BLACK)); // configure the matcher matcher = new ConsistentLocalFeatureMatcher2d<Keypoint>(new FastBasicKeypointMatcher<Keypoint>(8)); matcher.setFittingModel(new RobustHomographyEstimator(3.0, 1500, new RANSAC.PercentageInliersStoppingCondition(0.01), HomographyRefinement.NONE)); final DoGSIFTEngine engine = new DoGSIFTEngine(); engine.getOptions().setDoubleInitialImage(false); final FImage modelF = Transforms.calculateIntensityNTSC(modelImage); matcher.setModelFeatures(engine.findFeatures(modelF)); vwv.display.seek(0); ransacReader = true; } catch (final Exception e) { e.printStackTrace(); } } }
@Override public void keyPressed(KeyEvent key) { if (key.getKeyCode() == KeyEvent.VK_SPACE) { this.videoFrame.togglePause(); } else if (key.getKeyChar() == 'r') { vwv.display.seek(0); } else if (key.getKeyChar() == 'c' && this.polygonListener.getPolygon().getVertices().size() > 2) { try { ransacReader = false; final Polygon p = this.polygonListener.getPolygon().clone(); this.polygonListener.reset(); modelImage = this.vwv.capture.getCurrentFrame().process( new PolygonExtractionProcessor<Float[], MBFImage>(p, RGBColour.BLACK)); // configure the matcher matcher = new ConsistentLocalFeatureMatcher2d<Keypoint>(new FastBasicKeypointMatcher<Keypoint>(8)); matcher.setFittingModel(new RobustHomographyEstimator(3.0, 1500, new RANSAC.PercentageInliersStoppingCondition(0.01), HomographyRefinement.NONE)); final DoGSIFTEngine engine = new DoGSIFTEngine(); engine.getOptions().setDoubleInitialImage(false); final FImage modelF = Transforms.calculateIntensityNTSC(modelImage); matcher.setModelFeatures(engine.findFeatures(modelF)); vwv.display.seek(0); ransacReader = true; } catch (final Exception e) { e.printStackTrace(); } } }
matcher.setFittingModel(new RobustHomographyEstimator(10.0, 1500, new RANSAC.PercentageInliersStoppingCondition(0.5), HomographyRefinement.NONE)); } else {
matcher.setFittingModel(new RobustHomographyEstimator(10.0, 1500, new RANSAC.PercentageInliersStoppingCondition(0.5), HomographyRefinement.NONE)); } else {
private void initObjectFinder(MBFImage frame, Polygon p) { modelImage = frame.process(new PolygonExtractionProcessor<Float[], MBFImage>(p, RGBColour.BLACK)); // configure the matcher siftMatcher = new ConsistentLocalFeatureMatcher2d<Keypoint>(new FastBasicKeypointMatcher<Keypoint>(8)); siftMatcher.setFittingModel(new RobustHomographyEstimator(10.0, 1500, new RANSAC.PercentageInliersStoppingCondition(0.5), HomographyRefinement.NONE)); engine = new DoGSIFTEngine(); engine.getOptions().setDoubleInitialImage(true); final FImage modelF = Transforms.calculateIntensityNTSC(modelImage); siftMatcher.setModelFeatures(engine.findFeatures(modelF)); }
private void initObjectFinder(MBFImage frame, Polygon p) { modelImage = frame.process(new PolygonExtractionProcessor<Float[], MBFImage>(p, RGBColour.BLACK)); // configure the matcher siftMatcher = new ConsistentLocalFeatureMatcher2d<Keypoint>(new FastBasicKeypointMatcher<Keypoint>(8)); siftMatcher.setFittingModel(new RobustHomographyEstimator(10.0, 1500, new RANSAC.PercentageInliersStoppingCondition(0.5), HomographyRefinement.NONE)); engine = new DoGSIFTEngine(); engine.getOptions().setDoubleInitialImage(true); final FImage modelF = Transforms.calculateIntensityNTSC(modelImage); siftMatcher.setModelFeatures(engine.findFeatures(modelF)); }