latest version v1.9 - last update 10 Apr 2010 |
00001 /* 00002 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 00003 * Lehrstuhl fuer Technische Informatik, RWTH-Aachen, Germany 00004 * 00005 * This file is part of the LTI-Computer Vision Library (LTI-Lib) 00006 * 00007 * The LTI-Lib is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public License (LGPL) 00009 * as published by the Free Software Foundation; either version 2.1 of 00010 * the License, or (at your option) any later version. 00011 * 00012 * The LTI-Lib is distributed in the hope that it will be 00013 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty 00014 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with the LTI-Lib; see the file LICENSE. If 00019 * not, write to the Free Software Foundation, Inc., 59 Temple Place - 00020 * Suite 330, Boston, MA 02111-1307, USA. 00021 */ 00022 00023 00024 /*---------------------------------------------------------------- 00025 * project ....: LTI Digital Image/Signal Processing Library 00026 * file .......: ltiTransform.h 00027 * authors ....: Stefan Syberichs, Pablo Alvarado 00028 * organization: LTI, RWTH Aachen 00029 * creation ...: 06.12.99 00030 * revisions ..: $Id: ltiTransform.h,v 1.4 2006/02/08 11:57:14 ltilib Exp $ 00031 */ 00032 00033 00034 #ifndef _LTI_TRANSFORM_H_ 00035 #define _LTI_TRANSFORM_H_ 00036 00037 #include "ltiFunctor.h" 00038 #include "ltiImage.h" 00039 #include "ltiMath.h" 00040 00041 00042 namespace lti { 00043 00044 /** 00045 * A base class for integral transformations. 00046 * Transform is the base class for integral transformations like DFFT, DCT 00047 * and others. The class has no dedicated parameters. 00048 */ 00049 class transform : public functor { 00050 public: 00051 00052 /** 00053 * transform Functor parameters class. 00054 */ 00055 class parameters : public functor::parameters { 00056 public: 00057 /** 00058 * default constructor 00059 */ 00060 parameters() : functor::parameters() {}; 00061 00062 /** 00063 * copy constructor. 00064 * @param other the parameter object to copy 00065 */ 00066 parameters(const parameters& other) : functor::parameters() { 00067 copy(other); 00068 }; 00069 00070 /** copy member function. 00071 * @param other the parameter object to copy 00072 */ 00073 parameters& copy(const parameters& other); 00074 00075 /** 00076 * returns a pointer to a clone of the parameters. 00077 */ 00078 virtual functor::parameters* clone() const; 00079 00080 /** 00081 * returns name of this type 00082 */ 00083 virtual const char* getTypeName() const; 00084 }; 00085 00086 /** 00087 * default constructor 00088 */ 00089 transform() 00090 : functor() {}; 00091 00092 /** 00093 * constructor, sets the parameters 00094 * @param theParam parameter object of type lti::transform::parameters. 00095 */ 00096 transform(const parameters& theParam); 00097 00098 /** 00099 * destructor 00100 */ 00101 virtual ~transform() {}; 00102 00103 /** 00104 * get the current parameters 00105 */ 00106 const parameters& getParameters() const; 00107 00108 /** 00109 * returns the name of this type 00110 */ 00111 virtual const char* getTypeName() const; 00112 }; 00113 00114 } // namespace lti 00115 #endif