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

📄 cvmat.hpp

📁 Simple ellipse fitting example on C++Builder6 + OpenCV1.0.
💻 HPP
📖 第 1 页 / 共 5 页
字号:
/* mat_add2 = mat_add1 * scalar */
inline _CvMAT_ADD_EX_ operator * ( const _CvMAT_ADD_& a, double alpha )
{   return _CvMAT_ADD_EX_( a.a, alpha, a.b, a.beta*alpha, 0 ); }

/* mat_add2 = scalar * mat_add1 */
inline _CvMAT_ADD_EX_ operator * ( double alpha, const _CvMAT_ADD_& a )
{   return _CvMAT_ADD_EX_( a.a, alpha, a.b, a.beta*alpha, 0 ); }

/* -mat_add_ex */
inline _CvMAT_ADD_EX_ operator - ( const _CvMAT_ADD_EX_& a )
{   return _CvMAT_ADD_EX_( a.a, -a.alpha, a.b, -a.beta, -a.gamma ); }


/*
* PART II. Matrix multiplication.
*/

/* mmul = mat1 * mat2 */
inline _CvMAT_MUL_ operator * ( const CvMAT& a, const CvMAT& b )
{   return _CvMAT_MUL_( &a, &b, 0 );    }

/* mmul = (mat1^t) * mat2 */
inline _CvMAT_MUL_ operator * ( const _CvMAT_T_& a, const CvMAT& b )
{   return _CvMAT_MUL_( &a.a, &b, a.alpha, 1 );   }

/* mmul = mat1 * (mat2^t) */
inline _CvMAT_MUL_ operator * ( const CvMAT& b, const _CvMAT_T_& a )
{   return _CvMAT_MUL_( &b, &a.a, a.alpha, 2 );  }

/* mmul = (mat1^t) * (mat2^t) */
inline _CvMAT_MUL_ operator * ( const _CvMAT_T_& a, const _CvMAT_T_& b )
{   return _CvMAT_MUL_( &a.a, &b.a, a.alpha*b.alpha, 3 );  }

/* mmul = mat_scaled1 * mat2 */
inline _CvMAT_MUL_ operator * ( const _CvMAT_SCALE_& a, const CvMAT& b )
{   return _CvMAT_MUL_( a.a, &b, a.alpha, 0 ); }

/* mmul = mat1 * mat_scaled2 */
inline _CvMAT_MUL_ operator * ( const CvMAT& b, const _CvMAT_SCALE_& a )
{   return _CvMAT_MUL_( &b, a.a, a.alpha, 0 ); }

/* mmul = (mat1^t) * mat_scaled1 */
inline _CvMAT_MUL_ operator * ( const _CvMAT_T_& a, const _CvMAT_SCALE_& b )
{   return _CvMAT_MUL_( &a.a, b.a, a.alpha*b.alpha, 1 ); }

/* mmul = mat_scaled1 * (mat2^t) */
inline _CvMAT_MUL_ operator * ( const _CvMAT_SCALE_& b, const _CvMAT_T_& a )
{   return _CvMAT_MUL_( b.a, &a.a, a.alpha*b.alpha, 2 ); }

/* mmul = mat_scaled1 * mat_scaled2 */
inline _CvMAT_MUL_ operator * ( const _CvMAT_SCALE_& a, const _CvMAT_SCALE_& b )
{   return _CvMAT_MUL_( a.a, b.a, a.alpha*b.alpha, 0 ); }

/* mmul2 = mmul1 * scalar */
inline _CvMAT_MUL_ operator * ( const _CvMAT_MUL_& a, double alpha )
{   return _CvMAT_MUL_( a.a, a.b, a.alpha*alpha, a.t_ab ); }

/* mmul2 = scalar * mmul1 */
inline _CvMAT_MUL_ operator * ( double alpha, const _CvMAT_MUL_& a )
{   return _CvMAT_MUL_( a.a, a.b, a.alpha*alpha, a.t_ab ); }

/* -mmul */
inline _CvMAT_MUL_ operator - ( const _CvMAT_MUL_& a )
{   return _CvMAT_MUL_( a.a, a.b, -a.alpha, a.t_ab ); }

/* mmuladd = mmul + mat */
inline _CvMAT_MUL_ADD_ operator + ( const _CvMAT_MUL_& a, const CvMAT& b )
{   return _CvMAT_MUL_ADD_( a.a, a.b, a.alpha, &b, 1, a.t_ab ); }

/* !!! Comment this off because of ambigous conversion error !!!
   mmuladd = mat + mmul */
/* inline _CvMAT_MUL_ADD_ operator + ( const CvMAT& b, const _CvMAT_MUL_& a )
{   return _CvMAT_MUL_ADD_( a.a, a.b, a.alpha, &b, 1, a.t_ab ); }*/

/* mmuladd = mmul - mat */
inline _CvMAT_MUL_ADD_ operator - ( const _CvMAT_MUL_& a, const CvMAT& b )
{   return _CvMAT_MUL_ADD_( a.a, a.b, a.alpha, &b, -1, a.t_ab ); }

/* !!! Comment this off because of ambigous conversion error !!!
   mmuladd = mat - mmul */
/*inline _CvMAT_MUL_ADD_ operator - ( const CvMAT& b, const _CvMAT_MUL_& a )
{   return _CvMAT_MUL_ADD_( a.a, a.b, -a.alpha, &b, 1, a.t_ab ); }*/

/* mmuladd = mmul + mat_scaled */
inline _CvMAT_MUL_ADD_ operator + ( const _CvMAT_MUL_& a, const _CvMAT_SCALE_& b )
{   return _CvMAT_MUL_ADD_( a.a, a.b, a.alpha, b.a, b.alpha, a.t_ab ); }

/* mmuladd = mat_scaled + mmul */
inline _CvMAT_MUL_ADD_ operator + ( const _CvMAT_SCALE_& b, const _CvMAT_MUL_& a )
{   return _CvMAT_MUL_ADD_( a.a, a.b, a.alpha, b.a, b.alpha, a.t_ab ); }

/* mmuladd = mmul - mat_scaled */
inline _CvMAT_MUL_ADD_ operator - ( const _CvMAT_MUL_& a, const _CvMAT_SCALE_& b )
{   return _CvMAT_MUL_ADD_( a.a, a.b, a.alpha, b.a, -b.alpha, a.t_ab ); }

/* mmuladd = mat_scaled - mmul */
inline _CvMAT_MUL_ADD_ operator - ( const _CvMAT_SCALE_& b, const _CvMAT_MUL_& a )
{   return _CvMAT_MUL_ADD_( a.a, a.b, -a.alpha, b.a, b.alpha, a.t_ab ); }

/* mmuladd = mmul + (mat^t) */
inline _CvMAT_MUL_ADD_ operator + ( const _CvMAT_MUL_& a, const _CvMAT_T_& b )
{   return _CvMAT_MUL_ADD_( a.a, a.b, a.alpha, &b.a, b.alpha, a.t_ab + 4 );  }

/* mmuladd = (mat^t) + mmul */
inline _CvMAT_MUL_ADD_ operator + ( const _CvMAT_T_& b, const _CvMAT_MUL_& a )
{   return _CvMAT_MUL_ADD_( a.a, a.b, a.alpha, &b.a, b.alpha, a.t_ab + 4 );  }

/* mmuladd = mmul - (mat^t) */
inline _CvMAT_MUL_ADD_ operator - ( const _CvMAT_MUL_& a, const _CvMAT_T_& b )
{   return _CvMAT_MUL_ADD_( a.a, a.b, a.alpha, &b.a, -b.alpha, a.t_ab + 4 );  }

/* mmuladd = (mat^t) - mmul */
inline _CvMAT_MUL_ADD_ operator - ( const _CvMAT_T_& b, const _CvMAT_MUL_& a )
{   return _CvMAT_MUL_ADD_( a.a, a.b, -a.alpha, &b.a, b.alpha, a.t_ab + 4 );  }


/* mmuladd = mat_scaled_shited * mat */
inline _CvMAT_MUL_ADD_ operator * ( const _CvMAT_SCALE_SHIFT_& a, const CvMAT& b )
{   return _CvMAT_MUL_ADD_( a.a, &b, a.alpha, &b, a.beta, 0 );  }

/* mmuladd = mat * mat_scaled_shited */
inline _CvMAT_MUL_ADD_ operator * ( const CvMAT& b, const _CvMAT_SCALE_SHIFT_& a )
{   return _CvMAT_MUL_ADD_( &b, a.a, a.alpha, &b, a.beta, 0 );  }

/* mmuladd = mat_scaled_shited * mat_scaled */
inline _CvMAT_MUL_ADD_ operator * ( const _CvMAT_SCALE_SHIFT_& a, const _CvMAT_SCALE_& b )
{   return _CvMAT_MUL_ADD_( a.a, b.a, a.alpha*b.alpha, b.a, a.beta*b.alpha, 0 );  }

/* mmuladd = mat_scaled * mat_scaled_shited */
inline _CvMAT_MUL_ADD_ operator * ( const _CvMAT_SCALE_& b, const _CvMAT_SCALE_SHIFT_& a )
{   return _CvMAT_MUL_ADD_( b.a, a.a, a.alpha*b.alpha, b.a, a.beta*b.alpha, 0 );  }

/* mmuladd = mat_scaled_shited * (mat^t) */
inline _CvMAT_MUL_ADD_ operator * ( const _CvMAT_SCALE_SHIFT_& a, const _CvMAT_T_& b )
{   return _CvMAT_MUL_ADD_( a.a, &b.a, a.alpha*b.alpha, &b.a, a.beta*b.alpha, 6 );  }

/* mmuladd = (mat^t) * mat_scaled_shited */
inline _CvMAT_MUL_ADD_ operator * ( const _CvMAT_T_& b, const _CvMAT_SCALE_SHIFT_& a )
{   return _CvMAT_MUL_ADD_( &b.a, a.a, a.alpha*b.alpha, &b.a, a.beta*b.alpha, 5 );  }

/* mmuladd2 = mmuladd1 * scalar */
inline _CvMAT_MUL_ADD_ operator * ( const _CvMAT_MUL_ADD_& a, double alpha )
{   return _CvMAT_MUL_ADD_( a.a, a.b, a.alpha*alpha, a.c, a.beta*alpha, a.t_abc ); }

/* mmuladd2 = scalar * mmuladd1 */
inline _CvMAT_MUL_ADD_ operator * ( double alpha, const _CvMAT_MUL_ADD_& a )
{   return _CvMAT_MUL_ADD_( a.a, a.b, a.alpha*alpha, a.c, a.beta*alpha, a.t_abc ); }

/* -mmuladd */
inline _CvMAT_MUL_ADD_ operator - ( const _CvMAT_MUL_ADD_& a )
{   return _CvMAT_MUL_ADD_( a.a, a.b, -a.alpha, a.c, -a.beta, a.t_abc ); }

/* inv(a)*b, i.e. solve a*x = b */
inline _CvMAT_SOLVE_ operator * ( const _CvMAT_INV_& a, const CvMAT& b )
{   return _CvMAT_SOLVE_( &a.a, &b, a.method );    }


/*
* PART III. Logical operations
*/
inline _CvMAT_NOT_ operator ~ ( const CvMAT& a )
{   return _CvMAT_NOT_(&a); }

inline _CvMAT_LOGIC_ operator & ( const CvMAT& a, const CvMAT& b )
{   return _CvMAT_LOGIC_( &a, &b, _CvMAT_LOGIC_::AND, 0 ); }

inline _CvMAT_LOGIC_ operator & ( const _CvMAT_NOT_& a, const CvMAT& b )
{   return _CvMAT_LOGIC_( a.a, &b, _CvMAT_LOGIC_::AND, 1 ); }

inline _CvMAT_LOGIC_ operator & ( const CvMAT& a, const _CvMAT_NOT_& b )
{   return _CvMAT_LOGIC_( &a, b.a, _CvMAT_LOGIC_::AND, 2 ); }

inline _CvMAT_LOGIC_ operator & ( const _CvMAT_NOT_& a, const _CvMAT_NOT_& b )
{   return _CvMAT_LOGIC_( a.a, b.a, _CvMAT_LOGIC_::AND, 3 ); }


inline _CvMAT_LOGIC_ operator | ( const CvMAT& a, const CvMAT& b )
{   return _CvMAT_LOGIC_( &a, &b, _CvMAT_LOGIC_::OR, 0 ); }

inline _CvMAT_LOGIC_ operator | ( const _CvMAT_NOT_& a, const CvMAT& b )
{   return _CvMAT_LOGIC_( a.a, &b, _CvMAT_LOGIC_::OR, 1 ); }

inline _CvMAT_LOGIC_ operator | ( const CvMAT& a, const _CvMAT_NOT_& b )
{   return _CvMAT_LOGIC_( &a, b.a, _CvMAT_LOGIC_::OR, 2 ); }

inline _CvMAT_LOGIC_ operator | ( const _CvMAT_NOT_& a, const _CvMAT_NOT_& b )
{   return _CvMAT_LOGIC_( a.a, b.a, _CvMAT_LOGIC_::OR, 3 ); }


inline _CvMAT_LOGIC_ operator ^ ( const CvMAT& a, const CvMAT& b )
{   return _CvMAT_LOGIC_( &a, &b, _CvMAT_LOGIC_::XOR, 0 ); }

inline _CvMAT_LOGIC_ operator ^ ( const _CvMAT_NOT_& a, const CvMAT& b )
{   return _CvMAT_LOGIC_( a.a, &b, _CvMAT_LOGIC_::XOR, 1 ); }

inline _CvMAT_LOGIC_ operator ^ ( const CvMAT& a, const _CvMAT_NOT_& b )
{   return _CvMAT_LOGIC_( &a, b.a, _CvMAT_LOGIC_::XOR, 2 ); }

inline _CvMAT_LOGIC_ operator ^ ( const _CvMAT_NOT_& a, const _CvMAT_NOT_& b )
{   return _CvMAT_LOGIC_( a.a, b.a, _CvMAT_LOGIC_::XOR, 3 ); }


inline _CvMAT_UN_LOGIC_ operator & ( const CvMAT& a, double alpha )
{   return _CvMAT_UN_LOGIC_( &a, alpha, _CvMAT_LOGIC_::AND, 0 ); }

inline _CvMAT_UN_LOGIC_ operator & ( double alpha, const CvMAT& a )
{   return _CvMAT_UN_LOGIC_( &a, alpha, _CvMAT_LOGIC_::AND, 0 ); }

inline _CvMAT_UN_LOGIC_ operator & ( const _CvMAT_NOT_& a, double alpha )
{   return _CvMAT_UN_LOGIC_( a.a, alpha, _CvMAT_LOGIC_::AND, 1 ); }

inline _CvMAT_UN_LOGIC_ operator & ( double alpha, const _CvMAT_NOT_& a )
{   return _CvMAT_UN_LOGIC_( a.a, alpha, _CvMAT_LOGIC_::AND, 1 ); }


inline _CvMAT_UN_LOGIC_ operator | ( const CvMAT& a, double alpha )
{   return _CvMAT_UN_LOGIC_( &a, alpha, _CvMAT_LOGIC_::OR, 0 ); }

inline _CvMAT_UN_LOGIC_ operator | ( double alpha, const CvMAT& a )
{   return _CvMAT_UN_LOGIC_( &a, alpha, _CvMAT_LOGIC_::OR, 0 ); }

inline _CvMAT_UN_LOGIC_ operator | ( const _CvMAT_NOT_& a, double alpha )
{   return _CvMAT_UN_LOGIC_( a.a, alpha, _CvMAT_LOGIC_::OR, 1 ); }

inline _CvMAT_UN_LOGIC_ operator | ( double alpha, const _CvMAT_NOT_& a )
{   return _CvMAT_UN_LOGIC_( a.a, alpha, _CvMAT_LOGIC_::OR, 1 ); }


inline _CvMAT_UN_LOGIC_ operator ^ ( const CvMAT& a, double alpha )
{   return _CvMAT_UN_LOGIC_( &a, alpha, _CvMAT_LOGIC_::XOR, 0 ); }

inline _CvMAT_UN_LOGIC_ operator ^ ( double alpha, const CvMAT& a )
{   return _CvMAT_UN_LOGIC_( &a, alpha, _CvMAT_LOGIC_::XOR, 0 ); }

inline _CvMAT_UN_LOGIC_ operator ^ ( const _CvMAT_NOT_& a, double alpha )
{   return _CvMAT_UN_LOGIC_( a.a, alpha, _CvMAT_LOGIC_::XOR, 1 ); }

inline _CvMAT_UN_LOGIC_ operator ^ ( double alpha, const _CvMAT_NOT_& a )
{   return _CvMAT_UN_LOGIC_( a.a, alpha, _CvMAT_LOGIC_::XOR, 1 ); }


/*
* PART IV. Comparison operations
*/
inline _CvMAT_CMP_ operator > ( const CvMAT& a, const CvMAT& b )
{   return _CvMAT_CMP_( &a, &b, CV_CMP_GT ); }

inline _CvMAT_CMP_ operator >= ( const CvMAT& a, const CvMAT& b )
{   return _CvMAT_CMP_( &a, &b, CV_CMP_GE ); }

inline _CvMAT_CMP_ operator < ( const CvMAT& a, const CvMAT& b )
{   return _CvMAT_CMP_( &a, &b, CV_CMP_LT ); }

inline _CvMAT_CMP_ operator <= ( const CvMAT& a, const CvMAT& b )
{   return _CvMAT_CMP_( &a, &b, CV_CMP_LE ); }

inline _CvMAT_CMP_ operator == ( const CvMAT& a, const CvMAT& b )
{   return _CvMAT_CMP_( &a, &b, CV_CMP_EQ ); }

inline _CvMAT_CMP_ operator != ( const CvMAT& a, const CvMAT& b )
{   return _CvMAT_CMP_( &a, &b, CV_CMP_NE ); }


inline _CvMAT_CMP_ operator > ( const CvMAT& a, double alpha )
{   return _CvMAT_CMP_( &a, alpha, CV_CMP_GT ); }

inline _CvMAT_CMP_ operator > ( double alpha, const CvMAT& a )
{   return _CvMAT_CMP_( &a, alpha, CV_CMP_LT ); }

inline _CvMAT_CMP_ operator >= ( const CvMAT& a, double alpha )
{   return _CvMAT_CMP_( &a, alpha, CV_CMP_GE ); }

inline _CvMAT_CMP_ operator >= ( double alpha, const CvMAT& a )
{   return _CvMAT_CMP_( &a, alpha, CV_CMP_LE ); }

inline _CvMAT_CMP_ operator < ( const CvMAT& a, double alpha )
{   return _CvMAT_CMP_( &a, alpha, CV_CMP_LT ); }

inline _CvMAT_CMP_ operator < ( double alpha, const CvMAT& a )
{   return _CvMAT_CMP_( &a, alpha, CV_CMP_GT ); }

inline _CvMAT_CMP_ operator <= ( const CvMAT& a, double alpha )
{   return _CvMAT_CMP_( &a, alpha, CV_CMP_LE ); }

inline _CvMAT_CMP_ operator <= ( double alpha, const CvMAT& a )
{   return _CvMAT_CMP_( &a, alpha, CV_CMP_GE ); }

inline _CvMAT_CMP_ operator == ( const CvMAT& a, double alpha )
{   return _CvMAT_CMP_( &a, alpha, CV_CMP_EQ ); }

inline _CvMAT_CMP_ operator == ( double alpha, const CvMAT& a )
{   return _CvMAT_CMP_( &a, alpha, CV_CMP_EQ ); }

inline _CvMAT_CMP_ operator != ( const CvMAT& a, double alpha )
{   return _CvMAT_CMP_( &a, alpha, CV_CMP_NE ); }

inline _CvMAT_CMP_ operator != ( double alpha, const CvMAT& a )
{   return _CvMAT_CMP_( &a, alpha, CV_CMP_NE ); }


/*
* PART V. Speedup for some augmented assignments to CvMAT
*/

inline CvMAT& CvMAT::operator += ( const _CvMAT_SCALE_& scale_mat )
{   return (*this = *this + scale_mat); }

inline CvMAT& CvMAT::operator += ( const _CvMAT_SCALE_SHIFT_& scale_mat )
{   return (*this = *this + scale_mat); }

inline CvMAT& CvMAT::operator += ( const _CvMAT_MUL_& mmul )
{   return (*this = mmul + *this);  }

inline CvMAT& CvMAT::operator -= ( const _CvMAT_SCALE_& scale_mat )
{   return (*this = *this - scale_mat);  }

inline CvMAT& CvMAT::operator -= ( const _CvMAT_SCALE_SHIFT_& scale_mat )
{   return (*this = *this - scale_mat);  }

inline CvMAT& CvMAT::operator -= ( const _CvMAT_MUL_& mmul )
{   return (*this = -mmul + *this);  }

inline CvMAT& CvMAT::operator *= ( const _CvMAT_SCALE_& scale_mat )
{   return (*this = *this * scale_mat);  }

inline CvMAT& CvMAT::operator *= ( const _CvMAT_SCALE_SHIFT_& scale_mat )
{   return (*this = *this * scale_mat);  }

/****************************************************************************************\
*                        misc. operations on temporary matrices (+,-,*)                  *
\****************************************************************************************/

/*
* the base proxy class implementation
*/

/* a.*b */
inline _CvMAT_DOT_OP_ _CvMAT_BASE_OP_::mul( const CvMAT& a ) const
{   return ((CvMAT)*this).mul(a);  }

/* a.*b*alpha */
inline _CvMAT_DOT_OP_ _CvMAT_BASE_OP_::mul( const _CvMAT_SCALE_& a ) const
{   return ((CvMAT)*this).mul(a);  }

/* a./b */
inline _CvMAT_DOT_OP_ _CvMAT_BASE_OP_::div( const CvMAT& a ) const
{   return ((CvMAT)*this).div(a);  }

/* a./(b*alpha) */
inline _CvMAT_DOT_OP_ _CvMAT_BASE_OP_::div( const _CvMAT_SCALE_& a ) const
{   return ((CvMAT)*this).div(a);  }

/* a.max(b) */
inline _CvMAT_DOT_OP_ _CvMAT_BASE_OP_::min( const CvMAT& a ) const
{   return ((CvMAT)*this).min(a);  }

/* a.min(b) */
inline _CvMAT_DOT_OP_ _CvMAT_BASE_OP_::max( const CvMAT& a ) const
{   return ((CvMAT)*this).max(a);  }

/* a.max(alpha) */
inline _CvMAT_DOT_OP_ _CvMAT_BASE_OP_::min( double alpha ) const
{   return ((CvMAT)*this).min(alpha);  }

/* a.min(alpha) */
inline _CvMAT_DOT_OP_ _CvMAT_BASE_OP_::max( double alpha ) const
{   return ((CvMAT)*this).max(alpha);  }


inline _CvMAT_INV_  _CvMAT_BASE_OP_::inv( int method ) const
{   return ((CvMAT)*this).inv(method);  }

inline _CvMAT_T_  _CvMAT_BASE_OP_::t() const
{   return ((CvMAT)*this).t();  }

inline _CvMAT_CVT_ _CvMAT_BASE_OP_::cvt( int newdepth, double scale, double shift ) const
{   return ((CvMAT)*this).cvt( newdepth, scale, shift ); }

inline CvMAT  _CvMAT_BASE_OP_::row( int r ) const
{   return CvMAT((CvMAT)*this, 0, r ); }

inline CvMAT  _CvMAT_BASE_OP_::rowrange( int row1, int row2 ) const
{   
    CvMAT m = (CvMAT)*this;
    assert( 0 <= row1 && row1 < row2 && row2 <= m.height );
    return CvMAT( m, cvRect( 0, row1, m.width, row2 - row1 ));
}

inline CvMAT  _CvMAT_BASE_OP_::col( int c ) const
{   return CvMAT( (CvMAT)*this, 1, c ); }

inline CvMAT  _CvMAT_BASE_OP_::colrange( int col1, int col2 ) const
{   
    CvMAT m = (CvMAT)*this;
    assert( 0 <= col1 && col1 < col2 && col2 <= m.width );
    return CvMAT( m, cvRect( col1, 0, col2 - col1, m.height ));
}

inline CvMAT  _CvMAT_BASE_OP_::rect( CvRect r ) const
{   return CvMAT( (CvMAT)*this, r ); }

inline CvMAT  _CvMAT_BASE_OP_::diag( int d ) const
{   return CvMAT( (CvMAT)*this, -1, d ); }

inline double _CvMAT_BASE_OP_::det() const
{   return ((CvMAT)*this).det(); }

inline double _CvMAT_BASE_OP_::norm( int norm_type ) const
{   return ((CvMAT)*this).norm( norm_type ); }

inline CvScalar _CvMAT_BASE_OP_::sum() const
{   return ((CvMAT)*this).sum(); }

inline double _CvMAT_BASE_OP_::min( CvPoint* minloc ) const
{   return ((CvMAT)*this).min( minloc ); }

inline double _CvMAT_BASE_OP_::max( CvPoint* maxloc ) const
{   return ((CvMAT)*this).max( maxloc ); }


/****************************************************************************************/
/*                              proxy classes implementation.                           */
/*                              part I. constructors             

⌨️ 快捷键说明

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