diff --git a/modules/core/include/opencv2/core/mat.inl.hpp b/modules/core/include/opencv2/core/mat.inl.hpp index ff1b9f8ee7..609f4bd57b 100644 --- a/modules/core/include/opencv2/core/mat.inl.hpp +++ b/modules/core/include/opencv2/core/mat.inl.hpp @@ -919,7 +919,7 @@ _Tp* Mat::ptr(int y) template inline const _Tp* Mat::ptr(int y) const { - CV_DbgAssert( y == 0 || (data && dims >= 1 && data && (unsigned)y < (unsigned)size.p[0]) ); + CV_DbgAssert( y == 0 || (data && dims >= 1 && (unsigned)y < (unsigned)size.p[0]) ); return (const _Tp*)(data + step.p[0] * y); } diff --git a/modules/core/src/arithm.cpp b/modules/core/src/arithm.cpp index 2304378355..1a464c9aec 100644 --- a/modules/core/src/arithm.cpp +++ b/modules/core/src/arithm.cpp @@ -270,7 +270,7 @@ static void binary_op( InputArray _src1, InputArray _src2, OutputArray _dst, if( !haveScalar ) { const Mat* arrays[] = { &src1, &src2, &dst, &mask, 0 }; - uchar* ptrs[4]; + uchar* ptrs[4]{}; NAryMatIterator it(arrays, ptrs); size_t total = it.size, blocksize = total; @@ -306,7 +306,7 @@ static void binary_op( InputArray _src1, InputArray _src2, OutputArray _dst, else { const Mat* arrays[] = { &src1, &dst, &mask, 0 }; - uchar* ptrs[3]; + uchar* ptrs[3]{}; NAryMatIterator it(arrays, ptrs); size_t total = it.size, blocksize = std::min(total, blocksize0); @@ -745,7 +745,7 @@ static void arithm_op(InputArray _src1, InputArray _src2, OutputArray _dst, if( !haveScalar ) { const Mat* arrays[] = { &src1, &src2, &dst, &mask, 0 }; - uchar* ptrs[4]; + uchar* ptrs[4]{}; NAryMatIterator it(arrays, ptrs); size_t total = it.size, blocksize = total; @@ -812,7 +812,7 @@ static void arithm_op(InputArray _src1, InputArray _src2, OutputArray _dst, else { const Mat* arrays[] = { &src1, &dst, &mask, 0 }; - uchar* ptrs[3]; + uchar* ptrs[3]{}; NAryMatIterator it(arrays, ptrs); size_t total = it.size, blocksize = std::min(total, blocksize0); @@ -1240,7 +1240,7 @@ void cv::compare(InputArray _src1, InputArray _src2, OutputArray _dst, int op) if( !haveScalar ) { const Mat* arrays[] = { &src1, &src2, &dst, 0 }; - uchar* ptrs[3]; + uchar* ptrs[3]{}; NAryMatIterator it(arrays, ptrs); size_t total = it.size; @@ -1251,7 +1251,7 @@ void cv::compare(InputArray _src1, InputArray _src2, OutputArray _dst, int op) else { const Mat* arrays[] = { &src1, &dst, 0 }; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); size_t total = it.size, blocksize = std::min(total, blocksize0); @@ -1748,7 +1748,7 @@ void cv::inRange(InputArray _src, InputArray _lowerb, const Mat* arrays_sc[] = { &src, &dst, 0 }; const Mat* arrays_nosc[] = { &src, &dst, &lb, &ub, 0 }; - uchar* ptrs[4]; + uchar* ptrs[4]{}; NAryMatIterator it(lbScalar && ubScalar ? arrays_sc : arrays_nosc, ptrs); size_t total = it.size, blocksize = std::min(total, blocksize0); diff --git a/modules/core/src/convert.cpp b/modules/core/src/convert.cpp index e5fd24dfad..7a027dd809 100644 --- a/modules/core/src/convert.cpp +++ b/modules/core/src/convert.cpp @@ -1347,7 +1347,7 @@ void cv::Mat::convertTo(OutputArray _dst, int _type, double alpha, double beta) else { const Mat* arrays[] = {&src, &dst, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); Size sz((int)(it.size*cn), 1); @@ -1496,7 +1496,7 @@ void cv::convertFp16( InputArray _src, OutputArray _dst) else { const Mat* arrays[] = {&src, &dst, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); Size sz((int)(it.size*cn), 1); diff --git a/modules/core/src/convert_scale.cpp b/modules/core/src/convert_scale.cpp index ff8398a27b..44a968ff6c 100644 --- a/modules/core/src/convert_scale.cpp +++ b/modules/core/src/convert_scale.cpp @@ -1775,7 +1775,7 @@ void cv::convertScaleAbs( InputArray _src, OutputArray _dst, double alpha, doubl else { const Mat* arrays[] = {&src, &dst, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); Size sz((int)it.size*cn, 1); diff --git a/modules/core/src/copy.cpp b/modules/core/src/copy.cpp index e89a17b323..66ce393b3f 100644 --- a/modules/core/src/copy.cpp +++ b/modules/core/src/copy.cpp @@ -306,7 +306,7 @@ void Mat::copyTo( OutputArray _dst ) const if( total() != 0 ) { const Mat* arrays[] = { this, &dst }; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs, 2); size_t sz = it.size*elemSize(); @@ -399,7 +399,7 @@ void Mat::copyTo( OutputArray _dst, InputArray _mask ) const } const Mat* arrays[] = { this, &dst, &mask, 0 }; - uchar* ptrs[3]; + uchar* ptrs[3]{}; NAryMatIterator it(arrays, ptrs); Size sz((int)(it.size*mcn), 1); diff --git a/modules/core/src/count_non_zero.cpp b/modules/core/src/count_non_zero.cpp index b703b31b27..804d46dc34 100644 --- a/modules/core/src/count_non_zero.cpp +++ b/modules/core/src/count_non_zero.cpp @@ -378,7 +378,7 @@ int cv::countNonZero( InputArray _src ) CV_Assert( func != 0 ); const Mat* arrays[] = {&src, 0}; - uchar* ptrs[1]; + uchar* ptrs[1]{}; NAryMatIterator it(arrays, ptrs); int total = (int)it.size, nz = 0; diff --git a/modules/core/src/lut.cpp b/modules/core/src/lut.cpp index 71f06ea5b2..6ed26b6909 100644 --- a/modules/core/src/lut.cpp +++ b/modules/core/src/lut.cpp @@ -342,7 +342,7 @@ public: int lutcn = lut_.channels(); const Mat* arrays[] = {&src, &dst, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); int len = (int)it.size; @@ -408,7 +408,7 @@ void cv::LUT( InputArray _src, InputArray _lut, OutputArray _dst ) CV_Assert( func != 0 ); const Mat* arrays[] = {&src, &dst, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); int len = (int)it.size; diff --git a/modules/core/src/mathfuncs.cpp b/modules/core/src/mathfuncs.cpp index 5737e8d0b3..89fad4e734 100644 --- a/modules/core/src/mathfuncs.cpp +++ b/modules/core/src/mathfuncs.cpp @@ -158,7 +158,7 @@ void magnitude( InputArray src1, InputArray src2, OutputArray dst ) Mat Mag = dst.getMat(); const Mat* arrays[] = {&X, &Y, &Mag, 0}; - uchar* ptrs[3]; + uchar* ptrs[3]{}; NAryMatIterator it(arrays, ptrs); int len = (int)it.size*cn; @@ -194,7 +194,7 @@ void phase( InputArray src1, InputArray src2, OutputArray dst, bool angleInDegre Mat Angle = dst.getMat(); const Mat* arrays[] = {&X, &Y, &Angle, 0}; - uchar* ptrs[3]; + uchar* ptrs[3]{}; NAryMatIterator it(arrays, ptrs); int j, total = (int)(it.size*cn), blockSize = total; size_t esz1 = X.elemSize1(); @@ -280,7 +280,7 @@ void cartToPolar( InputArray src1, InputArray src2, Mat Mag = dst1.getMat(), Angle = dst2.getMat(); const Mat* arrays[] = {&X, &Y, &Mag, &Angle, 0}; - uchar* ptrs[4]; + uchar* ptrs[4]{}; NAryMatIterator it(arrays, ptrs); int j, total = (int)(it.size*cn), blockSize = std::min(total, ((BLOCK_SIZE+cn-1)/cn)*cn); size_t esz1 = X.elemSize1(); @@ -577,7 +577,7 @@ void polarToCart( InputArray src1, InputArray src2, CV_IPP_RUN(!angleInDegrees, ipp_polarToCart(Mag, Angle, X, Y)); const Mat* arrays[] = {&Mag, &Angle, &X, &Y, 0}; - uchar* ptrs[4]; + uchar* ptrs[4]{}; NAryMatIterator it(arrays, ptrs); cv::AutoBuffer _buf; float* buf[2] = {0, 0}; @@ -676,7 +676,7 @@ void exp( InputArray _src, OutputArray _dst ) Mat dst = _dst.getMat(); const Mat* arrays[] = {&src, &dst, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); int len = (int)(it.size*cn); @@ -709,7 +709,7 @@ void log( InputArray _src, OutputArray _dst ) Mat dst = _dst.getMat(); const Mat* arrays[] = {&src, &dst, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); int len = (int)(it.size*cn); @@ -1241,7 +1241,7 @@ void pow( InputArray _src, double power, OutputArray _dst ) Mat dst = _dst.getMat(); const Mat* arrays[] = {&src, &dst, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); int len = (int)(it.size*cn); @@ -1588,7 +1588,7 @@ void patchNaNs( InputOutputArray _a, double _val ) Mat a = _a.getMat(); const Mat* arrays[] = {&a, 0}; - int* ptrs[1]; + int* ptrs[1]{}; NAryMatIterator it(arrays, (uchar**)ptrs); size_t len = it.size*a.channels(); Cv32suf val; diff --git a/modules/core/src/matmul.cpp b/modules/core/src/matmul.cpp index 83607c7184..7c5655e9e6 100644 --- a/modules/core/src/matmul.cpp +++ b/modules/core/src/matmul.cpp @@ -2144,7 +2144,7 @@ void cv::transform( InputArray _src, OutputArray _dst, InputArray _mtx ) CV_Assert( func != 0 ); const Mat* arrays[] = {&src, &dst, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); size_t i, total = it.size; @@ -2290,7 +2290,7 @@ void cv::perspectiveTransform( InputArray _src, OutputArray _dst, InputArray _mt CV_Assert( func != 0 ); const Mat* arrays[] = {&src, &dst, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); size_t i, total = it.size; @@ -2441,7 +2441,7 @@ void cv::scaleAdd( InputArray _src1, double alpha, InputArray _src2, OutputArray } const Mat* arrays[] = {&src1, &src2, &dst, 0}; - uchar* ptrs[3]; + uchar* ptrs[3]{}; NAryMatIterator it(arrays, ptrs); size_t i, len = it.size*cn; @@ -3301,7 +3301,7 @@ double Mat::dot(InputArray _mat) const } const Mat* arrays[] = {this, &mat, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); int len = (int)(it.size*cn); double r = 0; diff --git a/modules/core/src/mean.cpp b/modules/core/src/mean.cpp index dcf1ae206c..0badfa2f65 100644 --- a/modules/core/src/mean.cpp +++ b/modules/core/src/mean.cpp @@ -121,7 +121,7 @@ cv::Scalar cv::mean( InputArray _src, InputArray _mask ) CV_Assert( cn <= 4 && func != 0 ); const Mat* arrays[] = {&src, &mask, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); int total = (int)it.size, blockSize = total, intSumBlockSize = 0; int j, count = 0; @@ -786,7 +786,7 @@ void cv::meanStdDev( InputArray _src, OutputArray _mean, OutputArray _sdv, Input CV_Assert( func != 0 ); const Mat* arrays[] = {&src, &mask, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); int total = (int)it.size, blockSize = total, intSumBlockSize = 0; int j, count = 0, nz0 = 0; diff --git a/modules/core/src/minmax.cpp b/modules/core/src/minmax.cpp index d2b56646b8..371438184e 100644 --- a/modules/core/src/minmax.cpp +++ b/modules/core/src/minmax.cpp @@ -770,7 +770,7 @@ void cv::minMaxIdx(InputArray _src, double* minVal, CV_Assert( func != 0 ); const Mat* arrays[] = {&src, &mask, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); size_t minidx = 0, maxidx = 0; diff --git a/modules/core/src/norm.cpp b/modules/core/src/norm.cpp index 6b95238af9..40d195c3f8 100644 --- a/modules/core/src/norm.cpp +++ b/modules/core/src/norm.cpp @@ -710,7 +710,7 @@ double cv::norm( InputArray _src, int normType, InputArray _mask ) int cellSize = normType == NORM_HAMMING ? 1 : 2; const Mat* arrays[] = {&src, 0}; - uchar* ptrs[1]; + uchar* ptrs[1]{}; NAryMatIterator it(arrays, ptrs); int total = (int)it.size; int result = 0; @@ -727,7 +727,7 @@ double cv::norm( InputArray _src, int normType, InputArray _mask ) CV_Assert( func != 0 ); const Mat* arrays[] = {&src, &mask, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; union { double d; @@ -1168,7 +1168,7 @@ double cv::norm( InputArray _src1, InputArray _src2, int normType, InputArray _m int cellSize = normType == NORM_HAMMING ? 1 : 2; const Mat* arrays[] = {&src1, &src2, 0}; - uchar* ptrs[2]; + uchar* ptrs[2]{}; NAryMatIterator it(arrays, ptrs); int total = (int)it.size; int result = 0; @@ -1185,7 +1185,7 @@ double cv::norm( InputArray _src1, InputArray _src2, int normType, InputArray _m CV_Assert( func != 0 ); const Mat* arrays[] = {&src1, &src2, &mask, 0}; - uchar* ptrs[3]; + uchar* ptrs[3]{}; union { double d; diff --git a/modules/core/src/parallel_impl.cpp b/modules/core/src/parallel_impl.cpp index cf8165e3cd..1aaa56a9ee 100644 --- a/modules/core/src/parallel_impl.cpp +++ b/modules/core/src/parallel_impl.cpp @@ -186,9 +186,9 @@ public: pthread_t posix_thread; bool is_created; - volatile bool stop_thread; + std::atomic stop_thread; - volatile bool has_wake_signal; + std::atomic has_wake_signal; Ptr job; @@ -394,7 +394,7 @@ void WorkerThread::thread_body() if (CV_WORKER_ACTIVE_WAIT_THREADS_LIMIT == 0) allow_active_wait = true; Ptr j_ptr; swap(j_ptr, job); - has_wake_signal = false; // TODO .store(false, std::memory_order_release) + has_wake_signal = false; pthread_mutex_unlock(&mutex); if (!stop_thread) diff --git a/modules/core/src/sum.cpp b/modules/core/src/sum.cpp index f965823889..be68f13abd 100644 --- a/modules/core/src/sum.cpp +++ b/modules/core/src/sum.cpp @@ -602,7 +602,7 @@ cv::Scalar cv::sum( InputArray _src ) CV_Assert( cn <= 4 && func != 0 ); const Mat* arrays[] = {&src, 0}; - uchar* ptrs[1]; + uchar* ptrs[1]{}; NAryMatIterator it(arrays, ptrs); Scalar s; int total = (int)it.size, blockSize = total, intSumBlockSize = 0; diff --git a/modules/cudaimgproc/src/canny.cpp b/modules/cudaimgproc/src/canny.cpp index 8c3fd4a2b5..9a1125d1cd 100644 --- a/modules/cudaimgproc/src/canny.cpp +++ b/modules/cudaimgproc/src/canny.cpp @@ -74,6 +74,7 @@ namespace low_thresh_(low_thresh), high_thresh_(high_thresh), apperture_size_(apperture_size), L2gradient_(L2gradient) { old_apperture_size_ = -1; + d_counter = nullptr; } void detect(InputArray image, OutputArray edges, Stream& stream); diff --git a/modules/imgproc/src/accum.cpp b/modules/imgproc/src/accum.cpp index 2b43f4e42c..fece3139e7 100644 --- a/modules/imgproc/src/accum.cpp +++ b/modules/imgproc/src/accum.cpp @@ -332,7 +332,7 @@ void cv::accumulate( InputArray _src, InputOutputArray _dst, InputArray _mask ) CV_Assert( func != 0 ); const Mat* arrays[] = {&src, &dst, &mask, 0}; - uchar* ptrs[3]; + uchar* ptrs[3]{}; NAryMatIterator it(arrays, ptrs); int len = (int)it.size; @@ -430,7 +430,7 @@ void cv::accumulateSquare( InputArray _src, InputOutputArray _dst, InputArray _m CV_Assert( func != 0 ); const Mat* arrays[] = {&src, &dst, &mask, 0}; - uchar* ptrs[3]; + uchar* ptrs[3]{}; NAryMatIterator it(arrays, ptrs); int len = (int)it.size; @@ -533,7 +533,7 @@ void cv::accumulateProduct( InputArray _src1, InputArray _src2, CV_Assert( func != 0 ); const Mat* arrays[] = {&src1, &src2, &dst, &mask, 0}; - uchar* ptrs[4]; + uchar* ptrs[4]{}; NAryMatIterator it(arrays, ptrs); int len = (int)it.size; @@ -635,7 +635,7 @@ void cv::accumulateWeighted( InputArray _src, InputOutputArray _dst, CV_Assert( func != 0 ); const Mat* arrays[] = {&src, &dst, &mask, 0}; - uchar* ptrs[3]; + uchar* ptrs[3]{}; NAryMatIterator it(arrays, ptrs); int len = (int)it.size;