00001 #ifndef ossimOpenCVGoodFeaturesToTrack_HEADER
00002 #define ossimOpenCVGoodFeaturesToTrack_HEADER
00003
00004 #include "ossim/plugin/ossimSharedObjectBridge.h"
00005 #include "ossim/base/ossimString.h"
00006 #include "ossim/imaging/ossimImageSourceFilter.h"
00007 #include <ossim/imaging/ossimAnnotationObject.h>
00008
00009 #include "cv.h"
00010
00034 class ossimOpenCVGoodFeaturesToTrack : public ossimImageSourceFilter
00035 {
00036 public:
00037 ossimOpenCVGoodFeaturesToTrack(ossimObject* owner=NULL);
00038
00039 virtual ~ossimOpenCVGoodFeaturesToTrack();
00040
00041 ossimString getShortName()const
00042 {
00043 return ossimString("OpenCV GoodFeaturesToTrack");
00044 }
00045 ossimString getLongName()const
00046 {
00047 return ossimString("OpenCV Good Features Identifier");
00048 }
00049
00050 virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect, ossim_uint32 resLevel=0);
00051
00052 virtual void initialize();
00053
00054 virtual ossimScalarType getOutputScalarType() const;
00055
00056 ossim_uint32 getNumberOfOutputBands() const;
00057
00058 virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0)const;
00059
00064 virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0);
00065
00066 std::vector<ossimDpt> theKeyPoints;
00067
00068 protected:
00069 ossimRefPtr<ossimImageData> theTile;
00070 double theQualityLevel;
00071 double theMinDistance;
00072 int theBlockSize;
00073 int theHarrisFlag;
00074 double theHarrisFreeParameter;
00075 void runUcharTransformation(ossimImageData* tile);
00076
00077 TYPE_DATA
00078 };
00079
00080 #endif