OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimImageSharpenFilter.h
Go to the documentation of this file.
1 //*******************************************************************
2 // Copyright (C) 2000 ImageLinks Inc.
3 //
4 // License: MIT
5 //
6 // See LICENSE.txt file in the top level directory for more details.
7 //
8 // Author: Garrett Potts
9 //
10 //*************************************************************************
11 // $Id: ossimImageSharpenFilter.h 15766 2009-10-20 12:37:09Z gpotts $
12 #ifndef ossimImageSharpenFilter_HEADER
13 #define ossimImageSharpenFilter_HEADER
17 {
18 public:
20 
21  virtual ossimString getShortName()const;
22  virtual ossimString getLongName()const;
23 
24  ossim_uint32 getWidth()const;
25  ossim_float64 getSigma()const;
26  void setWidthAndSigma(ossim_uint32 w, ossim_float64 sigma);
27 
28  virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect,
29  ossim_uint32 resLevel=0);
30 
31  virtual void initialize();
32 
33  virtual void connectInputEvent(ossimConnectionEvent &event);
34  virtual void disconnectInputEvent(ossimConnectionEvent &event);
35 
36  virtual void setProperty(ossimRefPtr<ossimProperty> property);
37  virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
38  virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
39 
40  virtual bool loadState(const ossimKeywordlist& kwl,
41  const char* prefix=0);
42  virtual bool saveState(ossimKeywordlist& kwl,
43  const char* prefix=0)const;
44 protected:
45  virtual ~ossimImageSharpenFilter();
46  inline double laplacianOfGaussian(double x, double y, double sigma)
47  {
48  double r2 = x*x+y*y;
49  double sigma2 = sigma*sigma;
50  return ((1.0/(M_PI*sigma2*sigma2))*
51  (1.0-r2/(2.0*sigma2))*
52  (exp(-r2/(2.0*sigma2))));
53 
54  }
55 
56  void buildConvolutionMatrix();
57 
58 
63  template<class T>
64  void sharpenFull(T,
65  const ossimRefPtr<ossimImageData>& inputData,
66  ossimRefPtr<ossimImageData>& outputData);
67 
72  template<class T>
73  void sharpenPartial(T,
74  const ossimRefPtr<ossimImageData>& inputData,
75  ossimRefPtr<ossimImageData>& outputData);
76 
81 };
82 
83 #endif /* #ifndef ossimImageSharpenFilter_HEADER */
ossim_uint32 x
virtual void setProperty(ossimRefPtr< ossimProperty > property)
virtual void connectInputEvent(ossimConnectionEvent &event)
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
ossim_uint32 y
virtual ossimString getShortName() const
Definition: ossimObject.cpp:48
virtual void disconnectInputEvent(ossimConnectionEvent &event)
double ossim_float64
#define M_PI
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned int ossim_uint32
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
virtual ossimString getLongName() const
Definition: ossimObject.cpp:53
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
double laplacianOfGaussian(double x, double y, double sigma)
ossimRefPtr< ossimConvolutionSource > theConvolutionSource
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)