⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newmat.h

📁 国外一个大牛人写的MEAN-SHIFT目标跟踪算法
💻 H
📖 第 1 页 / 共 5 页
字号:
   virtual Real SumAbsoluteValue() const;   virtual Real Sum() const;   virtual Real MaximumAbsoluteValue() const;   virtual Real MaximumAbsoluteValue1(int& i) const;   virtual Real MaximumAbsoluteValue2(int& i, int& j) const;   virtual Real MinimumAbsoluteValue() const;   virtual Real MinimumAbsoluteValue1(int& i) const;   virtual Real MinimumAbsoluteValue2(int& i, int& j) const;   virtual Real Maximum() const;   virtual Real Maximum1(int& i) const;   virtual Real Maximum2(int& i, int& j) const;   virtual Real Minimum() const;   virtual Real Minimum1(int& i) const;   virtual Real Minimum2(int& i, int& j) const;   virtual Real Trace() const;   Real Norm1() const;   Real NormInfinity() const;   virtual MatrixBandWidth BandWidth() const;  // bandwidths of band matrix   virtual void CleanUp() {}                   // to clear store   void IEQND() const;                         // called by ineq. ops//   virtual ReturnMatrix Reverse() const;       // reverse order of elements//protected://   BaseMatrix() : t(this), i(this) {}   friend class GeneralMatrix;   friend class Matrix;   friend class nricMatrix;   friend class RowVector;   friend class ColumnVector;   friend class SymmetricMatrix;   friend class UpperTriangularMatrix;   friend class LowerTriangularMatrix;   friend class DiagonalMatrix;   friend class CroutMatrix;   friend class BandMatrix;   friend class LowerBandMatrix;   friend class UpperBandMatrix;   friend class SymmetricBandMatrix;   friend class AddedMatrix;   friend class MultipliedMatrix;   friend class SubtractedMatrix;   friend class SPMatrix;   friend class ConcatenatedMatrix;   friend class StackedMatrix;   friend class SolvedMatrix;   friend class ShiftedMatrix;   friend class NegShiftedMatrix;   friend class ScaledMatrix;   friend class TransposedMatrix;   friend class ReversedMatrix;   friend class NegatedMatrix;   friend class InvertedMatrix;   friend class RowedMatrix;   friend class ColedMatrix;   friend class DiagedMatrix;   friend class MatedMatrix;   friend class GetSubMatrix;   friend class ReturnMatrixX;   friend class LinearEquationSolver;   friend class GenericMatrix;   NEW_DELETE(BaseMatrix)};// ***************************** working classes **************************/class GeneralMatrix : public BaseMatrix         // declarable matrix types{   virtual GeneralMatrix* Image() const;        // copy of matrixprotected:   int tag;                                     // shows whether can reuse   int nrows, ncols;                            // dimensions   int storage;                                 // total store required   Real* store;                                 // point to store (0=not set)   GeneralMatrix();                             // initialise with no store   GeneralMatrix(ArrayLengthSpecifier);         // constructor getting store   void Add(GeneralMatrix*, Real);              // sum of GM and Real   void Add(Real);                              // add Real to this   void NegAdd(GeneralMatrix*, Real);           // Real - GM   void NegAdd(Real);                           // this = this - Real   void Multiply(GeneralMatrix*, Real);         // product of GM and Real   void Multiply(Real);                         // multiply this by Real   void Negate(GeneralMatrix*);                 // change sign   void Negate();                               // change sign   void ReverseElements();                      // internal reverse of elements   void ReverseElements(GeneralMatrix*);        // reverse order of elements   void operator=(Real);                        // set matrix to constant   Real* GetStore();                            // get store or copy   GeneralMatrix* BorrowStore(GeneralMatrix*, MatrixType);                                                // temporarily access store   void GetMatrix(const GeneralMatrix*);        // used by = and initialise   void Eq(const BaseMatrix&, MatrixType);      // used by =   void Eq(const BaseMatrix&, MatrixType, bool);// used by <<   void Eq2(const BaseMatrix&, MatrixType);     // cut down version of Eq   int search(const BaseMatrix*) const;   virtual GeneralMatrix* Transpose(TransposedMatrix*, MatrixType);   void CheckConversion(const BaseMatrix&);     // check conversion OK   void ReSize(int, int, int);                  // change dimensionspublic:   GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp);   virtual MatrixType Type() const = 0;         // type of a matrix   int Nrows() const { return nrows; }          // get dimensions   int Ncols() const { return ncols; }   int Storage() const { return storage; }   Real* Store() const { return store; }   virtual ~GeneralMatrix();                    // delete store if set   void tDelete();                              // delete if tag permits   bool reuse();                                // true if tag allows reuse   void Protect() { tag=-1; }                   // cannot delete or reuse   int Tag() const { return tag; }   bool IsZero() const;                         // test matrix has all zeros   void Release() { tag=1; }                    // del store after next use   void Release(int t) { tag=t; }               // del store after t accesses   void ReleaseAndDelete() { tag=0; }           // delete matrix after use   void operator<<(const Real*);                // assignment from an array   void operator<<(const BaseMatrix& X)      { Eq(X,this->Type(),true); }              // = without checking type   void Inject(const GeneralMatrix&);           // copy stored els only   void operator+=(const BaseMatrix&);   void operator-=(const BaseMatrix&);   void operator*=(const BaseMatrix&);   void operator|=(const BaseMatrix&);   void operator&=(const BaseMatrix&);   void operator+=(Real);   void operator-=(Real r) { operator+=(-r); }   void operator*=(Real);   void operator/=(Real r) { operator*=(1.0/r); }   virtual GeneralMatrix* MakeSolver();         // for solving   virtual void Solver(MatrixColX&, const MatrixColX&) {}   virtual void GetRow(MatrixRowCol&) = 0;      // Get matrix row   virtual void RestoreRow(MatrixRowCol&) {}    // Restore matrix row   virtual void NextRow(MatrixRowCol&);         // Go to next row   virtual void GetCol(MatrixRowCol&) = 0;      // Get matrix col   virtual void GetCol(MatrixColX&) = 0;        // Get matrix col   virtual void RestoreCol(MatrixRowCol&) {}    // Restore matrix col   virtual void RestoreCol(MatrixColX&) {}      // Restore matrix col   virtual void NextCol(MatrixRowCol&);         // Go to next col   virtual void NextCol(MatrixColX&);           // Go to next col   Real SumSquare() const;   Real SumAbsoluteValue() const;   Real Sum() const;   Real MaximumAbsoluteValue1(int& i) const;   Real MinimumAbsoluteValue1(int& i) const;   Real Maximum1(int& i) const;   Real Minimum1(int& i) const;   Real MaximumAbsoluteValue() const;   Real MaximumAbsoluteValue2(int& i, int& j) const;   Real MinimumAbsoluteValue() const;   Real MinimumAbsoluteValue2(int& i, int& j) const;   Real Maximum() const;   Real Maximum2(int& i, int& j) const;   Real Minimum() const;   Real Minimum2(int& i, int& j) const;   LogAndSign LogDeterminant() const;   virtual bool IsEqual(const GeneralMatrix&) const;                                                // same type, same values   void CheckStore() const;                     // check store is non-zero   virtual void SetParameters(const GeneralMatrix*) {}                                                // set parameters in GetMatrix   operator ReturnMatrix() const;               // for building a ReturnMatrix   ReturnMatrix ForReturn() const;   virtual bool SameStorageType(const GeneralMatrix& A) const;   virtual void ReSizeForAdd(const GeneralMatrix& A, const GeneralMatrix& B);   virtual void ReSizeForSP(const GeneralMatrix& A, const GeneralMatrix& B);   virtual void ReSize(const GeneralMatrix& A);   MatrixInput operator<<(Real);                // for loading a list//   ReturnMatrix Reverse() const;                // reverse order of elements   void CleanUp();                              // to clear store   friend class Matrix;   friend class nricMatrix;   friend class SymmetricMatrix;   friend class UpperTriangularMatrix;   friend class LowerTriangularMatrix;   friend class DiagonalMatrix;   friend class CroutMatrix;   friend class RowVector;   friend class ColumnVector;   friend class BandMatrix;   friend class LowerBandMatrix;   friend class UpperBandMatrix;   friend class SymmetricBandMatrix;   friend class BaseMatrix;   friend class AddedMatrix;   friend class MultipliedMatrix;   friend class SubtractedMatrix;   friend class SPMatrix;   friend class ConcatenatedMatrix;   friend class StackedMatrix;   friend class SolvedMatrix;   friend class ShiftedMatrix;   friend class NegShiftedMatrix;   friend class ScaledMatrix;   friend class TransposedMatrix;   friend class ReversedMatrix;   friend class NegatedMatrix;   friend class InvertedMatrix;   friend class RowedMatrix;   friend class ColedMatrix;   friend class DiagedMatrix;   friend class MatedMatrix;   friend class GetSubMatrix;   friend class ReturnMatrixX;   friend class LinearEquationSolver;   friend class GenericMatrix;   NEW_DELETE(GeneralMatrix)};class Matrix : public GeneralMatrix             // usual rectangular matrix{   GeneralMatrix* Image() const;                // copy of matrixpublic:   Matrix() {}   ~Matrix() {}   Matrix(int, int);                            // standard declaration   Matrix(const BaseMatrix&);                   // evaluate BaseMatrix   void operator=(const BaseMatrix&);   void operator=(Real f) { GeneralMatrix::operator=(f); }   void operator=(const Matrix& m) { operator=((const BaseMatrix&)m); }   MatrixType Type() const;   Real& operator()(int, int);                  // access element   Real& element(int, int);                     // access element#ifdef SETUP_C_SUBSCRIPTS   Real* operator[](int m) { return store+m*ncols; }   const Real* operator[](int m) const { return store+m*ncols; }#endif   Matrix(const Matrix& gm) { GetMatrix(&gm); }   Real operator()(int, int) const;             // access element   GeneralMatrix* MakeSolver();   Real Trace() const;   void GetRow(MatrixRowCol&);   void GetCol(MatrixRowCol&);   void GetCol(MatrixColX&);   void RestoreCol(MatrixRowCol&);   void RestoreCol(MatrixColX&);   void NextRow(MatrixRowCol&);   void NextCol(MatrixRowCol&);   void NextCol(MatrixColX&);   virtual void ReSize(int,int);           // change dimensions      // virtual so we will catch it being used in a vector called as a matrix   void ReSize(const GeneralMatrix& A);   Real MaximumAbsoluteValue2(int& i, int& j) const;   Real MinimumAbsoluteValue2(int& i, int& j) const;   Real Maximum2(int& i, int& j) const;   Real Minimum2(int& i, int& j) const;   friend Real DotProduct(const Matrix& A, const Matrix& B);   NEW_DELETE(Matrix)};class nricMatrix : public Matrix                // for use with Numerical                                                // Recipes in C{   GeneralMatrix* Image() const;                // copy of matrix   Real** row_pointer;                          // points to rows   void MakeRowPointer();                       // build rowpointer   void DeleteRowPointer();public:   nricMatrix() {}   nricMatrix(int m, int n)                     // standard declaration      :  Matrix(m,n) { MakeRowPointer(); }   nricMatrix(const BaseMatrix& bm)             // evaluate BaseMatrix      :  Matrix(bm) { MakeRowPointer(); }   void operator=(const BaseMatrix& bm)      { DeleteRowPointer(); Matrix::operator=(bm); MakeRowPointer(); }   void operator=(Real f) { GeneralMatrix::operator=(f); }   void operator=(const nricMatrix& m) { operator=((const BaseMatrix&)m); }   void operator<<(const BaseMatrix& X)      { DeleteRowPointer(); Eq(X,this->Type(),true); MakeRowPointer(); }   nricMatrix(const nricMatrix& gm) { GetMatrix(&gm); MakeRowPointer(); }   void ReSize(int m, int n)               // change dimensions      { DeleteRowPointer(); Matrix::ReSize(m,n); MakeRowPointer(); }   void ReSize(const GeneralMatrix& A);   ~nricMatrix() { DeleteRowPointer(); }   Real** nric() const { CheckStore(); return row_pointer-1; }   void CleanUp();                                // to clear store   NEW_DELETE(nricMatrix)};class SymmetricMatrix : public GeneralMatrix{   GeneralMatrix* Image() const;                // copy of matrixpublic:   SymmetricMatrix() {}   ~SymmetricMatrix() {}   SymmetricMatrix(ArrayLengthSpecifier);   SymmetricMatrix(const BaseMatrix&);   void operator=(const BaseMatrix&);   void operator=(Real f) { GeneralMatrix::operator=(f); }   void operator=(const SymmetricMatrix& m) { operator=((const BaseMatrix&)m); }   Real& operator()(int, int);                  // access element   Real& element(int, int);                     // access element#ifdef SETUP_C_SUBSCRIPTS   Real* operator[](int m) { return store+(m*(m+1))/2; }   const Real* operator[](int m) const { return store+(m*(m+1))/2; }#endif   MatrixType Type() const;   SymmetricMatrix(const SymmetricMatrix& gm) { GetMatrix(&gm); }   Real operator()(int, int) const;             // access element   Real SumSquare() const;   Real SumAbsoluteValue() const;   Real Sum() const;   Real Trace() const;   void GetRow(MatrixRowCol&);   void GetCol(MatrixRowCol&);   void GetCol(MatrixColX&);   void RestoreCol(MatrixRowCol&) {}   void RestoreCol(MatrixColX&);	GeneralMatrix* Transpose(TransposedMatrix*, MatrixType);   void ReSize(int);                       // change dimensions   void ReSize(const GeneralMatrix& A);   NEW_DELETE(SymmetricMatrix)};class UpperTriangularMatrix : public GeneralMatrix{   GeneralMatrix* Image() const;                // copy of matrixpublic:   UpperTriangularMatrix() {}   ~UpperTriangularMatrix() {}   UpperTriangularMatrix(ArrayLengthSpecifier);   void operator=(const BaseMatrix&);   void operator=(const UpperTriangularMatrix& m)      { operator=((const BaseMatrix&)m); }   UpperTriangularMatrix(const BaseMatrix&);   UpperTriangularMatrix(const UpperTriangularMatrix& gm) { GetMatrix(&gm); }   Real operator()(int, int) const;             // access element   void operator=(Real f) { GeneralMatrix::operator=(f); }   Real& operator()(int, int);                  // access element   Real& element(int, int);                     // access element#ifdef SETUP_C_SUBSCRIPTS   Real* operator[](int m) { return store+m*ncols-(m*(m+1))/2; }   const Real* operator[](int m) const { return store+m*ncols-(m*(m+1))/2; }#endif   MatrixType Type() const;   GeneralMatrix* MakeSolver() { return this; } // for solving

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -