00001 #ifndef ossimOpenCVSmoothFilter_HEADER
00002 #define ossimOpenCVSmoothFilter_HEADER
00003
00004 #include "ossim/plugin/ossimSharedObjectBridge.h"
00005 #include "ossim/base/ossimString.h"
00006 #include "ossim/imaging/ossimImageSourceFilter.h"
00007 #include <ossim/imaging/ossimImageDataFactory.h>
00008
00009 #include <stdlib.h>
00010
00011 #include <cv.h>
00012 #include <highgui.h>
00013
00037 class ossimOpenCVSmoothFilter : public ossimImageSourceFilter
00038 {
00039 public:
00040 ossimOpenCVSmoothFilter(ossimObject* owner=NULL);
00041 ossimOpenCVSmoothFilter(ossimImageSource* inputSource);
00042 ossimOpenCVSmoothFilter(ossimObject* owner, ossimImageSource* inputSource);
00043 virtual ~ossimOpenCVSmoothFilter();
00044 virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect, ossim_uint32 resLevel=0);
00045 virtual void initialize();
00046 virtual ossimScalarType getOutputScalarType() const;
00047 ossim_uint32 getNumberOfOutputBands() const;
00048 virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0)const;
00049 virtual bool loadState(const ossimKeywordlist& kwl,const char* prefix=0);
00050 ossimString getShortName()const
00051 {
00052 return ossimString("OpenCVSmooth");
00053 }
00054
00055 ossimString getLongName()const
00056 {
00057 return ossimString("OpenCV Smooth Filter");
00058 }
00059
00060 protected:
00061 ossimRefPtr<ossimImageData> theTile;
00062 void runUcharTransformation(ossimImageData* tile);
00063 int theSmoothType;
00064 int theParam1;
00065 int theParam2;
00066 double theParam3;
00067 double theParam4;
00068
00069 TYPE_DATA
00070 };
00071
00072 #endif
00073
00074
00075
00076
00077
00078