LTI-Lib latest version v1.9 - last update 10 Apr 2010

ltiHessianKernels.h

00001 /*
00002  * Copyright (C) 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 .......: ltiLaplacianKernel.h
00027  * authors ....: Pablo Alvarado
00028  * organization: LTI, RWTH Aachen
00029  * creation ...: 17.11.2003
00030  * revisions ..: $Id: ltiHessianKernels.h,v 1.3 2006/02/08 11:15:34 ltilib Exp $
00031  */
00032 
00033 #ifndef _LTI_HESSIAN_KERNELS_H_
00034 #define _LTI_HESSIAN_KERNELS_H_
00035 
00036 #include "ltiLinearKernels.h"
00037 
00038 namespace lti {
00039   /**
00040    * Two-dimensional kernels to compute the Hessian coefficients.
00041    *
00042    * The Hessian coefficients at a pixel correspond to the second derivatives.
00043    * There are for images three cases: 
00044    * - \f$\frac{\partial^2 f(x,y)}{\partial x^2}\f$
00045    * - \f$\frac{\partial^2 f(x,y)}{\partial y^2}\f$
00046    * - \f$\frac{\partial^2 f(x,y)}{\partial x \partial y}\f$
00047    *
00048    * The 3x3 is the kernels to compute this are:
00049    * - For \f$\frac{\partial^2 f(x,y)}{\partial x^2}\f$
00050    * \code
00051    *  0.1  -0.2   0.1
00052    *  0.3  -0.6   0.3
00053    *  0.1  -0.2   0.1
00054    * \endcode
00055    *
00056    * - For \f$\frac{\partial^2 f(x,y)}{\partial y^2}\f$
00057    * \code
00058    *  0.1   0.3   0.1
00059    * -0.2  -0.6  -0.2
00060    *  0.1   0.3   0.1
00061    * \endcode
00062    *
00063    * - For \f$\frac{\partial^2 f(x,y)}{\partial x \partial y}\f$
00064    * \code
00065    *  0.125  0  -0.125
00066    *  0      0   0
00067    * -0.125  0   0.125
00068    * \endcode
00069    *
00070    * These kernels are separable and therefore implemented that way.
00071    *
00072    * @ingroup gLinearFilters
00073    * 
00074    * This kernel implements \f$\frac{\partial^2 f(x,y)}{\partial x^2}\f$
00075    */
00076   class hessianKernelXX : public sepKernel<float> {
00077   public:
00078     /**
00079      * Constructor
00080      */
00081     hessianKernelXX();
00082 
00083     /**
00084      * Initialize this kernel.
00085      */
00086     void generate();
00087   };
00088 
00089   /**
00090    * Two-dimensional kernels to compute the Hessian coefficients.
00091    *
00092    * The Hessian coefficients at a pixel correspond to the second derivatives.
00093    * There are for images three cases: 
00094    * - \f$\frac{\partial^2 f(x,y)}{\partial x^2}\f$
00095    * - \f$\frac{\partial^2 f(x,y)}{\partial y^2}\f$
00096    * - \f$\frac{\partial^2 f(x,y)}{\partial x \partial y}\f$
00097    *
00098    * The 3x3 is the kernels to compute this are:
00099    * - For \f$\frac{\partial^2 f(x,y)}{\partial x^2}\f$
00100    * \code
00101    *  0.1  -0.2   0.1
00102    *  0.3  -0.6   0.3
00103    *  0.1  -0.2   0.1
00104    * \endcode
00105    *
00106    * - For \f$\frac{\partial^2 f(x,y)}{\partial y^2}\f$
00107    * \code
00108    *  0.1   0.3   0.1
00109    * -0.2  -0.6  -0.2
00110    *  0.1   0.3   0.1
00111    * \endcode
00112    *
00113    * - For \f$\frac{\partial^2 f(x,y)}{\partial x \partial y}\f$
00114    * \code
00115    *  0.125  0  -0.125
00116    *  0      0   0
00117    * -0.125  0   0.125
00118    * \endcode
00119    *
00120    * These kernels are separable and therefore implemented that way.
00121    *
00122    * @ingroup gLinearFilters
00123    *
00124    * This kernel implements \f$\frac{\partial^2 f(x,y)}{\partial y^2}\f$
00125    */
00126   class hessianKernelYY : public sepKernel<float> {
00127   public:
00128     /**
00129      * Constructor
00130      */
00131     hessianKernelYY();
00132 
00133     /**
00134      * Initialize this kernel.
00135      */
00136     void generate();
00137   };
00138 
00139 
00140   /**
00141    * Two-dimensional kernels to compute the Hessian coefficients.
00142    *
00143    * The Hessian coefficients at a pixel correspond to the second derivatives.
00144    * There are for images three cases: 
00145    * - \f$\frac{\partial^2 f(x,y)}{\partial x^2}\f$
00146    * - \f$\frac{\partial^2 f(x,y)}{\partial y^2}\f$
00147    * - \f$\frac{\partial^2 f(x,y)}{\partial x \partial y}\f$
00148    *
00149    * The 3x3 is the kernels to compute this are:
00150    * - For \f$\frac{\partial^2 f(x,y)}{\partial x^2}\f$
00151    * \code
00152    *  0.1  -0.2   0.1
00153    *  0.3  -0.6   0.3
00154    *  0.1  -0.2   0.1
00155    * \endcode
00156    *
00157    * - For \f$\frac{\partial^2 f(x,y)}{\partial y^2}\f$
00158    * \code
00159    *  0.1   0.3   0.1
00160    * -0.2  -0.6  -0.2
00161    *  0.1   0.3   0.1
00162    * \endcode
00163    *
00164    * - For \f$\frac{\partial^2 f(x,y)}{\partial x \partial y}\f$
00165    * \code
00166    *  0.125  0  -0.125
00167    *  0      0   0
00168    * -0.125  0   0.125
00169    * \endcode
00170    *
00171    * These kernels are separable and therefore implemented that way.
00172    *
00173    * @ingroup gLinearFilters
00174    *
00175    * This kernel implements 
00176    * \f$\frac{\partial^2 f(x,y)}{\partial x \partial y}\f$
00177    */
00178   class hessianKernelXY : public sepKernel<float> {
00179   public:
00180     /**
00181      * Constructor
00182      */
00183     hessianKernelXY();
00184 
00185     /**
00186      * Initialize this kernel.
00187      */
00188     void generate();
00189   };
00190 
00191 
00192 
00193 
00194 }
00195 #endif

Generated on Sat Apr 10 15:25:37 2010 for LTI-Lib by Doxygen 1.6.1