00001 #ifndef ossimOpenCVErodeFilter_HEADER
00002 #define ossimOpenCVErodeFilter_HEADER
00003
00004 #include "ossim/plugin/ossimSharedObjectBridge.h"
00005 #include "ossim/base/ossimString.h"
00006 #include "ossim/imaging/ossimImageSourceFilter.h"
00007
00008 #include "cv.h"
00009
00023 class ossimOpenCVErodeFilter : public ossimImageSourceFilter
00024 {
00025 public:
00026 ossimOpenCVErodeFilter(ossimObject* owner=NULL);
00027 ossimOpenCVErodeFilter(ossimImageSource* inputSource);
00028 ossimOpenCVErodeFilter(ossimObject* owner, ossimImageSource* inputSource);
00029 virtual ~ossimOpenCVErodeFilter();
00030 ossimString getShortName()const
00031 {
00032 return ossimString("OpenCVErode");
00033 }
00034
00035 ossimString getLongName()const
00036 {
00037 return ossimString("OpenCV Erosion Filter");
00038 }
00039
00040 virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect, ossim_uint32 resLevel=0);
00041
00042 virtual void initialize();
00043
00044 virtual ossimScalarType getOutputScalarType() const;
00045
00046 ossim_uint32 getNumberOfOutputBands() const;
00047
00048 virtual bool saveState(ossimKeywordlist& kwl,
00049 const char* prefix=0)const;
00050
00055 virtual bool loadState(const ossimKeywordlist& kwl,
00056 const char* prefix=0);
00057
00058
00059 protected:
00060
00061 ossimRefPtr<ossimImageData> theTile;
00062
00063 int theIterations;
00064 void runUcharTransformation(ossimImageData* tile);
00065
00066 TYPE_DATA
00067 };
00068
00069 #endif