OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimMaskFilter.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  // Modified by: Elan Sharghi (1/20/2009)
10  // Description: Class declaration for ossimMaskFilter.
11  //
12  //*************************************************************************
13  // $Id: ossimMaskFilter.h 20409 2011-12-22 16:57:05Z dburken $
14 #ifndef ossimMaskFilter_HEADER
15 #define ossimMaskFilter_HEADER 1
17 
62 {
63 public:
90  {
92  OSSIM_MASK_TYPE_SELECT = 1,
94  OSSIM_MASK_TYPE_INVERT = 2,
96  OSSIM_MASK_TYPE_WEIGHTED = 3,
98  OSSIM_MASK_TYPE_BINARY = 4,
100  OSSIM_MASK_TYPE_BINARY_INVERSE = 5,
102  OSSIM_MASK_TYPE_SELECT_CLAMP_MIN = 6,
103  };
104 
108  ossimMaskFilter(ossimObject* owner=NULL);
109 
117  void setMaskSource(ossimImageSource* maskSource);
118 
124  virtual void setMaskType(ossimFileSelectionMaskType type);
125 
133  virtual void setMaskType(const ossimString& type);
134 
139  virtual ossimFileSelectionMaskType getMaskType() const;
140 
145  virtual ossimString getMaskTypeString() const;
146 
152  virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& rect,
153  ossim_uint32 resLevel=0);
154 
155  virtual void initialize();
156  virtual bool loadState(const ossimKeywordlist& kwl,
157  const char* prefix=0);
158 
159  virtual bool saveState(ossimKeywordlist& kwl,
160  const char* prefix=0)const;
161 
162  virtual bool canConnectMyInputTo(ossim_int32 index, const ossimConnectableObject* object)const;
163 
164  virtual ossim_uint32 getNumberOfInputBands() const;
165 
166 
167  virtual ossimRefPtr<ossimImageData> executeMaskFilter(
168  ossimRefPtr<ossimImageData> imageSourceData,
169  ossimRefPtr<ossimImageData> maskSourceData);
170 
172  virtual void setProperty(ossimRefPtr<ossimProperty> property);
173 
176  const ossimString& name)const;
177 
179  virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
180 
181 protected:
185  virtual ~ossimMaskFilter();
186 
187  void allocate();
188 
194  ossimRefPtr<ossimImageData> executeMaskFilterSelect(
195  ossimRefPtr<ossimImageData> imageSourceData,
196  ossimRefPtr<ossimImageData> maskSourceData);
197 
202  ossimRefPtr<ossimImageData> executeMaskFilterInvertSelect(
203  ossimRefPtr<ossimImageData> imageSourceData,
204  ossimRefPtr<ossimImageData> maskSourceData);
205 
211  ossimRefPtr<ossimImageData> executeMaskFilterWeighted(
212  ossimRefPtr<ossimImageData> imageSourceData,
213  ossimRefPtr<ossimImageData> maskSourceData);
214 
219  ossimRefPtr<ossimImageData> executeMaskFilterBinary(
220  ossimRefPtr<ossimImageData> imageSourceData,
221  ossimRefPtr<ossimImageData> maskSourceData);
222 
223  template <class inputT, class maskT>
224  ossimRefPtr<ossimImageData> executeMaskFilterSelection(
225  inputT dummyInput,
226  maskT dummyMask,
227  ossimRefPtr<ossimImageData> imageSourceData,
228  ossimRefPtr<ossimImageData> maskSourceData);
229 
230  template <class inputT, class maskT>
231  ossimRefPtr<ossimImageData> executeMaskFilterInvertSelection(
232  inputT dummyInput,
233  maskT dummyMask,
234  ossimRefPtr<ossimImageData> imageSourceData,
235  ossimRefPtr<ossimImageData> maskSourceData);
236 
237  template <class inputT, class maskT>
238  ossimRefPtr<ossimImageData> executeMaskFilterWeighted(
239  inputT dummyInput,
240  maskT dummyMask,
241  ossimRefPtr<ossimImageData> imageSourceData,
242  ossimRefPtr<ossimImageData> maskSourceData);
243 
244  template <class inputT, class maskT>
245  ossimRefPtr<ossimImageData> executeMaskFilterBinarySelection(
246  inputT dummyInput,
247  maskT dummyMask,
248  ossimRefPtr<ossimImageData> imageSourceData,
249  ossimRefPtr<ossimImageData> maskSourceData);
250 
255 
262 
263  TYPE_DATA
264 };
265 
266 #endif /* #ifndef ossimMaskFilter_HEADER */
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
ossimRefPtr< ossimImageData > theTile
Member used to store the result of the applied algorithm type.
virtual void setProperty(ossimRefPtr< ossimProperty > property)
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
ossimFileSelectionMaskType theMaskType
Member variable that holds the algorithm type to run on the calls to getTile.
#define TYPE_DATA
Definition: ossimRtti.h:339
ossimRefPtr< ossimImageSource > theMaskSource
unsigned int ossim_uint32
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
virtual void initialize()=0
virtual bool canConnectMyInputTo(ossim_int32 myInputIndex, const ossimConnectableObject *object) const =0
required to be overriden by derived classes
ossimFileSelectionMaskType
Enumeration used to identify what the selection type for this mask is to be used: ...
virtual ossim_uint32 getNumberOfInputBands() const =0
int ossim_int32
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)