00001 #ifndef ossimOpenCVLogPolarFilter_HEADER
00002 #define ossimOpenCVLogPolarFilter_HEADER
00003 #include "ossim/plugin/ossimSharedObjectBridge.h"
00004 #include "ossim/base/ossimString.h"
00005
00006
00007 #include "ossim/imaging/ossimImageSourceFilter.h"
00008
00009 #include "cv.h"
00010
00011 class ossimOpenCVLogPolarFilter : public ossimImageSourceFilter
00012 {
00013 public:
00014 ossimOpenCVLogPolarFilter(ossimObject* owner=NULL);
00015 ossimOpenCVLogPolarFilter(ossimImageSource* inputSource);
00016 ossimOpenCVLogPolarFilter(ossimObject* owner,
00017 ossimImageSource* inputSource);
00018 virtual ~ossimOpenCVLogPolarFilter();
00019 ossimString getShortName()const
00020 {
00021 return ossimString("OpenCVLogPolar");
00022 }
00023
00024 ossimString getLongName()const
00025 {
00026 return ossimString("OpenCV LogPolar Filter");
00027 }
00028
00029 virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect, ossim_uint32 resLevel=0);
00030
00031 virtual void initialize();
00032
00033 virtual ossimScalarType getOutputScalarType() const;
00034
00035 ossim_uint32 getNumberOfOutputBands() const;
00036
00037 virtual bool saveState(ossimKeywordlist& kwl,
00038 const char* prefix=0)const;
00039
00044 virtual bool loadState(const ossimKeywordlist& kwl,
00045 const char* prefix=0);
00046
00047 protected:
00048 ossimRefPtr<ossimImageData> theBlankTile;
00049 ossimRefPtr<ossimImageData> theTile;
00050 void runUcharTransformation(ossimImageData* tile);
00051 double thecenter_x;
00052 double thecenter_y;
00053 double theM;
00054
00055 TYPE_DATA
00056 };
00057
00058 #endif