00001 #ifndef ossimOpenCVSobelFilter_HEADER
00002 #define ossimOpenCVSobelFilter_HEADER
00003
00004 #include "ossim/plugin/ossimSharedObjectBridge.h"
00005 #include "ossim/base/ossimString.h"
00006 #include "ossim/imaging/ossimImageSourceFilter.h"
00007
00008 #include <stdlib.h>
00009
00010 #include "cv.h"
00011
00060 class ossimOpenCVSobelFilter : public ossimImageSourceFilter
00061 {
00062 public:
00063 ossimOpenCVSobelFilter(ossimObject* owner=NULL);
00064 ossimOpenCVSobelFilter(ossimImageSource* inputSource,
00065 int xorder = 1 ,
00066 int yorder = 1,
00067 int aperture_size = 3);
00068 ossimOpenCVSobelFilter(ossimObject* owner,
00069 ossimImageSource* inputSource,
00070 int xorder = 1 ,
00071 int yorder = 1,
00072 int aperture_size = 3);
00073 virtual ~ossimOpenCVSobelFilter();
00074 ossimString getShortName()const
00075 {
00076 return ossimString("OpenCVSobel");
00077 }
00078
00079 ossimString getLongName()const
00080 {
00081 return ossimString("OpenCV Sobel Filter");
00082 }
00083
00084 virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect, ossim_uint32 resLevel=0);
00085
00086 virtual void initialize();
00087
00088 virtual ossimScalarType getOutputScalarType() const;
00089
00090 ossim_uint32 getNumberOfOutputBands() const;
00091
00092 virtual bool saveState(ossimKeywordlist& kwl,
00093 const char* prefix=0)const;
00094
00099 virtual bool loadState(const ossimKeywordlist& kwl,
00100 const char* prefix=0);
00101
00102 protected:
00103 ossimRefPtr<ossimImageData> theTile;
00104 int theXOrder;
00105 int theYOrder;
00106 int theApertureSize;
00107 void runUcharTransformation(ossimImageData* tile);
00108
00109 TYPE_DATA
00110 };
00111
00112 #endif