Commit c562f0ad authored by Valeriy Van's avatar Valeriy Van

Minor fix in MatAllocator::download

Minor fix in MatAllocator::upload
Minor fix in MatAllocator::copy
Minor fix in setSize function
Minor fix in Mat::Mat
Minor fix in cvMatNDToMat function
Minor fix in _InputArray::getMatVector
Minor fix in _InputArray::getUMatVector
Minor fix in cv::hconcat
Minor fix in cv::vconcat
Minor fix in cv::setIdentity
Minor fix in cv::trace
Minor fix in transposeI_ template function
Minor fix in reduceC_ template function
Minor fix in sort_ template function
Minor fix in sortIdx_ template function
Minor fix in cvRange function
Minor fix in MatConstIterator::seek
Minor fix in SparseMat::create
Minor fix in SparseMat::copyTo
Minor fix in SparseMat::convertTo
Minor fix in SparseMat::convertTo
Minor fix in SparseMat::ptr
Minor fix in SparseMat::resizeHashTab
Fixes indentation
parent 48af5e55
...@@ -89,9 +89,9 @@ void MatAllocator::download(UMatData* u, void* dstptr, ...@@ -89,9 +89,9 @@ void MatAllocator::download(UMatData* u, void* dstptr,
const Mat* arrays[] = { &src, &dst }; const Mat* arrays[] = { &src, &dst };
uchar* ptrs[2]; uchar* ptrs[2];
NAryMatIterator it(arrays, ptrs, 2); NAryMatIterator it(arrays, ptrs, 2);
size_t j, planesz = it.size; size_t planesz = it.size;
for( j = 0; j < it.nplanes; j++, ++it ) for( size_t j = 0; j < it.nplanes; j++, ++it )
memcpy(ptrs[1], ptrs[0], planesz); memcpy(ptrs[1], ptrs[0], planesz);
} }
...@@ -120,9 +120,9 @@ void MatAllocator::upload(UMatData* u, const void* srcptr, int dims, const size_ ...@@ -120,9 +120,9 @@ void MatAllocator::upload(UMatData* u, const void* srcptr, int dims, const size_
const Mat* arrays[] = { &src, &dst }; const Mat* arrays[] = { &src, &dst };
uchar* ptrs[2]; uchar* ptrs[2];
NAryMatIterator it(arrays, ptrs, 2); NAryMatIterator it(arrays, ptrs, 2);
size_t j, planesz = it.size; size_t planesz = it.size;
for( j = 0; j < it.nplanes; j++, ++it ) for( size_t j = 0; j < it.nplanes; j++, ++it )
memcpy(ptrs[1], ptrs[0], planesz); memcpy(ptrs[1], ptrs[0], planesz);
} }
...@@ -155,9 +155,9 @@ void MatAllocator::copy(UMatData* usrc, UMatData* udst, int dims, const size_t s ...@@ -155,9 +155,9 @@ void MatAllocator::copy(UMatData* usrc, UMatData* udst, int dims, const size_t s
const Mat* arrays[] = { &src, &dst }; const Mat* arrays[] = { &src, &dst };
uchar* ptrs[2]; uchar* ptrs[2];
NAryMatIterator it(arrays, ptrs, 2); NAryMatIterator it(arrays, ptrs, 2);
size_t j, planesz = it.size; size_t planesz = it.size;
for( j = 0; j < it.nplanes; j++, ++it ) for( size_t j = 0; j < it.nplanes; j++, ++it )
memcpy(ptrs[1], ptrs[0], planesz); memcpy(ptrs[1], ptrs[0], planesz);
} }
...@@ -301,8 +301,7 @@ static inline void setSize( Mat& m, int _dims, const int* _sz, ...@@ -301,8 +301,7 @@ static inline void setSize( Mat& m, int _dims, const int* _sz,
return; return;
size_t esz = CV_ELEM_SIZE(m.flags), esz1 = CV_ELEM_SIZE1(m.flags), total = esz; size_t esz = CV_ELEM_SIZE(m.flags), esz1 = CV_ELEM_SIZE1(m.flags), total = esz;
int i; for( int i = _dims-1; i >= 0; i-- )
for( i = _dims-1; i >= 0; i-- )
{ {
int s = _sz[i]; int s = _sz[i];
CV_Assert( s >= 0 ); CV_Assert( s >= 0 );
...@@ -546,16 +545,16 @@ Mat::Mat(const Mat& m, const Range* ranges) ...@@ -546,16 +545,16 @@ Mat::Mat(const Mat& m, const Range* ranges)
: flags(MAGIC_VAL), dims(0), rows(0), cols(0), data(0), datastart(0), dataend(0), : flags(MAGIC_VAL), dims(0), rows(0), cols(0), data(0), datastart(0), dataend(0),
datalimit(0), allocator(0), u(0), size(&rows) datalimit(0), allocator(0), u(0), size(&rows)
{ {
int i, d = m.dims; int d = m.dims;
CV_Assert(ranges); CV_Assert(ranges);
for( i = 0; i < d; i++ ) for( int i = 0; i < d; i++ )
{ {
Range r = ranges[i]; Range r = ranges[i];
CV_Assert( r == Range::all() || (0 <= r.start && r.start < r.end && r.end <= m.size[i]) ); CV_Assert( r == Range::all() || (0 <= r.start && r.start < r.end && r.end <= m.size[i]) );
} }
*this = m; *this = m;
for( i = 0; i < d; i++ ) for( int i = 0; i < d; i++ )
{ {
Range r = ranges[i]; Range r = ranges[i];
if( r != Range::all() && r != Range(0, size.p[i])) if( r != Range::all() && r != Range(0, size.p[i]))
...@@ -580,8 +579,8 @@ static Mat cvMatNDToMat(const CvMatND* m, bool copyData) ...@@ -580,8 +579,8 @@ static Mat cvMatNDToMat(const CvMatND* m, bool copyData)
int _sizes[CV_MAX_DIM]; int _sizes[CV_MAX_DIM];
size_t _steps[CV_MAX_DIM]; size_t _steps[CV_MAX_DIM];
int i, d = m->dims; int d = m->dims;
for( i = 0; i < d; i++ ) for( int i = 0; i < d; i++ )
{ {
_sizes[i] = m->dim[i].size; _sizes[i] = m->dim[i].size;
_steps[i] = m->dim[i].step; _steps[i] = m->dim[i].step;
...@@ -1290,10 +1289,10 @@ void _InputArray::getMatVector(std::vector<Mat>& mv) const ...@@ -1290,10 +1289,10 @@ void _InputArray::getMatVector(std::vector<Mat>& mv) const
if( k == MAT ) if( k == MAT )
{ {
const Mat& m = *(const Mat*)obj; const Mat& m = *(const Mat*)obj;
int i, n = (int)m.size[0]; int n = (int)m.size[0];
mv.resize(n); mv.resize(n);
for( i = 0; i < n; i++ ) for( int i = 0; i < n; i++ )
mv[i] = m.dims == 2 ? Mat(1, m.cols, m.type(), (void*)m.ptr(i)) : mv[i] = m.dims == 2 ? Mat(1, m.cols, m.type(), (void*)m.ptr(i)) :
Mat(m.dims-1, &m.size[1], m.type(), (void*)m.ptr(i), &m.step[1]); Mat(m.dims-1, &m.size[1], m.type(), (void*)m.ptr(i), &m.step[1]);
return; return;
...@@ -1302,20 +1301,20 @@ void _InputArray::getMatVector(std::vector<Mat>& mv) const ...@@ -1302,20 +1301,20 @@ void _InputArray::getMatVector(std::vector<Mat>& mv) const
if( k == EXPR ) if( k == EXPR )
{ {
Mat m = *(const MatExpr*)obj; Mat m = *(const MatExpr*)obj;
int i, n = m.size[0]; int n = m.size[0];
mv.resize(n); mv.resize(n);
for( i = 0; i < n; i++ ) for( int i = 0; i < n; i++ )
mv[i] = m.row(i); mv[i] = m.row(i);
return; return;
} }
if( k == MATX ) if( k == MATX )
{ {
size_t i, n = sz.height, esz = CV_ELEM_SIZE(flags); size_t n = sz.height, esz = CV_ELEM_SIZE(flags);
mv.resize(n); mv.resize(n);
for( i = 0; i < n; i++ ) for( size_t i = 0; i < n; i++ )
mv[i] = Mat(1, sz.width, CV_MAT_TYPE(flags), (uchar*)obj + esz*sz.width*i); mv[i] = Mat(1, sz.width, CV_MAT_TYPE(flags), (uchar*)obj + esz*sz.width*i);
return; return;
} }
...@@ -1324,11 +1323,11 @@ void _InputArray::getMatVector(std::vector<Mat>& mv) const ...@@ -1324,11 +1323,11 @@ void _InputArray::getMatVector(std::vector<Mat>& mv) const
{ {
const std::vector<uchar>& v = *(const std::vector<uchar>*)obj; const std::vector<uchar>& v = *(const std::vector<uchar>*)obj;
size_t i, n = v.size(), esz = CV_ELEM_SIZE(flags); size_t n = v.size(), esz = CV_ELEM_SIZE(flags);
int t = CV_MAT_DEPTH(flags), cn = CV_MAT_CN(flags); int t = CV_MAT_DEPTH(flags), cn = CV_MAT_CN(flags);
mv.resize(n); mv.resize(n);
for( i = 0; i < n; i++ ) for( size_t i = 0; i < n; i++ )
mv[i] = Mat(1, cn, t, (void*)(&v[0] + esz*i)); mv[i] = Mat(1, cn, t, (void*)(&v[0] + esz*i));
return; return;
} }
...@@ -1342,11 +1341,11 @@ void _InputArray::getMatVector(std::vector<Mat>& mv) const ...@@ -1342,11 +1341,11 @@ void _InputArray::getMatVector(std::vector<Mat>& mv) const
if( k == STD_VECTOR_VECTOR ) if( k == STD_VECTOR_VECTOR )
{ {
const std::vector<std::vector<uchar> >& vv = *(const std::vector<std::vector<uchar> >*)obj; const std::vector<std::vector<uchar> >& vv = *(const std::vector<std::vector<uchar> >*)obj;
int i, n = (int)vv.size(); int n = (int)vv.size();
int t = CV_MAT_TYPE(flags); int t = CV_MAT_TYPE(flags);
mv.resize(n); mv.resize(n);
for( i = 0; i < n; i++ ) for( int i = 0; i < n; i++ )
{ {
const std::vector<uchar>& v = vv[i]; const std::vector<uchar>& v = vv[i];
mv[i] = Mat(size(i), t, (void*)&v[0]); mv[i] = Mat(size(i), t, (void*)&v[0]);
...@@ -1357,10 +1356,10 @@ void _InputArray::getMatVector(std::vector<Mat>& mv) const ...@@ -1357,10 +1356,10 @@ void _InputArray::getMatVector(std::vector<Mat>& mv) const
if( k == STD_VECTOR_MAT ) if( k == STD_VECTOR_MAT )
{ {
const std::vector<Mat>& v = *(const std::vector<Mat>*)obj; const std::vector<Mat>& v = *(const std::vector<Mat>*)obj;
size_t i, n = v.size(); size_t n = v.size();
mv.resize(n); mv.resize(n);
for( i = 0; i < n; i++ ) for( size_t i = 0; i < n; i++ )
mv[i] = v[i]; mv[i] = v[i];
return; return;
} }
...@@ -1368,10 +1367,10 @@ void _InputArray::getMatVector(std::vector<Mat>& mv) const ...@@ -1368,10 +1367,10 @@ void _InputArray::getMatVector(std::vector<Mat>& mv) const
if( k == STD_VECTOR_UMAT ) if( k == STD_VECTOR_UMAT )
{ {
const std::vector<UMat>& v = *(const std::vector<UMat>*)obj; const std::vector<UMat>& v = *(const std::vector<UMat>*)obj;
size_t i, n = v.size(); size_t n = v.size();
mv.resize(n); mv.resize(n);
for( i = 0; i < n; i++ ) for( size_t i = 0; i < n; i++ )
mv[i] = v[i].getMat(accessFlags); mv[i] = v[i].getMat(accessFlags);
return; return;
} }
...@@ -1393,10 +1392,10 @@ void _InputArray::getUMatVector(std::vector<UMat>& umv) const ...@@ -1393,10 +1392,10 @@ void _InputArray::getUMatVector(std::vector<UMat>& umv) const
if( k == STD_VECTOR_MAT ) if( k == STD_VECTOR_MAT )
{ {
const std::vector<Mat>& v = *(const std::vector<Mat>*)obj; const std::vector<Mat>& v = *(const std::vector<Mat>*)obj;
size_t i, n = v.size(); size_t n = v.size();
umv.resize(n); umv.resize(n);
for( i = 0; i < n; i++ ) for( size_t i = 0; i < n; i++ )
umv[i] = v[i].getUMat(accessFlags); umv[i] = v[i].getUMat(accessFlags);
return; return;
} }
...@@ -1404,10 +1403,10 @@ void _InputArray::getUMatVector(std::vector<UMat>& umv) const ...@@ -1404,10 +1403,10 @@ void _InputArray::getUMatVector(std::vector<UMat>& umv) const
if( k == STD_VECTOR_UMAT ) if( k == STD_VECTOR_UMAT )
{ {
const std::vector<UMat>& v = *(const std::vector<UMat>*)obj; const std::vector<UMat>& v = *(const std::vector<UMat>*)obj;
size_t i, n = v.size(); size_t n = v.size();
umv.resize(n); umv.resize(n);
for( i = 0; i < n; i++ ) for( size_t i = 0; i < n; i++ )
umv[i] = v[i]; umv[i] = v[i];
return; return;
} }
...@@ -2818,8 +2817,7 @@ void cv::hconcat(const Mat* src, size_t nsrc, OutputArray _dst) ...@@ -2818,8 +2817,7 @@ void cv::hconcat(const Mat* src, size_t nsrc, OutputArray _dst)
} }
int totalCols = 0, cols = 0; int totalCols = 0, cols = 0;
size_t i; for( size_t i = 0; i < nsrc; i++ )
for( i = 0; i < nsrc; i++ )
{ {
CV_Assert( src[i].dims <= 2 && CV_Assert( src[i].dims <= 2 &&
src[i].rows == src[0].rows && src[i].rows == src[0].rows &&
...@@ -2828,7 +2826,7 @@ void cv::hconcat(const Mat* src, size_t nsrc, OutputArray _dst) ...@@ -2828,7 +2826,7 @@ void cv::hconcat(const Mat* src, size_t nsrc, OutputArray _dst)
} }
_dst.create( src[0].rows, totalCols, src[0].type()); _dst.create( src[0].rows, totalCols, src[0].type());
Mat dst = _dst.getMat(); Mat dst = _dst.getMat();
for( i = 0; i < nsrc; i++ ) for( size_t i = 0; i < nsrc; i++ )
{ {
Mat dpart = dst(Rect(cols, 0, src[i].cols, src[i].rows)); Mat dpart = dst(Rect(cols, 0, src[i].cols, src[i].rows));
src[i].copyTo(dpart); src[i].copyTo(dpart);
...@@ -2864,8 +2862,7 @@ void cv::vconcat(const Mat* src, size_t nsrc, OutputArray _dst) ...@@ -2864,8 +2862,7 @@ void cv::vconcat(const Mat* src, size_t nsrc, OutputArray _dst)
} }
int totalRows = 0, rows = 0; int totalRows = 0, rows = 0;
size_t i; for( size_t i = 0; i < nsrc; i++ )
for( i = 0; i < nsrc; i++ )
{ {
CV_Assert(src[i].dims <= 2 && CV_Assert(src[i].dims <= 2 &&
src[i].cols == src[0].cols && src[i].cols == src[0].cols &&
...@@ -2874,7 +2871,7 @@ void cv::vconcat(const Mat* src, size_t nsrc, OutputArray _dst) ...@@ -2874,7 +2871,7 @@ void cv::vconcat(const Mat* src, size_t nsrc, OutputArray _dst)
} }
_dst.create( totalRows, src[0].cols, src[0].type()); _dst.create( totalRows, src[0].cols, src[0].type());
Mat dst = _dst.getMat(); Mat dst = _dst.getMat();
for( i = 0; i < nsrc; i++ ) for( size_t i = 0; i < nsrc; i++ )
{ {
Mat dpart(dst, Rect(0, rows, src[i].cols, src[i].rows)); Mat dpart(dst, Rect(0, rows, src[i].cols, src[i].rows));
src[i].copyTo(dpart); src[i].copyTo(dpart);
...@@ -2951,7 +2948,7 @@ void cv::setIdentity( InputOutputArray _m, const Scalar& s ) ...@@ -2951,7 +2948,7 @@ void cv::setIdentity( InputOutputArray _m, const Scalar& s )
ocl_setIdentity(_m, s)) ocl_setIdentity(_m, s))
Mat m = _m.getMat(); Mat m = _m.getMat();
int i, j, rows = m.rows, cols = m.cols, type = m.type(); int rows = m.rows, cols = m.cols, type = m.type();
if( type == CV_32FC1 ) if( type == CV_32FC1 )
{ {
...@@ -2959,9 +2956,9 @@ void cv::setIdentity( InputOutputArray _m, const Scalar& s ) ...@@ -2959,9 +2956,9 @@ void cv::setIdentity( InputOutputArray _m, const Scalar& s )
float val = (float)s[0]; float val = (float)s[0];
size_t step = m.step/sizeof(data[0]); size_t step = m.step/sizeof(data[0]);
for( i = 0; i < rows; i++, data += step ) for( int i = 0; i < rows; i++, data += step )
{ {
for( j = 0; j < cols; j++ ) for( int j = 0; j < cols; j++ )
data[j] = 0; data[j] = 0;
if( i < cols ) if( i < cols )
data[i] = val; data[i] = val;
...@@ -2973,9 +2970,9 @@ void cv::setIdentity( InputOutputArray _m, const Scalar& s ) ...@@ -2973,9 +2970,9 @@ void cv::setIdentity( InputOutputArray _m, const Scalar& s )
double val = s[0]; double val = s[0];
size_t step = m.step/sizeof(data[0]); size_t step = m.step/sizeof(data[0]);
for( i = 0; i < rows; i++, data += step ) for( int i = 0; i < rows; i++, data += step )
{ {
for( j = 0; j < cols; j++ ) for( int j = 0; j < cols; j++ )
data[j] = j == i ? val : 0; data[j] = j == i ? val : 0;
} }
} }
...@@ -2994,7 +2991,7 @@ cv::Scalar cv::trace( InputArray _m ) ...@@ -2994,7 +2991,7 @@ cv::Scalar cv::trace( InputArray _m )
Mat m = _m.getMat(); Mat m = _m.getMat();
CV_Assert( m.dims <= 2 ); CV_Assert( m.dims <= 2 );
int i, type = m.type(); int type = m.type();
int nm = std::min(m.rows, m.cols); int nm = std::min(m.rows, m.cols);
if( type == CV_32FC1 ) if( type == CV_32FC1 )
...@@ -3002,7 +2999,7 @@ cv::Scalar cv::trace( InputArray _m ) ...@@ -3002,7 +2999,7 @@ cv::Scalar cv::trace( InputArray _m )
const float* ptr = m.ptr<float>(); const float* ptr = m.ptr<float>();
size_t step = m.step/sizeof(ptr[0]) + 1; size_t step = m.step/sizeof(ptr[0]) + 1;
double _s = 0; double _s = 0;
for( i = 0; i < nm; i++ ) for( int i = 0; i < nm; i++ )
_s += ptr[i*step]; _s += ptr[i*step];
return _s; return _s;
} }
...@@ -3012,7 +3009,7 @@ cv::Scalar cv::trace( InputArray _m ) ...@@ -3012,7 +3009,7 @@ cv::Scalar cv::trace( InputArray _m )
const double* ptr = m.ptr<double>(); const double* ptr = m.ptr<double>();
size_t step = m.step/sizeof(ptr[0]) + 1; size_t step = m.step/sizeof(ptr[0]) + 1;
double _s = 0; double _s = 0;
for( i = 0; i < nm; i++ ) for( int i = 0; i < nm; i++ )
_s += ptr[i*step]; _s += ptr[i*step];
return _s; return _s;
} }
...@@ -3084,12 +3081,11 @@ transpose_( const uchar* src, size_t sstep, uchar* dst, size_t dstep, Size sz ) ...@@ -3084,12 +3081,11 @@ transpose_( const uchar* src, size_t sstep, uchar* dst, size_t dstep, Size sz )
template<typename T> static void template<typename T> static void
transposeI_( uchar* data, size_t step, int n ) transposeI_( uchar* data, size_t step, int n )
{ {
int i, j; for( int i = 0; i < n; i++ )
for( i = 0; i < n; i++ )
{ {
T* row = (T*)(data + step*i); T* row = (T*)(data + step*i);
uchar* data1 = data + i*sizeof(T); uchar* data1 = data + i*sizeof(T);
for( j = i+1; j < n; j++ ) for( int j = i+1; j < n; j++ )
std::swap( row[j], *(T*)(data1 + step*j) ); std::swap( row[j], *(T*)(data1 + step*j) );
} }
} }
...@@ -3417,7 +3413,7 @@ reduceC_( const Mat& srcmat, Mat& dstmat ) ...@@ -3417,7 +3413,7 @@ reduceC_( const Mat& srcmat, Mat& dstmat )
{ {
typedef typename Op::rtype WT; typedef typename Op::rtype WT;
Size size = srcmat.size(); Size size = srcmat.size();
int i, k, cn = srcmat.channels(); int cn = srcmat.channels();
size.width *= cn; size.width *= cn;
Op op; Op op;
...@@ -3426,13 +3422,14 @@ reduceC_( const Mat& srcmat, Mat& dstmat ) ...@@ -3426,13 +3422,14 @@ reduceC_( const Mat& srcmat, Mat& dstmat )
const T* src = srcmat.ptr<T>(y); const T* src = srcmat.ptr<T>(y);
ST* dst = dstmat.ptr<ST>(y); ST* dst = dstmat.ptr<ST>(y);
if( size.width == cn ) if( size.width == cn )
for( k = 0; k < cn; k++ ) for( int k = 0; k < cn; k++ )
dst[k] = src[k]; dst[k] = src[k];
else else
{ {
for( k = 0; k < cn; k++ ) for( int k = 0; k < cn; k++ )
{ {
WT a0 = src[k], a1 = src[k+cn]; WT a0 = src[k], a1 = src[k+cn];
int i;
for( i = 2*cn; i <= size.width - 4*cn; i += 4*cn ) for( i = 2*cn; i <= size.width - 4*cn; i += 4*cn )
{ {
a0 = op(a0, (WT)src[i+k]); a0 = op(a0, (WT)src[i+k]);
...@@ -3934,7 +3931,7 @@ template<typename T> static void sort_( const Mat& src, Mat& dst, int flags ) ...@@ -3934,7 +3931,7 @@ template<typename T> static void sort_( const Mat& src, Mat& dst, int flags )
{ {
AutoBuffer<T> buf; AutoBuffer<T> buf;
T* bptr; T* bptr;
int i, j, n, len; int n, len;
bool sortRows = (flags & 1) == CV_SORT_EVERY_ROW; bool sortRows = (flags & 1) == CV_SORT_EVERY_ROW;
bool inplace = src.data == dst.data; bool inplace = src.data == dst.data;
bool sortDescending = (flags & CV_SORT_DESCENDING) != 0; bool sortDescending = (flags & CV_SORT_DESCENDING) != 0;
...@@ -3959,7 +3956,7 @@ template<typename T> static void sort_( const Mat& src, Mat& dst, int flags ) ...@@ -3959,7 +3956,7 @@ template<typename T> static void sort_( const Mat& src, Mat& dst, int flags )
} }
#endif #endif
for( i = 0; i < n; i++ ) for( int i = 0; i < n; i++ )
{ {
T* ptr = bptr; T* ptr = bptr;
if( sortRows ) if( sortRows )
...@@ -3974,7 +3971,7 @@ template<typename T> static void sort_( const Mat& src, Mat& dst, int flags ) ...@@ -3974,7 +3971,7 @@ template<typename T> static void sort_( const Mat& src, Mat& dst, int flags )
} }
else else
{ {
for( j = 0; j < len; j++ ) for( int j = 0; j < len; j++ )
ptr[j] = src.ptr<T>(j)[i]; ptr[j] = src.ptr<T>(j)[i];
} }
...@@ -3996,7 +3993,7 @@ template<typename T> static void sort_( const Mat& src, Mat& dst, int flags ) ...@@ -3996,7 +3993,7 @@ template<typename T> static void sort_( const Mat& src, Mat& dst, int flags )
#ifdef USE_IPP_SORT #ifdef USE_IPP_SORT
setIppErrorStatus(); setIppErrorStatus();
#endif #endif
for( j = 0; j < len/2; j++ ) for( int j = 0; j < len/2; j++ )
std::swap(ptr[j], ptr[len-1-j]); std::swap(ptr[j], ptr[len-1-j]);
} }
#ifdef USE_IPP_SORT #ifdef USE_IPP_SORT
...@@ -4015,7 +4012,7 @@ template<typename T> static void sort_( const Mat& src, Mat& dst, int flags ) ...@@ -4015,7 +4012,7 @@ template<typename T> static void sort_( const Mat& src, Mat& dst, int flags )
#endif #endif
if( !sortRows ) if( !sortRows )
for( j = 0; j < len; j++ ) for( int j = 0; j < len; j++ )
dst.ptr<T>(j)[i] = ptr[j]; dst.ptr<T>(j)[i] = ptr[j];
} }
} }
...@@ -4056,14 +4053,12 @@ template<typename T> static void sortIdx_( const Mat& src, Mat& dst, int flags ) ...@@ -4056,14 +4053,12 @@ template<typename T> static void sortIdx_( const Mat& src, Mat& dst, int flags )
{ {
AutoBuffer<T> buf; AutoBuffer<T> buf;
AutoBuffer<int> ibuf; AutoBuffer<int> ibuf;
T* bptr;
int* _iptr;
int i, j, n, len;
bool sortRows = (flags & 1) == CV_SORT_EVERY_ROW; bool sortRows = (flags & 1) == CV_SORT_EVERY_ROW;
bool sortDescending = (flags & CV_SORT_DESCENDING) != 0; bool sortDescending = (flags & CV_SORT_DESCENDING) != 0;
CV_Assert( src.data != dst.data ); CV_Assert( src.data != dst.data );
int n, len;
if( sortRows ) if( sortRows )
n = src.rows, len = src.cols; n = src.rows, len = src.cols;
else else
...@@ -4072,8 +4067,8 @@ template<typename T> static void sortIdx_( const Mat& src, Mat& dst, int flags ) ...@@ -4072,8 +4067,8 @@ template<typename T> static void sortIdx_( const Mat& src, Mat& dst, int flags )
buf.allocate(len); buf.allocate(len);
ibuf.allocate(len); ibuf.allocate(len);
} }
bptr = (T*)buf; T* bptr = (T*)buf;
_iptr = (int*)ibuf; int* _iptr = (int*)ibuf;
#if defined USE_IPP_SORT && IPP_DISABLE_BLOCK #if defined USE_IPP_SORT && IPP_DISABLE_BLOCK
int depth = src.depth(); int depth = src.depth();
...@@ -4086,7 +4081,7 @@ template<typename T> static void sortIdx_( const Mat& src, Mat& dst, int flags ) ...@@ -4086,7 +4081,7 @@ template<typename T> static void sortIdx_( const Mat& src, Mat& dst, int flags )
} }
#endif #endif
for( i = 0; i < n; i++ ) for( int i = 0; i < n; i++ )
{ {
T* ptr = bptr; T* ptr = bptr;
int* iptr = _iptr; int* iptr = _iptr;
...@@ -4098,10 +4093,10 @@ template<typename T> static void sortIdx_( const Mat& src, Mat& dst, int flags ) ...@@ -4098,10 +4093,10 @@ template<typename T> static void sortIdx_( const Mat& src, Mat& dst, int flags )
} }
else else
{ {
for( j = 0; j < len; j++ ) for( int j = 0; j < len; j++ )
ptr[j] = src.ptr<T>(j)[i]; ptr[j] = src.ptr<T>(j)[i];
} }
for( j = 0; j < len; j++ ) for( int j = 0; j < len; j++ )
iptr[j] = j; iptr[j] = j;
#if defined USE_IPP_SORT && IPP_DISABLE_BLOCK #if defined USE_IPP_SORT && IPP_DISABLE_BLOCK
...@@ -4121,7 +4116,7 @@ template<typename T> static void sortIdx_( const Mat& src, Mat& dst, int flags ) ...@@ -4121,7 +4116,7 @@ template<typename T> static void sortIdx_( const Mat& src, Mat& dst, int flags )
#if defined USE_IPP_SORT && IPP_DISABLE_BLOCK #if defined USE_IPP_SORT && IPP_DISABLE_BLOCK
setIppErrorStatus(); setIppErrorStatus();
#endif #endif
for( j = 0; j < len/2; j++ ) for( int j = 0; j < len/2; j++ )
std::swap(iptr[j], iptr[len-1-j]); std::swap(iptr[j], iptr[len-1-j]);
} }
#if defined USE_IPP_SORT && IPP_DISABLE_BLOCK #if defined USE_IPP_SORT && IPP_DISABLE_BLOCK
...@@ -4140,7 +4135,7 @@ template<typename T> static void sortIdx_( const Mat& src, Mat& dst, int flags ) ...@@ -4140,7 +4135,7 @@ template<typename T> static void sortIdx_( const Mat& src, Mat& dst, int flags )
#endif #endif
if( !sortRows ) if( !sortRows )
for( j = 0; j < len; j++ ) for( int j = 0; j < len; j++ )
dst.ptr<int>(j)[i] = iptr[j]; dst.ptr<int>(j)[i] = iptr[j];
} }
} }
...@@ -4251,22 +4246,17 @@ cvReduce( const CvArr* srcarr, CvArr* dstarr, int dim, int op ) ...@@ -4251,22 +4246,17 @@ cvReduce( const CvArr* srcarr, CvArr* dstarr, int dim, int op )
CV_IMPL CvArr* CV_IMPL CvArr*
cvRange( CvArr* arr, double start, double end ) cvRange( CvArr* arr, double start, double end )
{ {
int ok = 0;
CvMat stub, *mat = (CvMat*)arr; CvMat stub, *mat = (CvMat*)arr;
double delta; int step;
int type, step;
double val = start; double val = start;
int i, j;
int rows, cols;
if( !CV_IS_MAT(mat) ) if( !CV_IS_MAT(mat) )
mat = cvGetMat( mat, &stub); mat = cvGetMat( mat, &stub);
rows = mat->rows; int rows = mat->rows;
cols = mat->cols; int cols = mat->cols;
type = CV_MAT_TYPE(mat->type); int type = CV_MAT_TYPE(mat->type);
delta = (end-start)/(rows*cols); double delta = (end-start)/(rows*cols);
if( CV_IS_MAT_CONT(mat->type) ) if( CV_IS_MAT_CONT(mat->type) )
{ {
...@@ -4285,29 +4275,28 @@ cvRange( CvArr* arr, double start, double end ) ...@@ -4285,29 +4275,28 @@ cvRange( CvArr* arr, double start, double end )
if( fabs(val - ival) < DBL_EPSILON && if( fabs(val - ival) < DBL_EPSILON &&
fabs(delta - idelta) < DBL_EPSILON ) fabs(delta - idelta) < DBL_EPSILON )
{ {
for( i = 0; i < rows; i++, idata += step ) for( int i = 0; i < rows; i++, idata += step )
for( j = 0; j < cols; j++, ival += idelta ) for( int j = 0; j < cols; j++, ival += idelta )
idata[j] = ival; idata[j] = ival;
} }
else else
{ {
for( i = 0; i < rows; i++, idata += step ) for( int i = 0; i < rows; i++, idata += step )
for( j = 0; j < cols; j++, val += delta ) for( int j = 0; j < cols; j++, val += delta )
idata[j] = cvRound(val); idata[j] = cvRound(val);
} }
} }
else if( type == CV_32FC1 ) else if( type == CV_32FC1 )
{ {
float* fdata = mat->data.fl; float* fdata = mat->data.fl;
for( i = 0; i < rows; i++, fdata += step ) for( int i = 0; i < rows; i++, fdata += step )
for( j = 0; j < cols; j++, val += delta ) for( int j = 0; j < cols; j++, val += delta )
fdata[j] = (float)val; fdata[j] = (float)val;
} }
else else
CV_Error( CV_StsUnsupportedFormat, "The function only supports 32sC1 and 32fC1 datatypes" ); CV_Error( CV_StsUnsupportedFormat, "The function only supports 32sC1 and 32fC1 datatypes" );
ok = 1; return arr;
return ok ? arr : 0;
} }
...@@ -4708,7 +4697,7 @@ void MatConstIterator::seek(ptrdiff_t ofs, bool relative) ...@@ -4708,7 +4697,7 @@ void MatConstIterator::seek(ptrdiff_t ofs, bool relative)
void MatConstIterator::seek(const int* _idx, bool relative) void MatConstIterator::seek(const int* _idx, bool relative)
{ {
int i, d = m->dims; int d = m->dims;
ptrdiff_t ofs = 0; ptrdiff_t ofs = 0;
if( !_idx ) if( !_idx )
; ;
...@@ -4716,7 +4705,7 @@ void MatConstIterator::seek(const int* _idx, bool relative) ...@@ -4716,7 +4705,7 @@ void MatConstIterator::seek(const int* _idx, bool relative)
ofs = _idx[0]*m->size[1] + _idx[1]; ofs = _idx[0]*m->size[1] + _idx[1];
else else
{ {
for( i = 0; i < d; i++ ) for( int i = 0; i < d; i++ )
ofs = ofs*m->size[i] + _idx[i]; ofs = ofs*m->size[i] + _idx[i];
} }
seek(ofs, relative); seek(ofs, relative);
...@@ -4926,13 +4915,13 @@ SparseMat::SparseMat(const Mat& m) ...@@ -4926,13 +4915,13 @@ SparseMat::SparseMat(const Mat& m)
void SparseMat::create(int d, const int* _sizes, int _type) void SparseMat::create(int d, const int* _sizes, int _type)
{ {
int i;
CV_Assert( _sizes && 0 < d && d <= CV_MAX_DIM ); CV_Assert( _sizes && 0 < d && d <= CV_MAX_DIM );
for( i = 0; i < d; i++ ) for( int i = 0; i < d; i++ )
CV_Assert( _sizes[i] > 0 ); CV_Assert( _sizes[i] > 0 );
_type = CV_MAT_TYPE(_type); _type = CV_MAT_TYPE(_type);
if( hdr && _type == type() && hdr->dims == d && hdr->refcount == 1 ) if( hdr && _type == type() && hdr->dims == d && hdr->refcount == 1 )
{ {
int i;
for( i = 0; i < d; i++ ) for( i = 0; i < d; i++ )
if( _sizes[i] != hdr->size[i] ) if( _sizes[i] != hdr->size[i] )
break; break;
...@@ -4945,7 +4934,7 @@ void SparseMat::create(int d, const int* _sizes, int _type) ...@@ -4945,7 +4934,7 @@ void SparseMat::create(int d, const int* _sizes, int _type)
int _sizes_backup[CV_MAX_DIM]; // #5991 int _sizes_backup[CV_MAX_DIM]; // #5991
if (_sizes == hdr->size) if (_sizes == hdr->size)
{ {
for(i = 0; i < d; i++ ) for(int i = 0; i < d; i++ )
_sizes_backup[i] = _sizes[i]; _sizes_backup[i] = _sizes[i];
_sizes = _sizes_backup; _sizes = _sizes_backup;
} }
...@@ -4965,9 +4954,9 @@ void SparseMat::copyTo( SparseMat& m ) const ...@@ -4965,9 +4954,9 @@ void SparseMat::copyTo( SparseMat& m ) const
} }
m.create( hdr->dims, hdr->size, type() ); m.create( hdr->dims, hdr->size, type() );
SparseMatConstIterator from = begin(); SparseMatConstIterator from = begin();
size_t i, N = nzcount(), esz = elemSize(); size_t N = nzcount(), esz = elemSize();
for( i = 0; i < N; i++, ++from ) for( size_t i = 0; i < N; i++, ++from )
{ {
const Node* n = from.node(); const Node* n = from.node();
uchar* to = m.newNode(n->idx, n->hashval); uchar* to = m.newNode(n->idx, n->hashval);
...@@ -4983,9 +4972,9 @@ void SparseMat::copyTo( Mat& m ) const ...@@ -4983,9 +4972,9 @@ void SparseMat::copyTo( Mat& m ) const
m = Scalar(0); m = Scalar(0);
SparseMatConstIterator from = begin(); SparseMatConstIterator from = begin();
size_t i, N = nzcount(), esz = elemSize(); size_t N = nzcount(), esz = elemSize();
for( i = 0; i < N; i++, ++from ) for( size_t i = 0; i < N; i++, ++from )
{ {
const Node* n = from.node(); const Node* n = from.node();
copyElem( from.ptr, (ndims > 1 ? m.ptr(n->idx) : m.ptr(n->idx[0])), esz); copyElem( from.ptr, (ndims > 1 ? m.ptr(n->idx) : m.ptr(n->idx[0])), esz);
...@@ -5012,12 +5001,12 @@ void SparseMat::convertTo( SparseMat& m, int rtype, double alpha ) const ...@@ -5012,12 +5001,12 @@ void SparseMat::convertTo( SparseMat& m, int rtype, double alpha ) const
m.create( hdr->dims, hdr->size, rtype ); m.create( hdr->dims, hdr->size, rtype );
SparseMatConstIterator from = begin(); SparseMatConstIterator from = begin();
size_t i, N = nzcount(); size_t N = nzcount();
if( alpha == 1 ) if( alpha == 1 )
{ {
ConvertData cvtfunc = getConvertElem(type(), rtype); ConvertData cvtfunc = getConvertElem(type(), rtype);
for( i = 0; i < N; i++, ++from ) for( size_t i = 0; i < N; i++, ++from )
{ {
const Node* n = from.node(); const Node* n = from.node();
uchar* to = hdr == m.hdr ? from.ptr : m.newNode(n->idx, n->hashval); uchar* to = hdr == m.hdr ? from.ptr : m.newNode(n->idx, n->hashval);
...@@ -5027,7 +5016,7 @@ void SparseMat::convertTo( SparseMat& m, int rtype, double alpha ) const ...@@ -5027,7 +5016,7 @@ void SparseMat::convertTo( SparseMat& m, int rtype, double alpha ) const
else else
{ {
ConvertScaleData cvtfunc = getConvertScaleElem(type(), rtype); ConvertScaleData cvtfunc = getConvertScaleElem(type(), rtype);
for( i = 0; i < N; i++, ++from ) for( size_t i = 0; i < N; i++, ++from )
{ {
const Node* n = from.node(); const Node* n = from.node();
uchar* to = hdr == m.hdr ? from.ptr : m.newNode(n->idx, n->hashval); uchar* to = hdr == m.hdr ? from.ptr : m.newNode(n->idx, n->hashval);
...@@ -5049,12 +5038,12 @@ void SparseMat::convertTo( Mat& m, int rtype, double alpha, double beta ) const ...@@ -5049,12 +5038,12 @@ void SparseMat::convertTo( Mat& m, int rtype, double alpha, double beta ) const
m = Scalar(beta); m = Scalar(beta);
SparseMatConstIterator from = begin(); SparseMatConstIterator from = begin();
size_t i, N = nzcount(); size_t N = nzcount();
if( alpha == 1 && beta == 0 ) if( alpha == 1 && beta == 0 )
{ {
ConvertData cvtfunc = getConvertElem(type(), rtype); ConvertData cvtfunc = getConvertElem(type(), rtype);
for( i = 0; i < N; i++, ++from ) for( size_t i = 0; i < N; i++, ++from )
{ {
const Node* n = from.node(); const Node* n = from.node();
uchar* to = m.ptr(n->idx); uchar* to = m.ptr(n->idx);
...@@ -5064,7 +5053,7 @@ void SparseMat::convertTo( Mat& m, int rtype, double alpha, double beta ) const ...@@ -5064,7 +5053,7 @@ void SparseMat::convertTo( Mat& m, int rtype, double alpha, double beta ) const
else else
{ {
ConvertScaleData cvtfunc = getConvertScaleElem(type(), rtype); ConvertScaleData cvtfunc = getConvertScaleElem(type(), rtype);
for( i = 0; i < N; i++, ++from ) for( size_t i = 0; i < N; i++, ++from )
{ {
const Node* n = from.node(); const Node* n = from.node();
uchar* to = m.ptr(n->idx); uchar* to = m.ptr(n->idx);
...@@ -5098,7 +5087,7 @@ uchar* SparseMat::ptr(int i0, bool createMissing, size_t* hashval) ...@@ -5098,7 +5087,7 @@ uchar* SparseMat::ptr(int i0, bool createMissing, size_t* hashval)
int idx[] = { i0 }; int idx[] = { i0 };
return newNode( idx, h ); return newNode( idx, h );
} }
return 0; return NULL;
} }
uchar* SparseMat::ptr(int i0, int i1, bool createMissing, size_t* hashval) uchar* SparseMat::ptr(int i0, int i1, bool createMissing, size_t* hashval)
...@@ -5120,7 +5109,7 @@ uchar* SparseMat::ptr(int i0, int i1, bool createMissing, size_t* hashval) ...@@ -5120,7 +5109,7 @@ uchar* SparseMat::ptr(int i0, int i1, bool createMissing, size_t* hashval)
int idx[] = { i0, i1 }; int idx[] = { i0, i1 };
return newNode( idx, h ); return newNode( idx, h );
} }
return 0; return NULL;
} }
uchar* SparseMat::ptr(int i0, int i1, int i2, bool createMissing, size_t* hashval) uchar* SparseMat::ptr(int i0, int i1, int i2, bool createMissing, size_t* hashval)
...@@ -5143,7 +5132,7 @@ uchar* SparseMat::ptr(int i0, int i1, int i2, bool createMissing, size_t* hashva ...@@ -5143,7 +5132,7 @@ uchar* SparseMat::ptr(int i0, int i1, int i2, bool createMissing, size_t* hashva
int idx[] = { i0, i1, i2 }; int idx[] = { i0, i1, i2 };
return newNode( idx, h ); return newNode( idx, h );
} }
return 0; return NULL;
} }
uchar* SparseMat::ptr(const int* idx, bool createMissing, size_t* hashval) uchar* SparseMat::ptr(const int* idx, bool createMissing, size_t* hashval)
...@@ -5167,7 +5156,7 @@ uchar* SparseMat::ptr(const int* idx, bool createMissing, size_t* hashval) ...@@ -5167,7 +5156,7 @@ uchar* SparseMat::ptr(const int* idx, bool createMissing, size_t* hashval)
nidx = elem->next; nidx = elem->next;
} }
return createMissing ? newNode(idx, h) : 0; return createMissing ? newNode(idx, h) : NULL;
} }
void SparseMat::erase(int i0, int i1, size_t* hashval) void SparseMat::erase(int i0, int i1, size_t* hashval)
...@@ -5241,13 +5230,13 @@ void SparseMat::resizeHashTab(size_t newsize) ...@@ -5241,13 +5230,13 @@ void SparseMat::resizeHashTab(size_t newsize)
if((newsize & (newsize-1)) != 0) if((newsize & (newsize-1)) != 0)
newsize = (size_t)1 << cvCeil(std::log((double)newsize)/CV_LOG2); newsize = (size_t)1 << cvCeil(std::log((double)newsize)/CV_LOG2);
size_t i, hsize = hdr->hashtab.size(); size_t hsize = hdr->hashtab.size();
std::vector<size_t> _newh(newsize); std::vector<size_t> _newh(newsize);
size_t* newh = &_newh[0]; size_t* newh = &_newh[0];
for( i = 0; i < newsize; i++ ) for( size_t i = 0; i < newsize; i++ )
newh[i] = 0; newh[i] = 0;
uchar* pool = &hdr->pool[0]; uchar* pool = &hdr->pool[0];
for( i = 0; i < hsize; i++ ) for( size_t i = 0; i < hsize; i++ )
{ {
size_t nidx = hdr->hashtab[i]; size_t nidx = hdr->hashtab[i];
while( nidx ) while( nidx )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment