ParticleFilterFrameworkFloat.h
Go to the documentation of this file.
00001 // ****************************************************************************
00002 // This file is part of the Integrating Vision Toolkit (IVT).
00003 //
00004 // The IVT is maintained by the Karlsruhe Institute of Technology (KIT)
00005 // (www.kit.edu) in cooperation with the company Keyetech (www.keyetech.de).
00006 //
00007 // Copyright (C) 2014 Karlsruhe Institute of Technology (KIT).
00008 // All rights reserved.
00009 //
00010 // Redistribution and use in source and binary forms, with or without
00011 // modification, are permitted provided that the following conditions are met:
00012 //
00013 // 1. Redistributions of source code must retain the above copyright
00014 //    notice, this list of conditions and the following disclaimer.
00015 //
00016 // 2. Redistributions in binary form must reproduce the above copyright
00017 //    notice, this list of conditions and the following disclaimer in the
00018 //    documentation and/or other materials provided with the distribution.
00019 //
00020 // 3. Neither the name of the KIT nor the names of its contributors may be
00021 //    used to endorse or promote products derived from this software
00022 //    without specific prior written permission.
00023 //
00024 // THIS SOFTWARE IS PROVIDED BY THE KIT AND CONTRIBUTORS “AS IS” AND ANY
00025 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00026 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00027 // DISCLAIMED. IN NO EVENT SHALL THE KIT OR CONTRIBUTORS BE LIABLE FOR ANY
00028 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00029 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00030 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00031 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00032 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00033 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00034 // ****************************************************************************
00035 // ****************************************************************************
00036 // Filename:  ParticleFilterFrameworkFloat.h
00037 // Author:    Pedram Azad
00038 // Date:      07.05.2009
00039 // ****************************************************************************
00040 
00041 
00042 #ifndef __PARTICLE_FILTER_FRAMEWORK_FLOAT_H__
00043 #define __PARTICLE_FILTER_FRAMEWORK_FLOAT_H__
00044 
00045 
00046 
00047 // ****************************************************************************
00048 // CParticleFilterFrameworkFloat
00049 // ****************************************************************************
00050 
00055 class CParticleFilterFrameworkFloat
00056 {
00057 public:
00058         // constructor
00059         CParticleFilterFrameworkFloat(int nParticles, int nDimension);
00060 
00061         // destructor
00062         ~CParticleFilterFrameworkFloat();
00063 
00064 
00065         // public methods
00066         double ParticleFilter(float *pResultMeanConfiguration, float fSigmaFactor = 1.0f);
00067         double CalculateProbabilityForConfiguration(const float *pConfiguration);
00068         virtual void GetConfiguration(float *pBestConfiguration, float fMeanFactor);
00069         virtual void GetBestConfiguration(float *pBestConfiguration);
00070         virtual void GetMeanConfiguration(float *pMeanConfiguration);
00071         virtual void GetPredictedConfiguration(float *pPredictedConfiguration);
00072 
00073 
00074 protected:
00075         // protected methods
00076         int PickBaseSample();
00077         void CalculateMean();
00078 
00079         // virtual methods (framework methods to be implemented: design pattern "framwork" with "template methods")
00080         virtual void UpdateModel(int nParticle) = 0;
00081         virtual void PredictNewBases(float fSigmaFactor) = 0;
00082         virtual double CalculateProbability(bool bSeparateCall = true) = 0;
00083         virtual void CalculateFinalProbabilities() { }
00084         
00085 
00086         // protected attributes
00087         float *mean_configuration;
00088         float *last_configuration;
00089 
00090         float *sigma;
00091         float *lower_limit;
00092         float *upper_limit;
00093 
00094         // particle related attributes
00095         int m_nDimension;
00096         int m_nParticles;
00097         double c_total;
00098         float **s;
00099         float **s_temp;
00100         double *c;
00101         double *pi;
00102         float *temp;
00103 };
00104 
00105 
00106 
00107 #endif /* __PARTICLE_FILTER_FRAMEWORK_FLOAT_H__ */


asr_ivt
Author(s): Allgeyer Tobias, Hutmacher Robin, Kleinert Daniel, Meißner Pascal, Scholz Jonas, Stöckle Patrick
autogenerated on Thu Jun 6 2019 21:46:57