//============================================================================= #ifndef FEATURECORRELATOR_H #define FEATURECORRELATOR_H #include "percentBar.h" #include "correlator.h" #include "subWindow.h" class featureCorrelator : public correlator, public percentBar { public: featureCorrelator( const char *initProgressMsg, movieIO &src, bool visible ); vector buildTrackedFeatureList( const char *trackProgressMsg, int minNumFeaturesPerFrm, int minFeatureTrackLen, int maxX=-1, int maxY=-1 ); private: int findMidInterval( vector trackedList, int length, int startFrm ); int numFeatsAtFrame( int frm, const vector &featList ); bool findNearestCorrel( int srcFrame, int othFrame, int srcX, int srcY, int sizeX, int sizeY, int deltaX, int deltaY, int searchWinX, int searchWinY, float minAcceptCorrel, int &bestX, int &bestY ); subWindowListAnim trackFeatures( int srcFrame, const subWindow &src ); float estimatePercent( int minNumFeats, const vector &trackedList, int length ); private: sortedSubWindowList *corners_; int *numCorners_; movieIO *movie_; }; #endif // FEATURECORRELATOR_H