00001 #ifndef ossimOpenCVPyrSegmentation_HEADER
00002 #define ossimOpenCVPyrSegmentation_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 #include "highgui.h"
00010
00029 class ossimOpenCVPyrSegmentation : public ossimImageSourceFilter
00030 {
00031 public:
00032 ossimOpenCVPyrSegmentation(ossimObject* owner=NULL);
00033
00034 virtual ~ossimOpenCVPyrSegmentation();
00035
00036 ossimString getShortName()const
00037 {
00038 return ossimString("OpenCVPyrSegmentation");
00039 }
00040
00041 ossimString getLongName()const
00042 {
00043 return ossimString("OpenCV Pyramid Segmentation");
00044 }
00045
00046 virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect, ossim_uint32 resLevel=0);
00047
00048 virtual void initialize();
00049
00050 virtual ossimScalarType getOutputScalarType() const;
00051
00052 ossim_uint32 getNumberOfOutputBands() const;
00053
00054 virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0)const;
00055
00060 virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0);
00061
00062 protected:
00063 ossimRefPtr<ossimImageData> theTile;
00064 int theLevel;
00065 double theThreshold1;
00066 double theThreshold2;
00067 void runUcharTransformation(ossimImageData* tile);
00068
00069 TYPE_DATA
00070 };
00071
00072 #endif