OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ossimFftFilter Class Reference

#include <ossimFftFilter.h>

Inheritance diagram for ossimFftFilter:
ossimImageSourceFilter ossimImageSource ossimConnectableObjectListener ossimSource ossimListener ossimConnectableObject ossimErrorStatusInterface ossimObject ossimListenerManager ossimPropertyInterface ossimReferenced ossimFftw3Filter

Public Types

enum  ossimFftFilterDirectionType { FORWARD = 0, INVERSE }
 
- Public Types inherited from ossimConnectableObject
enum  ossimConnectableObjectDirectionType { CONNECTABLE_DIRECTION_NONE = 0, CONNECTABLE_DIRECTION_INPUT = 1, CONNECTABLE_DIRECTION_OUTPUT = 2 }
 
typedef std::vector< ossimRefPtr< ossimConnectableObject > > ConnectableObjectList
 

Public Member Functions

 ossimFftFilter (ossimObject *owner=NULL)
 
 ossimFftFilter (ossimImageSource *inputSource)
 
 ossimFftFilter (ossimObject *owner, ossimImageSource *inputSource)
 
virtual ossimRefPtr< ossimImageDatagetTile (const ossimIrect &rect, ossim_uint32 resLevel=0)
 
virtual void initialize ()
 
virtual ossim_uint32 getNumberOfOutputBands () const
 Returns the number of bands in a tile returned from this TileSource. More...
 
virtual double getMinPixelValue (ossim_uint32 band=0) const
 Returns the min pixel of the band. More...
 
virtual double getMaxPixelValue (ossim_uint32 band=0) const
 
virtual double getNullPixelValue (ossim_uint32 band=0) const
 
virtual ossimScalarType getOutputScalarType () const
 This will be used to query the output pixel type of the tile source. More...
 
void setForward ()
 
void setInverse ()
 
ossimString getDirectionTypeAsString () const
 
void setDirectionType (const ossimString &directionType)
 
void setDirectionType (ossimFftFilterDirectionType directionType)
 
virtual ossimRefPtr< ossimPropertygetProperty (const ossimString &name) const
 
virtual void setProperty (ossimRefPtr< ossimProperty > property)
 
virtual void getPropertyNames (std::vector< ossimString > &propertyNames) const
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 Method to the load (recreate) the state of an object from a keyword list. More...
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 Method to save the state of an object to a keyword list. More...
 
- Public Member Functions inherited from ossimImageSourceFilter
 ossimImageSourceFilter (ossimObject *owner=NULL)
 
 ossimImageSourceFilter (ossimImageSource *inputSource)
 
 ossimImageSourceFilter (ossimObject *owner, ossimImageSource *inputSource)
 
virtual void getOutputBandList (std::vector< ossim_uint32 > &bandList) const
 
virtual ossim_uint32 getNumberOfInputBands () const
 
bool canConnectMyInputTo (ossim_int32 inputIndex, const ossimConnectableObject *object) const
 required to be overriden by derived classes More...
 
virtual void connectInputEvent (ossimConnectionEvent &event)
 
virtual void disconnectInputEvent (ossimConnectionEvent &event)
 
virtual void propertyEvent (ossimPropertyEvent &event)
 
virtual void refreshEvent (ossimRefreshEvent &event)
 
- Public Member Functions inherited from ossimImageSource
 ossimImageSource (ossimObject *owner=0)
 
 ossimImageSource (ossimObject *owner, ossim_uint32 inputListSize, ossim_uint32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true)
 
virtual ~ossimImageSource ()
 
virtual ossimRefPtr< ossimImageDatagetTile (const ossimIpt &origin, ossim_uint32 resLevel=0)
 
virtual bool getTile (ossimImageData *result, ossim_uint32 resLevel=0)
 Method to get a tile. More...
 
virtual ossimObjectgetObject ()
 For RTTI support. More...
 
virtual const ossimObjectgetObject () const
 For RTTI support. More...
 
virtual void getDecimationFactor (ossim_uint32 resLevel, ossimDpt &result) const
 Will return the decimation factor for the given resolution level. More...
 
virtual void getDecimationFactors (std::vector< ossimDpt > &decimations) const
 Will return an array of all decimations for each resolution level. More...
 
virtual ossim_uint32 getNumberOfDecimationLevels () const
 Will return the number of resolution levels. More...
 
virtual ossim_uint32 getTileWidth () const
 Returns the default processing tile width. More...
 
virtual ossim_uint32 getTileHeight () const
 Returns the default processing tile height. More...
 
virtual ossimIrect getBoundingRect (ossim_uint32 resLevel=0) const
 This will return the bounding rect of the source. More...
 
virtual void getBoundingRect (ossimIrect &rect, ossim_uint32 resLevel=0) const
 Gets the bounding rectangle of the source. More...
 
virtual void getValidImageVertices (std::vector< ossimIpt > &validVertices, ossimVertexOrdering ordering=OSSIM_CLOCKWISE_ORDER, ossim_uint32 resLevel=0) const
 ordering specifies how the vertices should be arranged. More...
 
virtual ossimRefPtr< ossimImageGeometrygetImageGeometry ()
 Returns the image geometry object associated with this tile source or NULL if not defined. More...
 
virtual void setImageGeometry (const ossimImageGeometry *geom)
 Default implementation sets geometry of the first input to the geometry specified. More...
 
virtual void saveImageGeometry () const
 Default method to call input's saveImageGeometry. More...
 
virtual void saveImageGeometry (const ossimFilename &geometry_file) const
 Default method to call input's saveImageGeometry. More...
 
virtual bool isIndexedData () const
 
- Public Member Functions inherited from ossimSource
 ossimSource (ossimObject *owner=0)
 
 ossimSource (ossimObject *owner, ossim_uint32 inputListSize, ossim_uint32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true)
 
virtual ~ossimSource ()
 
virtual bool isSourceEnabled () const
 
virtual void enableSource ()
 
virtual void disableSource ()
 
virtual bool getEnableFlag () const
 
virtual void setEnableFlag (bool flag)
 
virtual bool isInitialized () const
 
virtual void setInitializedFlag (bool flag)
 
virtual std::ostream & print (std::ostream &out) const
 Outputs theErrorStatus as an ossimErrorCode and an ossimString. More...
 
- Public Member Functions inherited from ossimConnectableObject
 ossimConnectableObject (ossimObject *owner=0)
 Base constructor of this object. More...
 
 ossimConnectableObject (ossimObject *owner, ossim_int32 inputListSize, ossim_int32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true)
 
virtual ~ossimConnectableObject ()
 
void setId (const ossimId &id)
 All connectable objects will have id's. More...
 
const ossimIdgetId () const
 Will allow us to get this object's id. More...
 
const ossimObjectgetOwner () const
 Fetches the current owner, most likely a container but not limited to one. More...
 
virtual void changeOwner (ossimObject *owner)
 Permits changing the object's owner. More...
 
virtual void setDescription (const ossimString &description)
 
virtual ossimString getDescription () const
 
virtual bool isConnected (ossimConnectableObjectDirectionType direction=CONNECTABLE_DIRECTION_INPUT) const
 will check the direction specified to see if all slots are full. More...
 
 OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findConnectableObject(const ossimId &id))
 
 OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findObjectOfType(RTTItypeid typeId, ossimConnectableObjectDirectionType directionType, bool recurse=true))
 
 OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findObjectOfType(const ossimString &obj, ossimConnectableObjectDirectionType directionType, bool recurse=true))
 
 OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findInputObjectOfType(const ossimString &className))
 
virtual ossim_int32 findInputIndex (const ossimConnectableObject *object)
 Return a valid index of the input list if the passed in object is found else return -1. More...
 
virtual ossim_int32 findInputIndex (const ossimId &id)
 Return a valid index of the input list if the passed id is found else return -1. More...
 
virtual ossim_int32 findOutputIndex (const ossimConnectableObject *object)
 Return a valid index of the output list if the passed in object is found else return -1. More...
 
virtual ossim_int32 findOutputIndex (const ossimId &id)
 Return a valid index of the output list if the passed in object is found else return -1. More...
 
virtual ossim_int32 getMyInputIndexToConnectTo (ossimConnectableObject *object) const
 Should return the first available index to connect to. More...
 
virtual ossim_int32 getMyOutputIndexToConnectTo (ossimConnectableObject *object) const
 Should return the first available index to connect to. More...
 
virtual bool canConnectMyOutputTo (ossim_int32 myOutputIndex, const ossimConnectableObject *object) const
 default implementation is to allow anyone to connect to us. More...
 
virtual void disconnect (ossimConnectableObject *object=0)
 Will disconnect the object passed in. More...
 
virtual void disconnect (const ossimId &id)
 Will disconnect the object passed in. More...
 
virtual ossimRefPtr< ossimConnectableObjectdisconnectMyInput (ossim_int32 inputIndex, bool disconnectOutputFlag=true, bool createEventFlag=true)
 Will disconnect the object at the given input index and generate a connection event. More...
 
virtual void disconnectMyInput (ossimConnectableObject *input, bool disconnectOutputFlag=true, bool createEventFlag=true)
 Finds the index of the passed in input and calls disconnectMyInput(inputIndex, disconnectOutputFlag, createEventFlag);. More...
 
virtual void disconnectMyInputs (ConnectableObjectList &inputList, bool disconnectOutputFlag=true, bool createEventFlag=true)
 
virtual ossimRefPtr< ossimConnectableObjectdisconnectMyOutput (ossim_int32 outputIndex, bool disconnectInputFlag=true, bool createEventFlag=true)
 Will disconnect the object at the given output index and generate a connection event. More...
 
virtual void disconnectMyOutput (ossimConnectableObject *output, bool disconnectInputFlag=true, bool createEventFlag=true)
 Will disconnect the output object. More...
 
virtual void disconnectMyOutputs (ConnectableObjectList &outputList, bool disconnectOutputFlag=true, bool createEventFlag=true)
 
virtual void disconnectAllInputs ()
 Will disconnect all of the input objects. More...
 
virtual void disconnectAllOutputs ()
 Will disconnect all of the output objects. More...
 
virtual ossim_int32 connectMyInputTo (ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
 Will try to connect this objects input to the passed in object. More...
 
virtual ossim_int32 connectMyInputTo (ossim_int32 inputIndex, ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
 Will connect the specified input to the passed in object. More...
 
virtual bool connectMyInputTo (ConnectableObjectList &inputList, bool makeOutputConnection=true, bool createEventFlag=true)
 
virtual ossim_int32 connectMyOutputTo (ossimConnectableObject *outputObject, bool makeInputConnection=true, bool createEventFlag=true)
 Will try to connect this objects output to the passed in object. More...
 
virtual bool connectMyOutputTo (ConnectableObjectList &outputList, bool makeInputConnection=true, bool createEventFlag=true)
 
virtual bool connectInputList (ConnectableObjectList &inputList)
 Will disconnect itself from all inputs and reset to the passed in input list. More...
 
virtual bool connectOutputList (ConnectableObjectList &outputList)
 Will disconnect itself from all outputs and reset to the passed in output list. More...
 
virtual ossim_uint32 getNumberOfInputs () const
 Returns the number of input objects. More...
 
virtual ossim_uint32 getNumberOfOutputs () const
 Return the number of output objects. More...
 
ossimConnectableObjectgetInput (ossim_uint32 index=0)
 returns the object at the specified index. More...
 
const ossimConnectableObjectgetInput (ossim_uint32 index=0) const
 returns the object at the specified index. More...
 
ossimConnectableObjectgetOutput (ossim_uint32 index=0)
 returns the object at the specified index. More...
 
const ossimConnectableObjectgetOutput (ossim_uint32 index=0) const
 returns the object at the specified index. More...
 
virtual void setNumberOfInputs (ossim_int32 numberOfInputs)
 Will set the number of inputs. More...
 
virtual bool getInputListIsFixedFlag () const
 
virtual bool getOutputListIsFixedFlag () const
 
virtual void setNumberOfOutputs (ossim_int32 numberOfInputs)
 Will set the number of outputs. More...
 
const ConnectableObjectListgetInputList () const
 
const ConnectableObjectListgetOutputList () const
 
ConnectableObjectListgetInputList ()
 
ConnectableObjectListgetOutputList ()
 
 OSSIM_DEPRECATE_METHOD (virtual void findAllObjectsOfType(ConnectableObjectList &result, const RTTItypeid &typeInfo, bool recurse=true))
 
 OSSIM_DEPRECATE_METHOD (virtual void findAllObjectsOfType(ConnectableObjectList &result, const ossimString &className, bool recurse=true))
 
virtual void propagateEventToOutputs (ossimEvent &event)
 
virtual void propagateEventToInputs (ossimEvent &event)
 
virtual void setProperty (const ossimString &name, const ossimString &value)
 
virtual ossim_uint32 saveStateOfAllInputs (ossimKeywordlist &kwl, bool saveThisStateFlag=true, ossim_uint32 objectIndex=1, const char *prefix=0) const
 Save the state of all inputs to a keyword list. More...
 
virtual bool fillContainer (ossimConnectableContainer &container)
 Inserts this object and all of its children and inputs into the container provided. More...
 
bool moveInputUp (const ossimId &id)
 Moves the input connection matching id up one in the connection list. More...
 
bool moveInputDown (const ossimId &id)
 Moves the input connection matching id down one in the connection list. More...
 
bool moveInputToTop (const ossimId &id)
 Moves the input connection matching id to the top of the connection list. More...
 
bool moveInputToBottom (const ossimId &id)
 Moves the input connection matching id to the bottom of the connection list. More...
 
virtual void accept (ossimVisitor &visitor)
 We will add a visitor interface for all connectable objects. More...
 
- Public Member Functions inherited from ossimObject
 ossimObject ()
 
virtual ~ossimObject ()
 
virtual ossimObjectdup () const
 
virtual ossimString getShortName () const
 
virtual ossimString getLongName () const
 
virtual ossimString getClassName () const
 
virtual RTTItypeid getType () const
 
virtual bool canCastTo (ossimObject *obj) const
 
virtual bool canCastTo (const RTTItypeid &id) const
 
virtual bool canCastTo (const ossimString &parentClassName) const
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 
- Public Member Functions inherited from ossimListenerManager
 ossimListenerManager ()
 
virtual ~ossimListenerManager ()
 
virtual void fireEvent (ossimEvent &event)
 
virtual bool addListener (ossimListener *listener)
 
virtual bool removeListener (ossimListener *listener)
 
virtual bool findListener (ossimListener *listener)
 
- Public Member Functions inherited from ossimPropertyInterface
 ossimPropertyInterface ()
 
virtual ~ossimPropertyInterface ()
 
virtual ossimString getPropertyValueAsString (const ossimString &name) const
 
void getPropertyList (std::vector< ossimRefPtr< ossimProperty > > &propertyList) const
 
void setProperties (std::vector< ossimRefPtr< ossimProperty > > &propertyList)
 
- Public Member Functions inherited from ossimErrorStatusInterface
 ossimErrorStatusInterface ()
 
virtual ~ossimErrorStatusInterface ()
 
virtual ossimErrorCode getErrorStatus () const
 
virtual ossimString getErrorStatusString () const
 
virtual void setErrorStatus (ossimErrorCode error_status) const
 
virtual void setErrorStatus () const
 
virtual void clearErrorStatus () const
 
bool hasError () const
 
- Public Member Functions inherited from ossimConnectableObjectListener
 ossimConnectableObjectListener ()
 
virtual ~ossimConnectableObjectListener ()
 
virtual void processEvent (ossimEvent &event)
 ProcessEvent. More...
 
virtual void objectDestructingEvent (ossimObjectDestructingEvent &)
 
virtual void connectionEvent (ossimConnectionEvent &)
 
virtual void disconnectOutputEvent (ossimConnectionEvent &)
 
virtual void connectOutputEvent (ossimConnectionEvent &)
 
virtual void addObjectEvent (ossimContainerEvent &)
 
virtual void removeObjectEvent (ossimContainerEvent &)
 
virtual void containerEvent (ossimContainerEvent &)
 
- Public Member Functions inherited from ossimListener
 ossimListener ()
 
virtual ~ossimListener ()
 
void enableListener ()
 
void disableListener ()
 
void setListenerEnableFlag (bool flag)
 
bool isListenerEnabled () const
 
bool getListenerEnableFlag () const
 

Protected Member Functions

virtual ~ossimFftFilter ()
 
virtual void runFft (ossimRefPtr< ossimImageData > &input, ossimRefPtr< ossimImageData > &output)
 
template<class T >
void fillMatrixForward (T *realPart, T nullPix, NEWMAT::Matrix &real, NEWMAT::Matrix &img) const
 
template<class T >
void fillMatrixInverse (T *realPart, T *imgPart, NEWMAT::Matrix &real, NEWMAT::Matrix &img) const
 
- Protected Member Functions inherited from ossimImageSourceFilter
virtual ~ossimImageSourceFilter ()
 
- Protected Member Functions inherited from ossimImageSource
 ossimImageSource (const ossimImageSource &rhs)
 
const ossimImageSourceoperator= (const ossimImageSource &)
 
- Protected Member Functions inherited from ossimSource
 ossimSource (const ossimSource &rhs)
 
const ossimSourceoperator= (const ossimSource &rhs)
 
- Protected Member Functions inherited from ossimConnectableObject
ossimConnectableObjectfindObjectOfType (ConnectableObjectList *connectableList, ossimVisitor &visitor)
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 
- Protected Member Functions inherited from ossimListenerManager
 ossimListenerManager (const ossimListenerManager &rhs)
 

Protected Attributes

ossimRefPtr< ossimImageDatatheTile
 
ossimFftFilterDirectionType theDirectionType
 
ossimRefPtr< ossimScalarRemappertheScalarRemapper
 
- Protected Attributes inherited from ossimImageSourceFilter
ossimImageSourcetheInputConnection
 
- Protected Attributes inherited from ossimSource
bool theEnableFlag
 
bool theInitializedFlag
 
- Protected Attributes inherited from ossimConnectableObject
ossimId theId
 
ossimString theDescription
 
ossimObjecttheOwner
 
bool theInputListIsFixedFlag
 Indicates whether the theInputObjectList is fixed. More...
 
bool theOutputListIsFixedFlag
 Indicates whether the theOutputObjectList is fixed. More...
 
ConnectableObjectList theInputObjectList
 Holds a list of input objects. More...
 
ConnectableObjectList theOutputObjectList
 Holds a list of output objects. More...
 
- Protected Attributes inherited from ossimListenerManager
std::list< ossimListener * > theListenerList
 
bool theEnabledFlag
 
std::list< ossimListener * > theDelayedAdd
 
std::list< ossimListener * > theDelayedRemove
 
bool theFireEventFlag
 
- Protected Attributes inherited from ossimErrorStatusInterface
ossimErrorCode theErrorStatus
 
- Protected Attributes inherited from ossimListener
bool theListenerEnableFlag
 

Detailed Description

Definition at line 18 of file ossimFftFilter.h.

Member Enumeration Documentation

◆ ossimFftFilterDirectionType

Enumerator
FORWARD 
INVERSE 

Definition at line 21 of file ossimFftFilter.h.

Constructor & Destructor Documentation

◆ ossimFftFilter() [1/3]

ossimFftFilter::ossimFftFilter ( ossimObject owner = NULL)

Definition at line 22 of file ossimFftFilter.cpp.

References OSSIM_NORMALIZED_DOUBLE, ossimScalarRemapper::setOutputScalarType(), and theScalarRemapper.

23  :ossimImageSourceFilter(owner),
24  theTile(0),
27 {
29 }
ossimImageSourceFilter(ossimObject *owner=NULL)
virtual void setOutputScalarType(ossimScalarType scalarType)
Sets the output scalar type.
ossimRefPtr< ossimImageData > theTile
ossimRefPtr< ossimScalarRemapper > theScalarRemapper
64 bit normalized floating point
ossimFftFilterDirectionType theDirectionType

◆ ossimFftFilter() [2/3]

ossimFftFilter::ossimFftFilter ( ossimImageSource inputSource)

Definition at line 31 of file ossimFftFilter.cpp.

References OSSIM_NORMALIZED_DOUBLE, ossimScalarRemapper::setOutputScalarType(), and theScalarRemapper.

32  :ossimImageSourceFilter(inputSource),
33  theTile(0),
36 {
38 }
ossimImageSourceFilter(ossimObject *owner=NULL)
virtual void setOutputScalarType(ossimScalarType scalarType)
Sets the output scalar type.
ossimRefPtr< ossimImageData > theTile
ossimRefPtr< ossimScalarRemapper > theScalarRemapper
64 bit normalized floating point
ossimFftFilterDirectionType theDirectionType

◆ ossimFftFilter() [3/3]

ossimFftFilter::ossimFftFilter ( ossimObject owner,
ossimImageSource inputSource 
)

Definition at line 40 of file ossimFftFilter.cpp.

References OSSIM_NORMALIZED_DOUBLE, ossimScalarRemapper::setOutputScalarType(), and theScalarRemapper.

42  :ossimImageSourceFilter(owner, inputSource),
43  theTile(0),
46 {
48 }
ossimImageSourceFilter(ossimObject *owner=NULL)
virtual void setOutputScalarType(ossimScalarType scalarType)
Sets the output scalar type.
ossimRefPtr< ossimImageData > theTile
ossimRefPtr< ossimScalarRemapper > theScalarRemapper
64 bit normalized floating point
ossimFftFilterDirectionType theDirectionType

◆ ~ossimFftFilter()

ossimFftFilter::~ossimFftFilter ( )
protectedvirtual

Definition at line 50 of file ossimFftFilter.cpp.

References ossimConnectableObject::disconnect(), theScalarRemapper, and ossimRefPtr< T >::valid().

51 {
53  {
56  }
57 }
virtual void disconnect(ossimConnectableObject *object=0)
Will disconnect the object passed in.
bool valid() const
Definition: ossimRefPtr.h:75
ossimRefPtr< ossimScalarRemapper > theScalarRemapper

Member Function Documentation

◆ fillMatrixForward()

template<class T >
void ossimFftFilter::fillMatrixForward ( T *  realPart,
nullPix,
NEWMAT::Matrix &  real,
NEWMAT::Matrix &  img 
) const
protected

Definition at line 371 of file ossimFftFilter.cpp.

Referenced by runFft().

375 {
376  ossim_uint32 w = real.Ncols();
377  ossim_uint32 h = real.Nrows();
378  ossim_uint32 yIdx = 0;
379  ossim_uint32 xIdx = 0;
380 
381  for(yIdx = 0; yIdx < h; ++yIdx)
382  {
383  for(xIdx = 0; xIdx < w; ++xIdx)
384  {
385  if((double)(*realPart) != nullPix)
386  {
387  real[yIdx][xIdx] = (double)(*realPart);
388  }
389  else
390  {
391  real[yIdx][xIdx] = 0.0;
392  }
393 
394  img[yIdx][xIdx] = 0.0;
395 
396  ++realPart;
397  }
398  }
399 }
unsigned int ossim_uint32

◆ fillMatrixInverse()

template<class T >
void ossimFftFilter::fillMatrixInverse ( T *  realPart,
T *  imgPart,
NEWMAT::Matrix &  real,
NEWMAT::Matrix &  img 
) const
protected

Definition at line 402 of file ossimFftFilter.cpp.

Referenced by runFft().

406 {
407  ossim_uint32 w = real.Ncols();
408  ossim_uint32 h = real.Nrows();
409  ossim_uint32 yIdx = 0;
410  ossim_uint32 xIdx = 0;
411 
412  for(yIdx = 0; yIdx < h; ++yIdx)
413  {
414  for(xIdx = 0; xIdx < w; ++xIdx)
415  {
416  real[yIdx][xIdx] = (double)(*realPart);
417  img[yIdx][xIdx] = (double)(*imgPart);
418 
419  ++realPart;
420  ++imgPart;
421  }
422  }
423 }
unsigned int ossim_uint32

◆ getDirectionTypeAsString()

ossimString ossimFftFilter::getDirectionTypeAsString ( ) const

Definition at line 205 of file ossimFftFilter.cpp.

References FORWARD, and theDirectionType.

Referenced by getProperty(), and saveState().

206 {
208  {
209  return "Forward";
210  }
211 
212  return "Inverse";
213 }
ossimFftFilterDirectionType theDirectionType

◆ getMaxPixelValue()

double ossimFftFilter::getMaxPixelValue ( ossim_uint32  band = 0) const
virtual

Returns the max pixel of the band.

Reimplemented from ossimImageSource.

Definition at line 166 of file ossimFftFilter.cpp.

References ossimImageSource::getMaxPixelValue(), and ossimSource::isSourceEnabled().

167 {
168  if(!isSourceEnabled())
169  {
171  }
172  return 1.0;
173 }
virtual bool isSourceEnabled() const
Definition: ossimSource.cpp:79
virtual double getMaxPixelValue(ossim_uint32 band=0) const
Returns the max pixel of the band.

◆ getMinPixelValue()

double ossimFftFilter::getMinPixelValue ( ossim_uint32  band = 0) const
virtual

Returns the min pixel of the band.

Reimplemented from ossimImageSource.

Definition at line 157 of file ossimFftFilter.cpp.

References ossimImageSource::getMinPixelValue(), and ossimSource::isSourceEnabled().

158 {
159  if(!isSourceEnabled())
160  {
162  }
163  return 0.0;
164 }
virtual bool isSourceEnabled() const
Definition: ossimSource.cpp:79
virtual double getMinPixelValue(ossim_uint32 band=0) const
Returns the min pixel of the band.

◆ getNullPixelValue()

double ossimFftFilter::getNullPixelValue ( ossim_uint32  band = 0) const
virtual

Each band has a null pixel associated with it. The null pixel represents an invalid value.

Reimplemented from ossimImageSource.

Definition at line 142 of file ossimFftFilter.cpp.

References FORWARD, ossimImageSource::getNullPixelValue(), ossimSource::isSourceEnabled(), ossim::nan(), and theDirectionType.

Referenced by ossimFftw3Filter::runFft().

143 {
144  if(!isSourceEnabled())
145  {
147  }
149  {
150  return ossim::nan();
151  }
152 
153  // it will invert to a normalized float output
154  return 0.0;
155 }
virtual bool isSourceEnabled() const
Definition: ossimSource.cpp:79
double nan()
Method to return ieee floating point double precision NAN.
Definition: ossimCommon.h:135
ossimFftFilterDirectionType theDirectionType
virtual double getNullPixelValue(ossim_uint32 band=0) const
Each band has a null pixel associated with it.

◆ getNumberOfOutputBands()

ossim_uint32 ossimFftFilter::getNumberOfOutputBands ( ) const
virtual

Returns the number of bands in a tile returned from this TileSource.

Reimplemented from ossimImageSource.

Definition at line 175 of file ossimFftFilter.cpp.

References FORWARD, ossimImageSource::getNumberOfOutputBands(), ossimSource::isSourceEnabled(), and theDirectionType.

176 {
177  if(!isSourceEnabled())
178  {
180  }
182 
184  {
185  bands *=2;
186  }
187  else
188  {
189  bands /=2;
190  }
191 
192  return bands;
193 }
virtual bool isSourceEnabled() const
Definition: ossimSource.cpp:79
virtual ossim_uint32 getNumberOfOutputBands() const
Returns the number of bands in a tile returned from this TileSource.
unsigned int ossim_uint32
ossimFftFilterDirectionType theDirectionType

◆ getOutputScalarType()

ossimScalarType ossimFftFilter::getOutputScalarType ( ) const
virtual

This will be used to query the output pixel type of the tile source.

Please ignore the argument. It will soon be removed.

Reimplemented from ossimImageSource.

Definition at line 127 of file ossimFftFilter.cpp.

References FORWARD, ossimImageSource::getOutputScalarType(), ossimSource::isSourceEnabled(), OSSIM_NORMALIZED_DOUBLE, and theDirectionType.

128 {
129  if(!isSourceEnabled())
130  {
132  }
133 
135  {
137  }
138 
140 }
virtual bool isSourceEnabled() const
Definition: ossimSource.cpp:79
64 bit normalized floating point
virtual ossimScalarType getOutputScalarType() const
This will be used to query the output pixel type of the tile source.
ossimFftFilterDirectionType theDirectionType

◆ getProperty()

ossimRefPtr< ossimProperty > ossimFftFilter::getProperty ( const ossimString name) const
virtual

Reimplemented from ossimImageSourceFilter.

Definition at line 239 of file ossimFftFilter.cpp.

References getDirectionTypeAsString(), ossimImageSourceFilter::getProperty(), and ossimProperty::setCacheRefreshBit().

240 {
241  if(name == "FFT Direction")
242  {
243  std::vector<ossimString> filterNames;
244  filterNames.push_back("Forward");
245  filterNames.push_back("Inverse");
246  ossimStringProperty* stringProp = new ossimStringProperty("FFT Direction",
248  false,
249  filterNames);
250  stringProp->setCacheRefreshBit();
251 
252  return stringProp;
253  }
254 
256 }
ossimString getDirectionTypeAsString() const
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
void setCacheRefreshBit()

◆ getPropertyNames()

void ossimFftFilter::getPropertyNames ( std::vector< ossimString > &  propertyNames) const
virtual

Reimplemented from ossimImageSourceFilter.

Definition at line 276 of file ossimFftFilter.cpp.

References ossimImageSourceFilter::getPropertyNames().

277 {
279  propertyNames.push_back("FFT Direction");
280 }
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const

◆ getTile()

ossimRefPtr< ossimImageData > ossimFftFilter::getTile ( const ossimIrect rect,
ossim_uint32  resLevel = 0 
)
virtual
Returns
the requested region of interest

Reimplemented from ossimImageSource.

Definition at line 59 of file ossimFftFilter.cpp.

References ossimImageData::dup(), ossimRefPtr< T >::get(), ossimImageData::getBuf(), ossimScalarRemapper::getTile(), ossimImageSource::getTile(), ossimIrect::height(), initialize(), ossimSource::isSourceEnabled(), ossimImageData::loadTile(), runFft(), ossimImageData::setImageRectangle(), theScalarRemapper, theTile, ossimIrect::ul(), ossimRefPtr< T >::valid(), ossimImageData::validate(), ossimIrect::width(), ossimIpt::x, and ossimIpt::y.

61 {
62  if(!isSourceEnabled())
63  return ossimImageSourceFilter::getTile(rect, resLevel);
64 
65  ossimIrect tempRequest = rect;
66 
67  ossim_uint32 w = rect.width();
68  ossim_uint32 h = rect.height();
69 
70  if(w & 1)
71  ++w;
72  if(h&1)
73  ++h;
74 
75  tempRequest = ossimIrect(rect.ul().x, rect.ul().y,
76  rect.ul().x + (w-1), rect.ul().y + (h-1));
77 
78  ossimRefPtr<ossimImageData> inTile = theScalarRemapper->getTile(tempRequest, resLevel);
79  if(!inTile.valid())
80  return inTile;
81  if(!theTile.valid())
82  initialize();
83  if(!theTile.valid() || !inTile->getBuf())
84  return theTile;
85 
88 
89  if(rect != tempRequest)
90  {
91  tempTile = (ossimImageData*)theTile->dup();
92  tempTile->setImageRectangle(tempRequest);
93  }
94 
95  runFft(inTile, tempTile);
96 
97  if(tempTile != theTile)
98  {
99  theTile->loadTile(tempTile.get());
100  }
101 
102  theTile->validate();
103  return theTile;
104 }
virtual bool isSourceEnabled() const
Definition: ossimSource.cpp:79
virtual void setImageRectangle(const ossimIrect &rect)
bool valid() const
Definition: ossimRefPtr.h:75
ossim_uint32 height() const
Definition: ossimIrect.h:487
const ossimIpt & ul() const
Definition: ossimIrect.h:274
virtual ossimObject * dup() const
virtual void loadTile(const void *src, const ossimIrect &src_rect, ossimInterleaveType il_type)
virtual ossimDataObjectStatus validate() const
unsigned int ossim_uint32
ossimRefPtr< ossimImageData > theTile
virtual ossimRefPtr< ossimImageData > getTile(const ossimIrect &tile_rect, ossim_uint32 resLevel=0)
virtual void initialize()
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimRefPtr< ossimScalarRemapper > theScalarRemapper
ossim_int32 y
Definition: ossimIpt.h:142
virtual const void * getBuf() const
ossim_int32 x
Definition: ossimIpt.h:141
virtual void runFft(ossimRefPtr< ossimImageData > &input, ossimRefPtr< ossimImageData > &output)
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)

◆ initialize()

void ossimFftFilter::initialize ( )
virtual

Reimplemented from ossimImageSourceFilter.

Definition at line 106 of file ossimFftFilter.cpp.

References ossimConnectableObject::connectMyInputTo(), ossimImageDataFactory::create(), FORWARD, ossimConnectableObject::getInput(), ossimImageSourceFilter::initialize(), ossimImageData::initialize(), ossimImageDataFactory::instance(), OSSIM_NORMALIZED_DOUBLE, ossimScalarRemapper::setOutputScalarType(), theDirectionType, theScalarRemapper, theTile, and ossimRefPtr< T >::valid().

Referenced by getTile().

107 {
109 
111 
112  if(theTile.valid())
113  {
114  theTile->initialize();
115  }
117  {
119  }
120  else
121  {
123  }
125 }
bool valid() const
Definition: ossimRefPtr.h:75
virtual void initialize()
Initialize the data buffer.
ossimConnectableObject * getInput(ossim_uint32 index=0)
returns the object at the specified index.
static ossimImageDataFactory * instance()
virtual void setOutputScalarType(ossimScalarType scalarType)
Sets the output scalar type.
ossimRefPtr< ossimImageData > theTile
virtual ossim_int32 connectMyInputTo(ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
Will try to connect this objects input to the passed in object.
virtual ossimRefPtr< ossimImageData > create(ossimSource *owner, ossimScalarType scalar, ossim_uint32 bands=1) const
ossimRefPtr< ossimScalarRemapper > theScalarRemapper
64 bit normalized floating point
ossimFftFilterDirectionType theDirectionType

◆ loadState()

bool ossimFftFilter::loadState ( const ossimKeywordlist kwl,
const char *  prefix = 0 
)
virtual

Method to the load (recreate) the state of an object from a keyword list.

Return true if ok or false on error.

Reimplemented from ossimImageSourceFilter.

Definition at line 426 of file ossimFftFilter.cpp.

References ossimKeywordlist::find(), ossimImageSourceFilter::loadState(), and setDirectionType().

428 {
429  const char* direction = kwl.find(prefix, "fft_direction");
430  if(direction)
431  {
432  setDirectionType(ossimString(direction));
433  }
434 
435  return ossimImageSourceFilter::loadState(kwl, prefix);
436 }
const char * find(const char *key) const
void setDirectionType(const ossimString &directionType)
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.

◆ runFft()

void ossimFftFilter::runFft ( ossimRefPtr< ossimImageData > &  input,
ossimRefPtr< ossimImageData > &  output 
)
protectedvirtual

Reimplemented in ossimFftw3Filter.

Definition at line 283 of file ossimFftFilter.cpp.

References FFT2(), FFT2I(), fillMatrixForward(), fillMatrixInverse(), FORWARD, ossimImageData::getBuf(), ossimImageData::getHeight(), ossimImageData::getNullPix(), ossimImageData::getNumberOfBands(), ossimImageData::getWidth(), theDirectionType, x, and y.

Referenced by getTile().

285 {
286 
287  NEWMAT::Matrix* realIn = new NEWMAT::Matrix(input->getHeight(),
288  input->getWidth());
289  NEWMAT::Matrix* imgIn = new NEWMAT::Matrix(input->getHeight(),
290  input->getWidth());
291  NEWMAT::Matrix* realOut = new NEWMAT::Matrix(input->getHeight(),
292  input->getWidth());
293  NEWMAT::Matrix* imgOut = new NEWMAT::Matrix(input->getHeight(),
294  input->getWidth());
295  ossim_uint32 bandIdx = 0;
296  ossim_uint32 w = input->getWidth();
297  ossim_uint32 h = input->getHeight();
298  ossim_uint32 x = 0;
299  ossim_uint32 y = 0;
301  {
302  ossim_uint32 bands = input->getNumberOfBands();
303  for(bandIdx = 0; bandIdx < bands; ++bandIdx)
304  {
305  ossim_float64* bandReal = 0;
306  ossim_float64* bandImg = 0;
307  fillMatrixForward((ossim_float64*)input->getBuf(bandIdx),
308  (ossim_float64)input->getNullPix(bandIdx),
309  *realIn,
310  *imgIn);
311  NEWMAT::FFT2(*realIn, *imgIn, *realOut, *imgOut);
312  bandReal = (ossim_float64*)output->getBuf(2*bandIdx);
313  bandImg = (ossim_float64*)output->getBuf(2*bandIdx + 1);
314  if(bandReal&&bandImg)
315  {
316  for(y = 0; y < h; ++y)
317  {
318  for(x = 0; x < w; ++x)
319  {
320  *bandReal = (ossim_float64)((*realOut)[y][x]);
321  *bandImg = (ossim_float64)((*imgOut)[y][x]);
322  ++bandReal;
323  ++bandImg;
324  }
325  }
326  }
327  }
328  }
329  else
330  {
331  ossim_float64* bandReal = 0;
332  ossim_uint32 bands = input->getNumberOfBands();
333  for(bandIdx = 0; bandIdx < bands; bandIdx+=2)
334  {
335  bandReal = (ossim_float64*)output->getBuf(bandIdx/2);
336  if(input->getBuf(bandIdx)&&
337  input->getBuf(bandIdx+1))
338  {
339  fillMatrixInverse((double*)input->getBuf(bandIdx),
340  (double*)input->getBuf(bandIdx+1),
341  *realIn,
342  *imgIn);
343  NEWMAT::FFT2I(*realIn, *imgIn, *realOut, *imgOut);
344  for(y = 0; y < h; ++y)
345  {
346  for(x = 0; x < w; ++x)
347  {
348  *bandReal = (ossim_float64)((*realOut)[y][x]);
349 // if(*bandReal > 1.0)
350 // {
351 // *bandReal = 1.0;
352 // }
353 // if(*bandReal < 0.0)
354 // {
355 // *bandReal = 0.0;
356 // }
357  ++bandReal;
358  }
359  }
360  }
361  }
362  }
363 
364  delete realIn;
365  delete imgIn;
366  delete realOut;
367  delete imgOut;
368 }
virtual ossim_uint32 getWidth() const
ossim_uint32 x
virtual ossim_uint32 getNumberOfBands() const
ossim_uint32 y
void fillMatrixInverse(T *realPart, T *imgPart, NEWMAT::Matrix &real, NEWMAT::Matrix &img) const
virtual ossim_uint32 getHeight() const
double ossim_float64
void FFT2(const Matrix &U, const Matrix &V, Matrix &X, Matrix &Y)
Definition: fft.cpp:440
unsigned int ossim_uint32
virtual const ossim_float64 * getNullPix() const
void FFT2I(const Matrix &U, const Matrix &V, Matrix &X, Matrix &Y)
Definition: fft.cpp:461
virtual const void * getBuf() const
ossimFftFilterDirectionType theDirectionType
void fillMatrixForward(T *realPart, T nullPix, NEWMAT::Matrix &real, NEWMAT::Matrix &img) const

◆ saveState()

bool ossimFftFilter::saveState ( ossimKeywordlist kwl,
const char *  prefix = 0 
) const
virtual

Method to save the state of an object to a keyword list.

Return true if ok or false on error.

Reimplemented from ossimImageSourceFilter.

Definition at line 438 of file ossimFftFilter.cpp.

References ossimKeywordlist::add(), getDirectionTypeAsString(), and ossimImageSourceFilter::saveState().

440 {
441  kwl.add(prefix,
442  "fft_direction",
444  true);
445 
446  return ossimImageSourceFilter::saveState(kwl, prefix);
447 }
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
ossimString getDirectionTypeAsString() const

◆ setDirectionType() [1/2]

void ossimFftFilter::setDirectionType ( const ossimString directionType)

Definition at line 215 of file ossimFftFilter.cpp.

References ossimString::contains(), ossimString::downcase(), FORWARD, and INVERSE.

Referenced by loadState(), and setProperty().

216 {
217  ossimString tempDirectionType = directionType;
218  tempDirectionType = tempDirectionType.downcase();
219 
220  if(tempDirectionType.contains("forward"))
221  {
223  }
224  else
225  {
227  }
228 }
bool contains(char aChar) const
Definition: ossimString.h:58
void setDirectionType(const ossimString &directionType)
static ossimString downcase(const ossimString &aString)
Definition: ossimString.cpp:48

◆ setDirectionType() [2/2]

void ossimFftFilter::setDirectionType ( ossimFftFilterDirectionType  directionType)

Definition at line 230 of file ossimFftFilter.cpp.

References theDirectionType, theTile, and ossimRefPtr< T >::valid().

231 {
232  theDirectionType = directionType;
233  if(theTile.valid())
234  {
235  theTile = NULL;
236  }
237 }
bool valid() const
Definition: ossimRefPtr.h:75
ossimRefPtr< ossimImageData > theTile
ossimFftFilterDirectionType theDirectionType

◆ setForward()

void ossimFftFilter::setForward ( )

Definition at line 195 of file ossimFftFilter.cpp.

References FORWARD, and theDirectionType.

196 {
198 }
ossimFftFilterDirectionType theDirectionType

◆ setInverse()

void ossimFftFilter::setInverse ( )

Definition at line 200 of file ossimFftFilter.cpp.

References INVERSE, and theDirectionType.

201 {
203 }
ossimFftFilterDirectionType theDirectionType

◆ setProperty()

void ossimFftFilter::setProperty ( ossimRefPtr< ossimProperty property)
virtual

Reimplemented from ossimImageSourceFilter.

Definition at line 258 of file ossimFftFilter.cpp.

References ossimProperty::getName(), setDirectionType(), ossimImageSourceFilter::setProperty(), theTile, ossimRefPtr< T >::valid(), and ossimProperty::valueToString().

259 {
260  if(!property) return;
261 
262  if(property->getName() == "FFT Direction")
263  {
264  if(theTile.valid())
265  {
266  theTile = NULL;
267  }
268  setDirectionType(property->valueToString());
269  }
270  else
271  {
273  }
274 }
virtual void valueToString(ossimString &valueResult) const =0
virtual void setProperty(ossimRefPtr< ossimProperty > property)
bool valid() const
Definition: ossimRefPtr.h:75
void setDirectionType(const ossimString &directionType)
ossimRefPtr< ossimImageData > theTile
const ossimString & getName() const

Member Data Documentation

◆ theDirectionType

ossimFftFilterDirectionType ossimFftFilter::theDirectionType
protected

◆ theScalarRemapper

ossimRefPtr<ossimScalarRemapper> ossimFftFilter::theScalarRemapper
protected

Definition at line 62 of file ossimFftFilter.h.

Referenced by getTile(), initialize(), ossimFftFilter(), and ~ossimFftFilter().

◆ theTile

ossimRefPtr<ossimImageData> ossimFftFilter::theTile
protected

Definition at line 60 of file ossimFftFilter.h.

Referenced by getTile(), initialize(), setDirectionType(), and setProperty().


The documentation for this class was generated from the following files: