00001 #ifndef ossimOpenCVCannyFilter_HEADER
00002 #define ossimOpenCVCannyFilter_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 <cv.h>
00010 #include <highgui.h>
00011
00023 class ossimOpenCVCannyFilter : public ossimImageSourceFilter
00024 {
00025 public:
00026 ossimOpenCVCannyFilter(ossimObject* owner=NULL);
00027 ossimOpenCVCannyFilter(ossimImageSource* inputSource, double threshold1, double threshold2, int apertureSize);
00028 ossimOpenCVCannyFilter(ossimObject* owner,ossimImageSource* inputSource, double threshold1, double threshold2, int apertureSize);
00029 virtual ~ossimOpenCVCannyFilter();
00030 ossimString getShortName()const
00031 {
00032 return ossimString("OpenCVCanny");
00033 }
00034
00035 ossimString getLongName()const
00036 {
00037 return ossimString("OpenCV Canny Filter");
00038 }
00039
00040 virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect, ossim_uint32 resLevel=0);
00041 virtual void initialize();
00042 virtual ossimScalarType getOutputScalarType() const;
00043 ossim_uint32 getNumberOfOutputBands() const;
00044 virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0)const;
00045 virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0);
00046
00047 protected:
00048 ossimRefPtr<ossimImageData> theTile;
00049 void runUcharTransformation(ossimImageData* tile);
00050 double theThreshold1;
00051 double theThreshold2;
00052 int theApertureSize;
00053
00054 TYPE_DATA
00055 };
00056
00057 #endif