pcaclass.h
来自「VC视频对象的跟踪提取原代码(vc视频监控源码)」· C头文件 代码 · 共 95 行
H
95 行
/* * PCAclass * * a class for carrying out Principal Component Analysis on * arbitrary data * * uses NagVector class as general data item */#ifndef __PCA_CLASS_H__#define __PCA_CLASS_H__#include <limits.h>#include <fstream>#include "NagMatrix.h"namespace ReadingPeopleTracker{class PCAclass{// added 24/10/95// minimum covariance entry threshold the covariance matrix to remove chance correlations static realno MIN_COV_ENTRY;public: unsigned int no_processed; unsigned int data_size; unsigned int max_n; NagMatrix covariance; NagMatrix change_covariance; NagVector mean; NagVector eigenvalues; // vector of eigenvalues NagMatrix eigenvectors; // matrix of eigenvectors NagVector weights; // set of weights NagVector noise_model;// constructors PCAclass (unsigned int size, unsigned int max = UINT_MAX); PCAclass (char *filename, unsigned int max = UINT_MAX);// data access functions realno get_eval(const unsigned int i) { return eigenvalues[data_size - i]; } realno *get_evec(const unsigned int i) { return &(eigenvectors[(data_size - i) * data_size]) ; } realno get_noise_model(const unsigned int i) { return noise_model[(data_size - i)]; } realno *cov(const unsigned int i, const unsigned int j) { return covariance.get(i,j); }// utility functions realno Hdot(const NagVector &v1, const NagVector &v2); void reset_n() { no_processed = 0; } void process_cov(const NagVector &new_data); void process_cov(const NagVector &new_data, const NagVector &new_change_data); void add_noise(const realno noise_var, unsigned int no_spline_pnts = 0); void get_noise_model(); void process_mean(NagVector &new_data); //void process_all(NagVector &new_data); // copy upper triangle of covariance matrix // into lower triangle void restore_covariance(); void get_evals(); void get_mode(unsigned int, realno, NagVector &result); void adjust_mode(unsigned int, realno, NagVector &result); void map_to_shape(unsigned int, NagVector &result, realno max_distance = 30); void map_to_model(unsigned int, NagVector &shape, NagVector &result); realno map_to_mode(unsigned int index, NagVector &shape);};ostream &operator<<(ostream&, PCAclass&);istream &operator>>(istream&, PCAclass&); } // namespace ReadingPeopleTracker#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?