OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossim3x3ConvolutionFilter.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: ossim3x3ConvolutionFilter.h 15766 2009-10-20 12:37:09Z gpotts $
12 #ifndef ossim3x3ConvolutionFilter_HEADER
13 #define ossim3x3ConvolutionFilter_HEADER
15 
16 
18 {
19 public:
21 
22  virtual ossimString getShortName()const{return ossimString("3x3 Convolution");}
23  virtual ossimString getLongName()const{return ossimString("Convolves the input image with a 3x3 kernel");}
24 
25  virtual void getKernel(double kernel[3][3]);
26 
27  virtual void setKernel(double kernel[3][3]);
28 
29  virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect,
30  ossim_uint32 resLevel=0);
31 
32  virtual void initialize();
33 
34  virtual double getNullPixelValue(ossim_uint32 band=0) const;
35  virtual double getMinPixelValue(ossim_uint32 band=0) const;
36  virtual double getMaxPixelValue(ossim_uint32 band=0) const;
37 
38  virtual void setProperty(ossimRefPtr<ossimProperty> property);
39  virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
40  virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
41 
42 
43  virtual bool loadState(const ossimKeywordlist& kwl,
44  const char* prefix = 0);
45 
46  virtual bool saveState(ossimKeywordlist& kwl,
47  const char* prefix = 0)const;
48 
49 protected:
51 
55  void allocate();
56 
61  void clearNullMinMax();
62 
66  void computeNullMinMax();
67 
69  double theKernel[3][3];
70 
71  vector<double> theNullPixValue;
72  vector<double> theMinPixValue;
73  vector<double> theMaxPixValue;
74 
79  template<class T>
80  void convolveFull(T,
82  ossimRefPtr<ossimImageData> outputData);
83 
88  template<class T>
89  void convolvePartial(T,
91  ossimRefPtr<ossimImageData> outputData);
92 
93 
95 };
96 
97 #endif /* #ifndef ossim3x3ConvolutionFilter_HEADER */
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual ossimString getLongName() const
Represents serializable keyword/value map.
ossim3x3ConvolutionFilter(ossimObject *owner=NULL)
void allocate()
Allocates theTile.
virtual ossimString getShortName() const
void convolvePartial(T, ossimRefPtr< ossimImageData > inputData, ossimRefPtr< ossimImageData > outputData)
void clearNullMinMax()
Clears data members theNullPixValue, theMinPixValue, and theMaxPixValue.
void convolveFull(T, ossimRefPtr< ossimImageData > inputData, ossimRefPtr< ossimImageData > outputData)
void computeNullMinMax()
Computes null, min, and max considering input connection and theKernel.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned int ossim_uint32
virtual double getMinPixelValue(ossim_uint32 band=0) const
Returns the min pixel of the band.
virtual ossimRefPtr< ossimImageData > getTile(const ossimIrect &tileRect, ossim_uint32 resLevel=0)
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
virtual void setKernel(double kernel[3][3])
virtual double getMaxPixelValue(ossim_uint32 band=0) const
Returns the max pixel of the band.
virtual double getNullPixelValue(ossim_uint32 band=0) const
Each band has a null pixel associated with it.
virtual void getKernel(double kernel[3][3])
virtual void setProperty(ossimRefPtr< ossimProperty > property)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
ossimRefPtr< ossimImageData > theTile