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

📄 newmat.h

📁 国外一个大牛人写的MEAN-SHIFT目标跟踪算法
💻 H
📖 第 1 页 / 共 5 页
字号:
   void Solver(MatrixColX&, const MatrixColX&);   LogAndSign LogDeterminant() const;   Real Trace() const;   void GetRow(MatrixRowCol&);   void GetCol(MatrixRowCol&);   void GetCol(MatrixColX&);   void RestoreCol(MatrixRowCol&);   void RestoreCol(MatrixColX& c) { RestoreCol((MatrixRowCol&)c); }   void NextRow(MatrixRowCol&);   void ReSize(int);                       // change dimensions   void ReSize(const GeneralMatrix& A);   NEW_DELETE(UpperTriangularMatrix)};class LowerTriangularMatrix : public GeneralMatrix{   GeneralMatrix* Image() const;                // copy of matrixpublic:   LowerTriangularMatrix() {}   ~LowerTriangularMatrix() {}   LowerTriangularMatrix(ArrayLengthSpecifier);   LowerTriangularMatrix(const LowerTriangularMatrix& gm) { GetMatrix(&gm); }   Real operator()(int, int) const;             // access element   LowerTriangularMatrix(const BaseMatrix& M);   void operator=(const BaseMatrix&);   void operator=(Real f) { GeneralMatrix::operator=(f); }   void operator=(const LowerTriangularMatrix& 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;   GeneralMatrix* MakeSolver() { return this; } // for solving   void Solver(MatrixColX&, const MatrixColX&);   LogAndSign LogDeterminant() const;   Real Trace() const;   void GetRow(MatrixRowCol&);   void GetCol(MatrixRowCol&);   void GetCol(MatrixColX&);   void RestoreCol(MatrixRowCol&);   void RestoreCol(MatrixColX& c) { RestoreCol((MatrixRowCol&)c); }   void NextRow(MatrixRowCol&);   void ReSize(int);                       // change dimensions   void ReSize(const GeneralMatrix& A);   NEW_DELETE(LowerTriangularMatrix)};class DiagonalMatrix : public GeneralMatrix{   GeneralMatrix* Image() const;                // copy of matrixpublic:   DiagonalMatrix() {}   ~DiagonalMatrix() {}   DiagonalMatrix(ArrayLengthSpecifier);   DiagonalMatrix(const BaseMatrix&);   DiagonalMatrix(const DiagonalMatrix& gm) { GetMatrix(&gm); }   Real operator()(int, int) const;             // access element   Real operator()(int) const;   void operator=(const BaseMatrix&);   void operator=(Real f) { GeneralMatrix::operator=(f); }   void operator=(const DiagonalMatrix& m) { operator=((const BaseMatrix&)m); }   Real& operator()(int, int);                  // access element   Real& operator()(int);                       // access element   Real& element(int, int);                     // access element   Real& element(int);                          // access element#ifdef SETUP_C_SUBSCRIPTS   Real& operator[](int m) { return store[m]; }   const Real& operator[](int m) const { return store[m]; }#endif   MatrixType Type() const;   LogAndSign LogDeterminant() const;   Real Trace() const;   void GetRow(MatrixRowCol&);   void GetCol(MatrixRowCol&);   void GetCol(MatrixColX&);   void NextRow(MatrixRowCol&);   void NextCol(MatrixRowCol&);   void NextCol(MatrixColX&);   GeneralMatrix* MakeSolver() { return this; } // for solving   void Solver(MatrixColX&, const MatrixColX&);   GeneralMatrix* Transpose(TransposedMatrix*, MatrixType);   void ReSize(int);                       // change dimensions   void ReSize(const GeneralMatrix& A);   Real* nric() const      { CheckStore(); return store-1; }         // for use by NRIC   MatrixBandWidth BandWidth() const;//   ReturnMatrix Reverse() const;                // reverse order of elements   NEW_DELETE(DiagonalMatrix)};class RowVector : public Matrix{   GeneralMatrix* Image() const;                // copy of matrixpublic:   RowVector() { nrows = 1; }   ~RowVector() {}   RowVector(ArrayLengthSpecifier n) : Matrix(1,n.Value()) {}   RowVector(const BaseMatrix&);   RowVector(const RowVector& gm) { GetMatrix(&gm); }   Real operator()(int) const;                  // access element   void operator=(const BaseMatrix&);   void operator=(Real f) { GeneralMatrix::operator=(f); }   void operator=(const RowVector& m) { operator=((const BaseMatrix&)m); }   Real& operator()(int);                       // access element   Real& element(int);                          // access element#ifdef SETUP_C_SUBSCRIPTS   Real& operator[](int m) { return store[m]; }   const Real& operator[](int m) const { return store[m]; }#endif   MatrixType Type() const;   void GetCol(MatrixRowCol&);   void GetCol(MatrixColX&);   void NextCol(MatrixRowCol&);   void NextCol(MatrixColX&);   void RestoreCol(MatrixRowCol&) {}   void RestoreCol(MatrixColX& c);   GeneralMatrix* Transpose(TransposedMatrix*, MatrixType);   void ReSize(int);                       // change dimensions   void ReSize(int,int);                   // in case access is matrix   void ReSize(const GeneralMatrix& A);   Real* nric() const      { CheckStore(); return store-1; }         // for use by NRIC   void CleanUp();                              // to clear store   // friend ReturnMatrix GetMatrixRow(Matrix& A, int row);   NEW_DELETE(RowVector)};class ColumnVector : public Matrix{   GeneralMatrix* Image() const;                // copy of matrixpublic:   ColumnVector() { ncols = 1; }   ~ColumnVector() {}   ColumnVector(ArrayLengthSpecifier n) : Matrix(n.Value(),1) {}   ColumnVector(const BaseMatrix&);   ColumnVector(const ColumnVector& gm) { GetMatrix(&gm); }   Real operator()(int) const;                  // access element   void operator=(const BaseMatrix&);   void operator=(Real f) { GeneralMatrix::operator=(f); }   void operator=(const ColumnVector& m) { operator=((const BaseMatrix&)m); }   Real& operator()(int);                       // access element   Real& element(int);                          // access element#ifdef SETUP_C_SUBSCRIPTS   Real& operator[](int m) { return store[m]; }   const Real& operator[](int m) const { return store[m]; }#endif   MatrixType Type() const;   GeneralMatrix* Transpose(TransposedMatrix*, MatrixType);   void ReSize(int);                       // change dimensions   void ReSize(int,int);                   // in case access is matrix   void ReSize(const GeneralMatrix& A);   Real* nric() const      { CheckStore(); return store-1; }         // for use by NRIC   void CleanUp();                              // to clear store//   ReturnMatrix Reverse() const;                // reverse order of elements   NEW_DELETE(ColumnVector)};class CroutMatrix : public GeneralMatrix        // for LU decomposition{   int* indx;   bool d;   bool sing;   void ludcmp();public:   CroutMatrix(const BaseMatrix&);   MatrixType Type() const;   void lubksb(Real*, int=0);   ~CroutMatrix();   GeneralMatrix* MakeSolver() { return this; } // for solving   LogAndSign LogDeterminant() const;   void Solver(MatrixColX&, const MatrixColX&);   void GetRow(MatrixRowCol&);   void GetCol(MatrixRowCol&);   void GetCol(MatrixColX& c) { GetCol((MatrixRowCol&)c); }   void operator=(const BaseMatrix&);   void operator=(const CroutMatrix& m) { operator=((const BaseMatrix&)m); }   void CleanUp();                                // to clear store   bool IsEqual(const GeneralMatrix&) const;   bool IsSingular() const { return sing; }   NEW_DELETE(CroutMatrix)};// ***************************** band matrices ***************************/class BandMatrix : public GeneralMatrix         // band matrix{   GeneralMatrix* Image() const;                // copy of matrixprotected:   void CornerClear() const;                    // set unused elements to zeropublic:   int lower, upper;                            // band widths   BandMatrix() { lower=0; upper=0; CornerClear(); }   ~BandMatrix() {}   BandMatrix(int n,int lb,int ub) { ReSize(n,lb,ub); CornerClear(); }                                                // standard declaration   BandMatrix(const BaseMatrix&);               // evaluate BaseMatrix   void operator=(const BaseMatrix&);   void operator=(Real f) { GeneralMatrix::operator=(f); }   void operator=(const BandMatrix& 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+(upper+lower)*m+lower; }   const Real* operator[](int m) const { return store+(upper+lower)*m+lower; }#endif   BandMatrix(const BandMatrix& gm) { GetMatrix(&gm); }   Real operator()(int, int) const;             // access element   LogAndSign LogDeterminant() const;   GeneralMatrix* MakeSolver();   Real Trace() const;   Real SumSquare() const { CornerClear(); return GeneralMatrix::SumSquare(); }   Real SumAbsoluteValue() const      { CornerClear(); return GeneralMatrix::SumAbsoluteValue(); }   Real Sum() const      { CornerClear(); return GeneralMatrix::Sum(); }   Real MaximumAbsoluteValue() const      { CornerClear(); return GeneralMatrix::MaximumAbsoluteValue(); }   Real MinimumAbsoluteValue() const      { int i, j; return GeneralMatrix::MinimumAbsoluteValue2(i, j); }   Real Maximum() const { int i, j; return GeneralMatrix::Maximum2(i, j); }   Real Minimum() const { int i, j; return GeneralMatrix::Minimum2(i, j); }   void GetRow(MatrixRowCol&);   void GetCol(MatrixRowCol&);   void GetCol(MatrixColX&);   void RestoreCol(MatrixRowCol&);   void RestoreCol(MatrixColX& c) { RestoreCol((MatrixRowCol&)c); }   void NextRow(MatrixRowCol&);   virtual void ReSize(int, int, int);             // change dimensions   void ReSize(const GeneralMatrix& A);   bool SameStorageType(const GeneralMatrix& A) const;   void ReSizeForAdd(const GeneralMatrix& A, const GeneralMatrix& B);   void ReSizeForSP(const GeneralMatrix& A, const GeneralMatrix& B);   MatrixBandWidth BandWidth() const;   void SetParameters(const GeneralMatrix*);   MatrixInput operator<<(Real);                // will give error   void operator<<(const Real* r);              // will give error      // the next is included because Zortech and Borland      // cannot find the copy in GeneralMatrix   void operator<<(const BaseMatrix& X) { GeneralMatrix::operator<<(X); }   NEW_DELETE(BandMatrix)};class UpperBandMatrix : public BandMatrix       // upper band matrix{   GeneralMatrix* Image() const;                // copy of matrixpublic:   UpperBandMatrix() {}   ~UpperBandMatrix() {}   UpperBandMatrix(int n, int ubw)              // standard declaration      : BandMatrix(n, 0, ubw) {}   UpperBandMatrix(const BaseMatrix&);          // evaluate BaseMatrix   void operator=(const BaseMatrix&);   void operator=(Real f) { GeneralMatrix::operator=(f); }   void operator=(const UpperBandMatrix& m)      { operator=((const BaseMatrix&)m); }   MatrixType Type() const;   UpperBandMatrix(const UpperBandMatrix& gm) { GetMatrix(&gm); }   GeneralMatrix* MakeSolver() { return this; }   void Solver(MatrixColX&, const MatrixColX&);   LogAndSign LogDeterminant() const;   void ReSize(int, int, int);             // change dimensions   void ReSize(int n,int ubw)              // change dimensions      { BandMatrix::ReSize(n,0,ubw); }   void ReSize(const GeneralMatrix& A) { BandMatrix::ReSize(A); }   Real& operator()(int, int);   Real& element(int, int);#ifdef SETUP_C_SUBSCRIPTS   Real* operator[](int m) { return store+upper*m; }   const Real* operator[](int m) const { return store+upper*m; }#endif   NEW_DELETE(UpperBandMatrix)};class LowerBandMatrix : public BandMatrix       // upper band matrix{   GeneralMatrix* Image() const;                // copy of matrixpublic:   LowerBandMatrix() {}   ~LowerBandMatrix() {}   LowerBandMatrix(int n, int lbw)              // standard declaration      : BandMatrix(n, lbw, 0) {}   LowerBandMatrix(const BaseMatrix&);          // evaluate BaseMatrix   void operator=(const BaseMatrix&);   void operator=(Real f) { GeneralMatrix::operator=(f); }   void operator=(const LowerBandMatrix& m)      { operator=((const BaseMatrix&)m); }   MatrixType Type() const;   LowerBandMatrix(const LowerBandMatrix& gm) { GetMatrix(&gm); }   GeneralMatrix* MakeSolver() { return this; }   void Solver(MatrixColX&, const MatrixColX&);   LogAndSign LogDeterminant() const;   void ReSize(int, int, int);             // change dimensions   void ReSize(int n,int lbw)             // change dimensions      { BandMatrix::ReSize(n,lbw,0); }   void ReSize(const GeneralMatrix& A) { BandMatrix::ReSize(A); }   Real& operator()(int, int);   Real& element(int, int);#ifdef SETUP_C_SUBSCRIPTS   Real* operator[](int m) { return store+lower*(m+1); }   const Real* operator[](int m) const { return store+lower*(m+1); }#endif   NEW_DELETE(LowerBandMatrix)};class SymmetricBandMatrix : public GeneralMatrix{   GeneralMatrix* Image() const;                // copy of matrix   void CornerClear() const;                    // set unused elements to zeropublic:   int lower;                                   // lower band width   SymmetricBandMatrix() { lower=0; CornerClear(); }   ~SymmetricBandMatrix() {}   SymmetricBandMatrix(int n, int lb) { ReSize(n,lb); CornerClear(); }   SymmetricBandMatrix(const BaseMatrix&);   void operator=(const BaseMatrix&);   void operator=(Real f) { GeneralMatrix::operator=(f); }   void operator=(const SymmetricBandMatrix& 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+lower*(m+1); }   const Real* operator[](int m) const { return store+lower*(m+1); }#endif   MatrixType Type() const;   SymmetricBandMatrix(const SymmetricBandMatrix& gm) { GetMatrix(&gm); }   Real operator()(int, int) const;             // access element   GeneralMatrix* MakeSolver();   Real SumSquare() const;   Real SumAbsoluteValue() const;   Real Sum() const;

⌨️ 快捷键说明

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