00001 #ifndef ossimOpenCVLaplaceFilter_HEADER
00002 #define ossimOpenCVLaplaceFilter_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
00033 class ossimOpenCVLaplaceFilter : public ossimImageSourceFilter
00034 {
00035
00036 public:
00037 ossimOpenCVLaplaceFilter(ossimObject* owner=NULL);
00038 ossimOpenCVLaplaceFilter(ossimImageSource* inputSource,
00039 int aperture_size = 3);
00040 ossimOpenCVLaplaceFilter(ossimObject* owner,
00041 ossimImageSource* inputSource,
00042 int aperture_size = 3);
00043 virtual ~ossimOpenCVLaplaceFilter();
00044 ossimString getShortName()const
00045 {
00046 return ossimString("OpenCVLaplace");
00047 }
00048
00049 ossimString getLongName()const
00050 {
00051 return ossimString("OpenCV Laplace Filter");
00052 }
00053
00054 virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect, ossim_uint32 resLevel=0);
00055
00056 virtual void initialize();
00057
00058 virtual ossimScalarType getOutputScalarType() const;
00059
00060 ossim_uint32 getNumberOfOutputBands() const;
00061
00062 virtual bool saveState(ossimKeywordlist& kwl,
00063 const char* prefix=0)const;
00064
00069 virtual bool loadState(const ossimKeywordlist& kwl,
00070 const char* prefix=0);
00071
00072 protected:
00073 ossimRefPtr<ossimImageData> theTile;
00074 int theApertureSize;
00075 void runUcharTransformation(ossimImageData* tile);
00076
00077 TYPE_DATA
00078 };
00079
00080 #endif