From 018aba7507f99c0e854b4cd0ca4ab54b270fb511 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Sat, 6 Nov 2010 22:10:21 +0000 Subject: [PATCH] a few small fixes in Matx operators --- .../core/include/opencv2/core/operations.hpp | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/modules/core/include/opencv2/core/operations.hpp b/modules/core/include/opencv2/core/operations.hpp index a0db6ce68..990e2e044 100644 --- a/modules/core/include/opencv2/core/operations.hpp +++ b/modules/core/include/opencv2/core/operations.hpp @@ -916,7 +916,7 @@ double norm(const Matx<_Tp, m, n>& M, int normType) { if( normType == NORM_INF ) { - T1 s = 0; + _Tp s = 0; for( int i = 0; i < m*n; i++ ) s = std::max(s, std::abs(M.val[i])); return s; @@ -924,7 +924,7 @@ double norm(const Matx<_Tp, m, n>& M, int normType) if( normType == NORM_L1 ) { - T1 s = 0; + _Tp s = 0; for( int i = 0; i < m*n; i++ ) s += std::abs(M.val[i]); return s; @@ -939,7 +939,7 @@ template static inline bool operator == (const Matx<_Tp, m, n>& a, const Matx<_Tp, m, n>& b) { for( int i = 0; i < m*n; i++ ) - if( a[i] != b[i] ) return false; + if( a.val[i] != b.val[i] ) return false; return true; } @@ -1047,7 +1047,7 @@ template inline Vec<_Tp, cn> Vec<_Tp, cn>::all(_Tp alpha) template inline Vec<_Tp, cn> Vec<_Tp, cn>::mul(const Vec<_Tp, cn>& v) const { Vec<_Tp, cn> w; - for( int i = 0; i < cn; i++ ) w.val[i] = saturate_cast<_Tp>(val[i]*v.val[i]); + for( int i = 0; i < cn; i++ ) w.val[i] = saturate_cast<_Tp>(this->val[i]*v.val[i]); return w; } @@ -1061,7 +1061,7 @@ template template inline Vec<_Tp, cn>::operator Vec() const { Vec v; - for( int i = 0; i < cn; i++ ) v.val[i] = saturate_cast(val[i]); + for( int i = 0; i < cn; i++ ) v.val[i] = saturate_cast(this->val[i]); return v; } @@ -1069,7 +1069,7 @@ template inline Vec<_Tp, cn>::operator CvScalar() const { CvScalar s = {{0,0,0,0}}; int i; - for( i = 0; i < std::min(cn, 4); i++ ) s.val[i] = val[i]; + for( i = 0; i < std::min(cn, 4); i++ ) s.val[i] = this->val[i]; for( ; i < 4; i++ ) s.val[i] = 0; return s; } @@ -1077,25 +1077,25 @@ template inline Vec<_Tp, cn>::operator CvScalar() const template inline const _Tp& Vec<_Tp, cn>::operator [](int i) const { CV_DbgAssert( (unsigned)i < (unsigned)cn ); - return val[i]; + return this->val[i]; } template inline _Tp& Vec<_Tp, cn>::operator [](int i) { CV_DbgAssert( (unsigned)i < (unsigned)cn ); - return val[i]; + return this->val[i]; } template inline const _Tp& Vec<_Tp, cn>::operator ()(int i) const { CV_DbgAssert( (unsigned)i < (unsigned)cn ); - return val[i]; + return this->val[i]; } template inline _Tp& Vec<_Tp, cn>::operator ()(int i) { CV_DbgAssert( (unsigned)i < (unsigned)cn ); - return val[i]; + return this->val[i]; } template static inline Vec<_Tp1, cn>& @@ -1241,14 +1241,14 @@ VecCommaInitializer<_Tp, cn> operator << (const Vec<_Tp, cn>& vec, _T2 val) template inline VecCommaInitializer<_Tp, cn>::VecCommaInitializer(Vec<_Tp, cn>* _vec) - : MatxCommaInitializer(_vec) + : MatxCommaInitializer<_Tp, cn, 1>(_vec) {} template template inline VecCommaInitializer<_Tp, cn>& VecCommaInitializer<_Tp, cn>::operator , (_T2 value) { - CV_DbgAssert( idx < cn ); - vec->val[idx++] = saturate_cast<_Tp>(value); + CV_DbgAssert( this->idx < cn ); + this->dst->val[this->idx++] = saturate_cast<_Tp>(value); return *this; } @@ -1256,7 +1256,7 @@ template inline Vec<_Tp, cn> VecCommaInitializer<_Tp, cn>::operator *() const { CV_DbgAssert( this->idx == cn ); - return *vec; + return *this->dst; } //////////////////////////////// Complex //////////////////////////////