All Downloads are FREE. Search and download functionalities are using the official Maven repository.

boofcv.abst.feature.tracker.PointTrackerTwoPass Maven / Gradle / Ivy

Go to download

BoofCV is an open source Java library for real-time computer vision and robotics applications.

There is a newer version: 0.26
Show newest version
/*
 * Copyright (c) 2011-2013, Peter Abeles. All Rights Reserved.
 *
 * This file is part of BoofCV (http://boofcv.org).
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package boofcv.abst.feature.tracker;

import boofcv.struct.image.ImageBase;

/**
 * 

* Extension of {@link PointTracker} allows for predictions of a feature's location to be incorporated into the tracker. * A typical usage would be to first run the tracker, estimate a motion model, then use the said motion model to * predict each feature's location. *

* *

* The behavior of {@link #process(boofcv.struct.image.ImageBase)}} has been changed. It will only update each track's * location and the active list. {@link #performSecondPass()} will also only update the track's location and * active list. {@link #finishTracking()} will update the dropped list and change the track's description. *

* *

* Dropping tracks: Tracks should not be dropped until after finishTracking() has been called. If a track is * dropped between process() and finishTracking() are called, then the behavior is not defined. *

* *

* NOTES: *

    *
  1. A track hint can be set before {@link #process(boofcv.struct.image.ImageBase)} is called.
  2. *
  3. Calling {@link #process(boofcv.struct.image.ImageBase)} and {@link #finishTracking()} is equivalent * to just calling process() in the standard {@link PointTracker} interface.
  4. *
      *

      * * @author Peter Abeles */ public interface PointTrackerTwoPass extends PointTracker { /** * Changes behavior of {@link PointTracker#process(boofcv.struct.image.ImageBase)} in that it will only * update each track's location, but not its description, and the active list. Call {@link #finishTracking()} * to update the track's description, the inactive list, and the dropped list. An exception is thrown if * multiple calls to this function are made without calling {@link #finishTracking()}. * * @param image Next image in the sequence */ public void process(T image); /** * Updates spacial information for each track and active list. Does not change the track description or any other * lists. Can be called multiple times. */ public void performSecondPass(); /** * Finishes tracking and updates the track's description, updates inactive and drop track lists. */ public void finishTracking(); /** * Provides a hint for where the * @param pixelX x-coordinate hint for where the track is in the image * @param pixelY y-coordinate hint for where the track is in the image * @param track The track for which the hint is being provided for */ public void setHint( double pixelX , double pixelY , PointTrack track ); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy