diff --git a/3rdparty/protobuf/src/google/protobuf/io/coded_stream.cc b/3rdparty/protobuf/src/google/protobuf/io/coded_stream.cc index 08394ca7bc..348ecec6aa 100644 --- a/3rdparty/protobuf/src/google/protobuf/io/coded_stream.cc +++ b/3rdparty/protobuf/src/google/protobuf/io/coded_stream.cc @@ -577,7 +577,7 @@ std::pair CodedInputStream::ReadVarint64Fallback() { buffer_ = p.second; return std::make_pair(temp, true); } else { - uint64 temp; + uint64 temp = 0; bool success = ReadVarint64Slow(&temp); return std::make_pair(temp, success); } diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake index d2a1098a8a..8358b564d6 100644 --- a/cmake/OpenCVCompilerOptions.cmake +++ b/cmake/OpenCVCompilerOptions.cmake @@ -127,6 +127,8 @@ if(CMAKE_COMPILER_IS_GNUCXX) add_extra_compiler_option(-Wpointer-arith) add_extra_compiler_option(-Wshadow) add_extra_compiler_option(-Wsign-promo) + add_extra_compiler_option(-Wuninitialized) + add_extra_compiler_option(-Winit-self) if(ENABLE_NOISY_WARNINGS) add_extra_compiler_option(-Wcast-align) diff --git a/modules/calib3d/src/calibration.cpp b/modules/calib3d/src/calibration.cpp index 7d52d1ed35..4234687762 100644 --- a/modules/calib3d/src/calibration.cpp +++ b/modules/calib3d/src/calibration.cpp @@ -252,7 +252,7 @@ CV_IMPL int cvRodrigues2( const CvMat* src, CvMat* dst, CvMat* jacobian ) { int depth, elem_size; int i, k; - double J[27]; + double J[27] = {0}; CvMat matJ = cvMat( 3, 9, CV_64F, J ); if( !CV_IS_MAT(src) ) @@ -1189,7 +1189,7 @@ CV_IMPL void cvInitIntrinsicParams2D( const CvMat* objectPoints, int i, j, pos, nimages, ni = 0; double a[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 1 }; - double H[9], f[2]; + double H[9] = {0}, f[2] = {0}; CvMat _a = cvMat( 3, 3, CV_64F, a ); CvMat matH = cvMat( 3, 3, CV_64F, H ); CvMat _f = cvMat( 2, 1, CV_64F, f ); @@ -1731,7 +1731,7 @@ void cvCalibrationMatrixValues( const CvMat *calibMatr, CvSize imgSize, if(!CV_IS_MAT(calibMatr)) CV_Error(CV_StsUnsupportedFormat, "Input parameters must be a matrices!"); - double dummy; + double dummy = .0; Point2d pp; cv::calibrationMatrixValues(cvarrToMat(calibMatr), imgSize, apertureWidth, apertureHeight, fovx ? *fovx : dummy, @@ -2281,7 +2281,7 @@ void cvStereoRectify( const CvMat* _cameraMatrix1, const CvMat* _cameraMatrix2, CvMat* matQ, int flags, double alpha, CvSize newImgSize, CvRect* roi1, CvRect* roi2 ) { - double _om[3], _t[3], _uu[3]={0,0,0}, _r_r[3][3], _pp[3][4]; + double _om[3], _t[3] = {0}, _uu[3]={0,0,0}, _r_r[3][3], _pp[3][4]; double _ww[3], _wr[3][3], _z[3] = {0,0,0}, _ri[3][3]; cv::Rect_ inner1, inner2, outer1, outer2; @@ -2574,7 +2574,7 @@ CV_IMPL int cvStereoRectifyUncalibrated( int i, j, npoints; double cx, cy; - double u[9], v[9], w[9], f[9], h1[9], h2[9], h0[9], e2[3]; + double u[9], v[9], w[9], f[9], h1[9], h2[9], h0[9], e2[3] = {0}; CvMat E2 = cvMat( 3, 1, CV_64F, e2 ); CvMat U = cvMat( 3, 3, CV_64F, u ); CvMat V = cvMat( 3, 3, CV_64F, v ); @@ -2722,7 +2722,7 @@ CV_IMPL int cvStereoRectifyUncalibrated( cvPerspectiveTransform( _m1, _m1, &H0 ); cvPerspectiveTransform( _m2, _m2, &H2 ); CvMat A = cvMat( 1, npoints, CV_64FC3, lines1 ), BxBy, B; - double x[3]; + double x[3] = {0}; CvMat X = cvMat( 3, 1, CV_64F, x ); cvConvertPointsHomogeneous( _m1, &A ); cvReshape( &A, &A, 1, npoints ); diff --git a/modules/calib3d/src/dls.h b/modules/calib3d/src/dls.h index 4b1f6f46fb..f03bee49d7 100644 --- a/modules/calib3d/src/dls.h +++ b/modules/calib3d/src/dls.h @@ -720,7 +720,7 @@ private: public: EigenvalueDecomposition() - : n(0) { } + : n(0), cdivr(0), cdivi(0), d(0), e(0), ort(0), V(0), H(0) {} // Initializes & computes the Eigenvalue Decomposition for a general matrix // given in src. This function is a port of the EigenvalueSolver in JAMA, diff --git a/modules/calib3d/src/epnp.cpp b/modules/calib3d/src/epnp.cpp index ec7dfe0ad7..55971a365a 100644 --- a/modules/calib3d/src/epnp.cpp +++ b/modules/calib3d/src/epnp.cpp @@ -60,7 +60,7 @@ void epnp::choose_control_points(void) // Take C1, C2, and C3 from PCA on the reference points: CvMat * PW0 = cvCreateMat(number_of_correspondences, 3, CV_64F); - double pw0tpw0[3 * 3], dc[3], uct[3 * 3]; + double pw0tpw0[3 * 3], dc[3] = {0}, uct[3 * 3] = {0}; CvMat PW0tPW0 = cvMat(3, 3, CV_64F, pw0tpw0); CvMat DC = cvMat(3, 1, CV_64F, dc); CvMat UCt = cvMat(3, 3, CV_64F, uct); @@ -240,7 +240,7 @@ void epnp::estimate_R_and_t(double R[3][3], double t[3]) pw0[j] /= number_of_correspondences; } - double abt[3 * 3], abt_d[3], abt_u[3 * 3], abt_v[3 * 3]; + double abt[3 * 3] = {0}, abt_d[3], abt_u[3 * 3], abt_v[3 * 3]; CvMat ABt = cvMat(3, 3, CV_64F, abt); CvMat ABt_D = cvMat(3, 1, CV_64F, abt_d); CvMat ABt_U = cvMat(3, 3, CV_64F, abt_u); @@ -332,7 +332,7 @@ double epnp::reprojection_error(const double R[3][3], const double t[3]) void epnp::find_betas_approx_1(const CvMat * L_6x10, const CvMat * Rho, double * betas) { - double l_6x4[6 * 4], b4[4]; + double l_6x4[6 * 4], b4[4] = {0}; CvMat L_6x4 = cvMat(6, 4, CV_64F, l_6x4); CvMat B4 = cvMat(4, 1, CV_64F, b4); @@ -364,7 +364,7 @@ void epnp::find_betas_approx_1(const CvMat * L_6x10, const CvMat * Rho, void epnp::find_betas_approx_2(const CvMat * L_6x10, const CvMat * Rho, double * betas) { - double l_6x3[6 * 3], b3[3]; + double l_6x3[6 * 3], b3[3] = {0}; CvMat L_6x3 = cvMat(6, 3, CV_64F, l_6x3); CvMat B3 = cvMat(3, 1, CV_64F, b3); @@ -396,7 +396,7 @@ void epnp::find_betas_approx_2(const CvMat * L_6x10, const CvMat * Rho, void epnp::find_betas_approx_3(const CvMat * L_6x10, const CvMat * Rho, double * betas) { - double l_6x5[6 * 5], b5[5]; + double l_6x5[6 * 5], b5[5] = {0}; CvMat L_6x5 = cvMat(6, 5, CV_64F, l_6x5); CvMat B5 = cvMat(5, 1, CV_64F, b5); @@ -506,7 +506,7 @@ void epnp::gauss_newton(const CvMat * L_6x10, const CvMat * Rho, double betas[4] { const int iterations_number = 5; - double a[6*4], b[6], x[4]; + double a[6*4], b[6], x[4] = {0}; CvMat A = cvMat(6, 4, CV_64F, a); CvMat B = cvMat(6, 1, CV_64F, b); CvMat X = cvMat(4, 1, CV_64F, x); diff --git a/modules/calib3d/src/fundam.cpp b/modules/calib3d/src/fundam.cpp index 63bdff298a..c9d8e993b8 100644 --- a/modules/calib3d/src/fundam.cpp +++ b/modules/calib3d/src/fundam.cpp @@ -423,7 +423,7 @@ namespace cv static int run7Point( const Mat& _m1, const Mat& _m2, Mat& _fmatrix ) { - double a[7*9], w[7], u[9*9], v[9*9], c[4], r[3]; + double a[7*9], w[7], u[9*9], v[9*9], c[4], r[3] = {0}; double* f1, *f2; double t0, t1, t2; Mat A( 7, 9, CV_64F, a ); @@ -766,7 +766,7 @@ void cv::computeCorrespondEpilines( InputArray _points, int whichImage, { CV_INSTRUMENT_REGION() - double f[9]; + double f[9] = {0}; Mat tempF(3, 3, CV_64F, f); Mat points = _points.getMat(), F = _Fmat.getMat(); diff --git a/modules/calib3d/src/rho.cpp b/modules/calib3d/src/rho.cpp index 728c3f6820..c9a0a9bce2 100644 --- a/modules/calib3d/src/rho.cpp +++ b/modules/calib3d/src/rho.cpp @@ -556,7 +556,55 @@ unsigned rhoHest(Ptr p, /* Homography estimation context. */ */ RHO_HEST_REFC::RHO_HEST_REFC() : initialized(0){ + arg.src = 0; + arg.dst = 0; + arg.inl = 0; + arg.N = 0; + arg.maxD = 0; + arg.maxI = 0; + arg.rConvg = 0; + arg.cfd = 0; + arg.minInl = 0; + arg.beta = 0; + arg.flags = 0; + arg.guessH = 0; + arg.finalH = 0; + ctrl.i = 0; + ctrl.phNum = 0; + ctrl.phEndI = 0; + ctrl.phEndFpI = 0; + ctrl.phMax = 0; + ctrl.phNumInl = 0; + ctrl.numModels = 0; + ctrl.smpl = 0; + + curr.pkdPts = 0; + curr.H = 0; + curr.inl = 0; + curr.numInl = 0; + + best.H = 0; + best.inl = 0; + best.numInl = 0; + + nr.size = 0; + nr.beta = 0; + + eval.t_M = 0; + eval.m_S = 0; + eval.epsilon = 0; + eval.delta = 0; + eval.A = 0; + eval.Ntested = 0; + eval.Ntestedtotal = 0; + eval.good = 0; + eval.lambdaAccept = 0; + eval.lambdaReject = 0; + + lm.JtJ = 0; + lm.tmp1 = 0; + lm.Jte = 0; } /** diff --git a/modules/calib3d/src/upnp.cpp b/modules/calib3d/src/upnp.cpp index 1054e0bffe..7074d00ec9 100644 --- a/modules/calib3d/src/upnp.cpp +++ b/modules/calib3d/src/upnp.cpp @@ -175,7 +175,7 @@ void upnp::estimate_R_and_t(double R[3][3], double t[3]) pw0[j] /= number_of_correspondences; } - double abt[3 * 3], abt_d[3], abt_u[3 * 3], abt_v[3 * 3]; + double abt[3 * 3] = {0}, abt_d[3], abt_u[3 * 3], abt_v[3 * 3]; Mat ABt = Mat(3, 3, CV_64F, abt); Mat ABt_D = Mat(3, 1, CV_64F, abt_d); Mat ABt_U = Mat(3, 3, CV_64F, abt_u); @@ -575,7 +575,7 @@ void upnp::gauss_newton(const Mat * L_6x12, const Mat * Rho, double betas[4], do { const int iterations_number = 50; - double a[6*4], b[6], x[4]; + double a[6*4], b[6], x[4] = {0}; Mat * A = new Mat(6, 4, CV_64F, a); Mat * B = new Mat(6, 1, CV_64F, b); Mat * X = new Mat(4, 1, CV_64F, x); diff --git a/modules/core/include/opencv2/core/hal/intrin_sse.hpp b/modules/core/include/opencv2/core/hal/intrin_sse.hpp index 55bc67fed6..476178d4ce 100644 --- a/modules/core/include/opencv2/core/hal/intrin_sse.hpp +++ b/modules/core/include/opencv2/core/hal/intrin_sse.hpp @@ -63,7 +63,7 @@ struct v_uint8x16 typedef uchar lane_type; enum { nlanes = 16 }; - v_uint8x16() {} + v_uint8x16() : val(_mm_setzero_si128()) {} explicit v_uint8x16(__m128i v) : val(v) {} v_uint8x16(uchar v0, uchar v1, uchar v2, uchar v3, uchar v4, uchar v5, uchar v6, uchar v7, uchar v8, uchar v9, uchar v10, uchar v11, uchar v12, uchar v13, uchar v14, uchar v15) @@ -86,7 +86,7 @@ struct v_int8x16 typedef schar lane_type; enum { nlanes = 16 }; - v_int8x16() {} + v_int8x16() : val(_mm_setzero_si128()) {} explicit v_int8x16(__m128i v) : val(v) {} v_int8x16(schar v0, schar v1, schar v2, schar v3, schar v4, schar v5, schar v6, schar v7, schar v8, schar v9, schar v10, schar v11, schar v12, schar v13, schar v14, schar v15) @@ -109,7 +109,7 @@ struct v_uint16x8 typedef ushort lane_type; enum { nlanes = 8 }; - v_uint16x8() {} + v_uint16x8() : val(_mm_setzero_si128()) {} explicit v_uint16x8(__m128i v) : val(v) {} v_uint16x8(ushort v0, ushort v1, ushort v2, ushort v3, ushort v4, ushort v5, ushort v6, ushort v7) { @@ -129,7 +129,7 @@ struct v_int16x8 typedef short lane_type; enum { nlanes = 8 }; - v_int16x8() {} + v_int16x8() : val(_mm_setzero_si128()) {} explicit v_int16x8(__m128i v) : val(v) {} v_int16x8(short v0, short v1, short v2, short v3, short v4, short v5, short v6, short v7) { @@ -148,7 +148,7 @@ struct v_uint32x4 typedef unsigned lane_type; enum { nlanes = 4 }; - v_uint32x4() {} + v_uint32x4() : val(_mm_setzero_si128()) {} explicit v_uint32x4(__m128i v) : val(v) {} v_uint32x4(unsigned v0, unsigned v1, unsigned v2, unsigned v3) { @@ -166,7 +166,7 @@ struct v_int32x4 typedef int lane_type; enum { nlanes = 4 }; - v_int32x4() {} + v_int32x4() : val(_mm_setzero_si128()) {} explicit v_int32x4(__m128i v) : val(v) {} v_int32x4(int v0, int v1, int v2, int v3) { @@ -184,7 +184,7 @@ struct v_float32x4 typedef float lane_type; enum { nlanes = 4 }; - v_float32x4() {} + v_float32x4() : val(_mm_setzero_ps()) {} explicit v_float32x4(__m128 v) : val(v) {} v_float32x4(float v0, float v1, float v2, float v3) { @@ -202,7 +202,7 @@ struct v_uint64x2 typedef uint64 lane_type; enum { nlanes = 2 }; - v_uint64x2() {} + v_uint64x2() : val(_mm_setzero_si128()) {} explicit v_uint64x2(__m128i v) : val(v) {} v_uint64x2(uint64 v0, uint64 v1) { @@ -222,7 +222,7 @@ struct v_int64x2 typedef int64 lane_type; enum { nlanes = 2 }; - v_int64x2() {} + v_int64x2() : val(_mm_setzero_si128()) {} explicit v_int64x2(__m128i v) : val(v) {} v_int64x2(int64 v0, int64 v1) { @@ -242,7 +242,7 @@ struct v_float64x2 typedef double lane_type; enum { nlanes = 2 }; - v_float64x2() {} + v_float64x2() : val(_mm_setzero_pd()) {} explicit v_float64x2(__m128d v) : val(v) {} v_float64x2(double v0, double v1) { @@ -261,7 +261,7 @@ struct v_float16x4 typedef short lane_type; enum { nlanes = 4 }; - v_float16x4() {} + v_float16x4() : val(_mm_setzero_si128()) {} explicit v_float16x4(__m128i v) : val(v) {} v_float16x4(short v0, short v1, short v2, short v3) { diff --git a/modules/core/include/opencv2/core/mat.inl.hpp b/modules/core/include/opencv2/core/mat.inl.hpp index 332accf1ef..3006a1fed7 100644 --- a/modules/core/include/opencv2/core/mat.inl.hpp +++ b/modules/core/include/opencv2/core/mat.inl.hpp @@ -397,13 +397,13 @@ inline _InputOutputArray::_InputOutputArray(const cuda::HostMem& cuda_mem) inline Mat::Mat() : 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), step(0) {} inline Mat::Mat(int _rows, int _cols, int _type) : 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), step(0) { create(_rows, _cols, _type); } @@ -411,7 +411,7 @@ Mat::Mat(int _rows, int _cols, int _type) inline Mat::Mat(int _rows, int _cols, int _type, const Scalar& _s) : 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), step(0) { create(_rows, _cols, _type); *this = _s; @@ -420,7 +420,7 @@ Mat::Mat(int _rows, int _cols, int _type, const Scalar& _s) inline Mat::Mat(Size _sz, int _type) : 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), step(0) { create( _sz.height, _sz.width, _type ); } @@ -428,7 +428,7 @@ Mat::Mat(Size _sz, int _type) inline Mat::Mat(Size _sz, int _type, const Scalar& _s) : 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), step(0) { create(_sz.height, _sz.width, _type); *this = _s; @@ -437,7 +437,7 @@ Mat::Mat(Size _sz, int _type, const Scalar& _s) inline Mat::Mat(int _dims, const int* _sz, int _type) : 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), step(0) { create(_dims, _sz, _type); } @@ -445,7 +445,7 @@ Mat::Mat(int _dims, const int* _sz, int _type) inline Mat::Mat(int _dims, const int* _sz, int _type, const Scalar& _s) : 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), step(0) { create(_dims, _sz, _type); *this = _s; @@ -454,7 +454,7 @@ Mat::Mat(int _dims, const int* _sz, int _type, const Scalar& _s) inline Mat::Mat(const std::vector& _sz, int _type) : 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), step(0) { create(_sz, _type); } @@ -462,7 +462,7 @@ Mat::Mat(const std::vector& _sz, int _type) inline Mat::Mat(const std::vector& _sz, int _type, const Scalar& _s) : 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), step(0) { create(_sz, _type); *this = _s; @@ -472,7 +472,7 @@ inline Mat::Mat(const Mat& m) : flags(m.flags), dims(m.dims), rows(m.rows), cols(m.cols), data(m.data), datastart(m.datastart), dataend(m.dataend), datalimit(m.datalimit), allocator(m.allocator), - u(m.u), size(&rows) + u(m.u), size(&rows), step(0) { if( u ) CV_XADD(&u->refcount, 1); @@ -556,7 +556,7 @@ Mat::Mat(Size _sz, int _type, void* _data, size_t _step) template inline Mat::Mat(const std::vector<_Tp>& vec, bool copyData) : flags(MAGIC_VAL | DataType<_Tp>::type | CV_MAT_CONT_FLAG), dims(2), rows((int)vec.size()), - cols(1), data(0), datastart(0), dataend(0), allocator(0), u(0), size(&rows) + cols(1), data(0), datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) { if(vec.empty()) return; @@ -574,7 +574,7 @@ Mat::Mat(const std::vector<_Tp>& vec, bool copyData) template inline Mat::Mat(const std::array<_Tp, _Nm>& arr, bool copyData) : flags(MAGIC_VAL | DataType<_Tp>::type | CV_MAT_CONT_FLAG), dims(2), rows((int)arr.size()), - cols(1), data(0), datastart(0), dataend(0), allocator(0), u(0), size(&rows) + cols(1), data(0), datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) { if(arr.empty()) return; @@ -592,7 +592,7 @@ Mat::Mat(const std::array<_Tp, _Nm>& arr, bool copyData) template inline Mat::Mat(const Vec<_Tp, n>& vec, bool copyData) : flags(MAGIC_VAL | DataType<_Tp>::type | CV_MAT_CONT_FLAG), dims(2), rows(n), cols(1), data(0), - datastart(0), dataend(0), allocator(0), u(0), size(&rows) + datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) { if( !copyData ) { @@ -608,7 +608,7 @@ Mat::Mat(const Vec<_Tp, n>& vec, bool copyData) template inline Mat::Mat(const Matx<_Tp,m,n>& M, bool copyData) : flags(MAGIC_VAL | DataType<_Tp>::type | CV_MAT_CONT_FLAG), dims(2), rows(m), cols(n), data(0), - datastart(0), dataend(0), allocator(0), u(0), size(&rows) + datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) { if( !copyData ) { @@ -624,7 +624,7 @@ Mat::Mat(const Matx<_Tp,m,n>& M, bool copyData) template inline Mat::Mat(const Point_<_Tp>& pt, bool copyData) : flags(MAGIC_VAL | DataType<_Tp>::type | CV_MAT_CONT_FLAG), dims(2), rows(2), cols(1), data(0), - datastart(0), dataend(0), allocator(0), u(0), size(&rows) + datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) { if( !copyData ) { @@ -643,7 +643,7 @@ Mat::Mat(const Point_<_Tp>& pt, bool copyData) template inline Mat::Mat(const Point3_<_Tp>& pt, bool copyData) : flags(MAGIC_VAL | DataType<_Tp>::type | CV_MAT_CONT_FLAG), dims(2), rows(3), cols(1), data(0), - datastart(0), dataend(0), allocator(0), u(0), size(&rows) + datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) { if( !copyData ) { diff --git a/modules/core/include/opencv2/core/softfloat.hpp b/modules/core/include/opencv2/core/softfloat.hpp index 83e24d77c2..a71b6765d8 100644 --- a/modules/core/include/opencv2/core/softfloat.hpp +++ b/modules/core/include/opencv2/core/softfloat.hpp @@ -121,7 +121,7 @@ public: struct CV_EXPORTS softdouble { public: - softdouble() { } + softdouble() : v(0) { } softdouble( const softdouble& c) { v = c.v; } softdouble& operator=( const softdouble& c ) { diff --git a/modules/core/src/copy.cpp b/modules/core/src/copy.cpp index 43b9ea78fd..3494d002f2 100644 --- a/modules/core/src/copy.cpp +++ b/modules/core/src/copy.cpp @@ -284,7 +284,7 @@ void Mat::copyTo( OutputArray _dst ) const _dst.create( dims, size.p, type() ); UMat dst = _dst.getUMat(); - size_t i, sz[CV_MAX_DIM], dstofs[CV_MAX_DIM], esz = elemSize(); + size_t i, sz[CV_MAX_DIM] = {0}, dstofs[CV_MAX_DIM], esz = elemSize(); for( i = 0; i < (size_t)dims; i++ ) sz[i] = size.p[i]; sz[dims-1] *= esz; diff --git a/modules/core/src/lda.cpp b/modules/core/src/lda.cpp index a706eeb3fe..20f0604093 100644 --- a/modules/core/src/lda.cpp +++ b/modules/core/src/lda.cpp @@ -883,7 +883,7 @@ private: public: EigenvalueDecomposition() - : n(0) { } + : n(0), cdivr(0), cdivi(0), d(0), e(0), ort(0), V(0), H(0) {} // Initializes & computes the Eigenvalue Decomposition for a general matrix // given in src. This function is a port of the EigenvalueSolver in JAMA, diff --git a/modules/core/src/parallel_pthreads.cpp b/modules/core/src/parallel_pthreads.cpp index d17d3cb0bd..f4e6d07aa8 100644 --- a/modules/core/src/parallel_pthreads.cpp +++ b/modules/core/src/parallel_pthreads.cpp @@ -112,7 +112,7 @@ class ForThread { public: - ForThread(): m_task_start(false), m_parent(0), m_state(eFTNotStarted), m_id(0) + ForThread(): m_posix_thread(0), m_task_start(false), m_parent(0), m_state(eFTNotStarted), m_id(0) { } diff --git a/modules/core/src/umatrix.cpp b/modules/core/src/umatrix.cpp index ad6187896b..239e461cd9 100644 --- a/modules/core/src/umatrix.cpp +++ b/modules/core/src/umatrix.cpp @@ -824,7 +824,7 @@ void UMat::copyTo(OutputArray _dst) const return; } - size_t i, sz[CV_MAX_DIM], srcofs[CV_MAX_DIM], dstofs[CV_MAX_DIM], esz = elemSize(); + size_t i, sz[CV_MAX_DIM] = {0}, srcofs[CV_MAX_DIM], dstofs[CV_MAX_DIM], esz = elemSize(); for( i = 0; i < (size_t)dims; i++ ) sz[i] = size.p[i]; sz[dims-1] *= esz; diff --git a/modules/features2d/src/brisk.cpp b/modules/features2d/src/brisk.cpp index d6e88a129e..982987a1cc 100644 --- a/modules/features2d/src/brisk.cpp +++ b/modules/features2d/src/brisk.cpp @@ -703,7 +703,6 @@ BRISK_Impl::computeDescriptorsAndOrOrientation(InputArray _image, InputArray _ma { cv::KeyPoint& kp = keypoints[k]; const int& scale = kscales[k]; - int* pvalues = _values; const float& x = kp.pt.x; const float& y = kp.pt.y; @@ -712,7 +711,7 @@ BRISK_Impl::computeDescriptorsAndOrOrientation(InputArray _image, InputArray _ma // get the gray values in the unrotated pattern for (unsigned int i = 0; i < points_; i++) { - *(pvalues++) = smoothedIntensity(image, _integral, x, y, scale, 0, i); + _values[i] = smoothedIntensity(image, _integral, x, y, scale, 0, i); } int direction0 = 0; @@ -765,11 +764,10 @@ BRISK_Impl::computeDescriptorsAndOrOrientation(InputArray _image, InputArray _ma int shifter = 0; //unsigned int mean=0; - pvalues = _values; // get the gray values in the rotated pattern for (unsigned int i = 0; i < points_; i++) { - *(pvalues++) = smoothedIntensity(image, _integral, x, y, scale, theta, i); + _values[i] = smoothedIntensity(image, _integral, x, y, scale, theta, i); } // now iterate through all the pairings diff --git a/modules/features2d/src/evaluation.cpp b/modules/features2d/src/evaluation.cpp index 5ea882153f..6b9a03f6e0 100644 --- a/modules/features2d/src/evaluation.cpp +++ b/modules/features2d/src/evaluation.cpp @@ -481,7 +481,7 @@ void cv::evaluateFeatureDetector( const Mat& img1, const Mat& img2, const Mat& H struct DMatchForEvaluation : public DMatch { uchar isCorrect; - DMatchForEvaluation( const DMatch &dm ) : DMatch( dm ) {} + DMatchForEvaluation( const DMatch &dm ) : DMatch( dm ), isCorrect(0) {} }; static inline float recall( int correctMatchCount, int correspondenceCount ) diff --git a/modules/features2d/src/kaze/AKAZEFeatures.cpp b/modules/features2d/src/kaze/AKAZEFeatures.cpp index b1400a7a9b..43ca00db85 100644 --- a/modules/features2d/src/kaze/AKAZEFeatures.cpp +++ b/modules/features2d/src/kaze/AKAZEFeatures.cpp @@ -782,7 +782,7 @@ void AKAZEFeatures::Compute_Main_Orientation(KeyPoint& kpt, const std::vector0) dim_ = dim_param; leaf_max_size_ = get_param(params,"leaf_max_size",10); diff --git a/modules/flann/include/opencv2/flann/lsh_table.h b/modules/flann/include/opencv2/flann/lsh_table.h index 2a52fbcf7e..0907dc9fa1 100644 --- a/modules/flann/include/opencv2/flann/lsh_table.h +++ b/modules/flann/include/opencv2/flann/lsh_table.h @@ -146,6 +146,8 @@ public: */ LshTable() { + key_size_ = 0; + speed_level_ = kArray; } /** Default constructor diff --git a/modules/flann/include/opencv2/flann/result_set.h b/modules/flann/include/opencv2/flann/result_set.h index 97500195a2..7c09093978 100644 --- a/modules/flann/include/opencv2/flann/result_set.h +++ b/modules/flann/include/opencv2/flann/result_set.h @@ -303,7 +303,7 @@ public: /** Default cosntructor */ UniqueResultSet() : - worst_distance_(std::numeric_limits::max()) + is_full_(false), worst_distance_(std::numeric_limits::max()) { } diff --git a/modules/imgcodecs/src/grfmt_base.cpp b/modules/imgcodecs/src/grfmt_base.cpp index cda8b10b5e..d3223dba2a 100644 --- a/modules/imgcodecs/src/grfmt_base.cpp +++ b/modules/imgcodecs/src/grfmt_base.cpp @@ -96,6 +96,7 @@ ImageDecoder BaseImageDecoder::newDecoder() const BaseImageEncoder::BaseImageEncoder() { + m_buf = 0; m_buf_supported = false; } diff --git a/modules/imgcodecs/src/grfmt_bmp.cpp b/modules/imgcodecs/src/grfmt_bmp.cpp index 4063d5bfb2..86cacd3168 100644 --- a/modules/imgcodecs/src/grfmt_bmp.cpp +++ b/modules/imgcodecs/src/grfmt_bmp.cpp @@ -55,6 +55,9 @@ BmpDecoder::BmpDecoder() m_signature = fmtSignBmp; m_offset = -1; m_buf_supported = true; + m_origin = 0; + m_bpp = 0; + m_rle_code = BMP_RGB; } @@ -191,7 +194,7 @@ bool BmpDecoder::readData( Mat& img ) uchar* data = img.ptr(); int step = (int)img.step; bool color = img.channels() > 1; - uchar gray_palette[256]; + uchar gray_palette[256] = {0}; bool result = false; int src_pitch = ((m_width*(m_bpp != 15 ? m_bpp : 16) + 7)/8 + 3) & -4; int nch = color ? 3 : 1; diff --git a/modules/imgcodecs/src/grfmt_exr.cpp b/modules/imgcodecs/src/grfmt_exr.cpp index 71d89126ab..877197d0be 100644 --- a/modules/imgcodecs/src/grfmt_exr.cpp +++ b/modules/imgcodecs/src/grfmt_exr.cpp @@ -81,6 +81,13 @@ ExrDecoder::ExrDecoder() m_signature = "\x76\x2f\x31\x01"; m_file = 0; m_red = m_green = m_blue = 0; + m_type = ((Imf::PixelType)0); + m_iscolor = false; + m_bit_depth = 0; + m_isfloat = false; + m_ischroma = false; + m_native_depth = false; + } diff --git a/modules/imgcodecs/src/grfmt_jpeg.cpp b/modules/imgcodecs/src/grfmt_jpeg.cpp index 1f5f1e896c..d83682889a 100644 --- a/modules/imgcodecs/src/grfmt_jpeg.cpp +++ b/modules/imgcodecs/src/grfmt_jpeg.cpp @@ -341,7 +341,7 @@ int my_jpeg_load_dht (struct jpeg_decompress_struct *info, unsigned char *dht, JHUFF_TBL **hufftbl; unsigned char bits[17]; - unsigned char huffval[256]; + unsigned char huffval[256] = {0}; while (length > 16) { diff --git a/modules/imgcodecs/src/grfmt_pam.cpp b/modules/imgcodecs/src/grfmt_pam.cpp index ac7198a66f..11195dc342 100644 --- a/modules/imgcodecs/src/grfmt_pam.cpp +++ b/modules/imgcodecs/src/grfmt_pam.cpp @@ -324,6 +324,9 @@ PAMDecoder::PAMDecoder() m_buf_supported = true; bit_mode = false; selected_fmt = CV_IMWRITE_PAM_FORMAT_NULL; + m_maxval = 0; + m_channels = 0; + m_sampledepth = 0; } diff --git a/modules/imgcodecs/src/grfmt_png.cpp b/modules/imgcodecs/src/grfmt_png.cpp index c8ff2447f1..abaf6118b7 100644 --- a/modules/imgcodecs/src/grfmt_png.cpp +++ b/modules/imgcodecs/src/grfmt_png.cpp @@ -91,6 +91,7 @@ PngDecoder::PngDecoder() m_f = 0; m_buf_supported = true; m_buf_pos = 0; + m_bit_depth = 0; } diff --git a/modules/imgcodecs/src/grfmt_pxm.cpp b/modules/imgcodecs/src/grfmt_pxm.cpp index 8afd7b18b4..1750cb705c 100644 --- a/modules/imgcodecs/src/grfmt_pxm.cpp +++ b/modules/imgcodecs/src/grfmt_pxm.cpp @@ -94,6 +94,9 @@ PxMDecoder::PxMDecoder() { m_offset = -1; m_buf_supported = true; + m_bpp = 0; + m_binary = false; + m_maxval = 0; } diff --git a/modules/imgcodecs/src/grfmt_sunras.cpp b/modules/imgcodecs/src/grfmt_sunras.cpp index 34e5c4e837..aca9b36931 100644 --- a/modules/imgcodecs/src/grfmt_sunras.cpp +++ b/modules/imgcodecs/src/grfmt_sunras.cpp @@ -54,6 +54,10 @@ SunRasterDecoder::SunRasterDecoder() { m_offset = -1; m_signature = fmtSignSunRas; + m_bpp = 0; + m_encoding = RAS_STANDARD; + m_maptype = RMT_NONE; + m_maplength = 0; } @@ -157,7 +161,7 @@ bool SunRasterDecoder::readData( Mat& img ) int color = img.channels() > 1; uchar* data = img.ptr(); int step = (int)img.step; - uchar gray_palette[256]; + uchar gray_palette[256] = {0}; bool result = false; int src_pitch = ((m_width*m_bpp + 7)/8 + 1) & -2; int nch = color ? 3 : 1; diff --git a/modules/imgcodecs/src/grfmt_webp.cpp b/modules/imgcodecs/src/grfmt_webp.cpp index 1281d832e1..53dd056f59 100644 --- a/modules/imgcodecs/src/grfmt_webp.cpp +++ b/modules/imgcodecs/src/grfmt_webp.cpp @@ -62,6 +62,7 @@ namespace cv WebPDecoder::WebPDecoder() { m_buf_supported = true; + channels = 0; } WebPDecoder::~WebPDecoder() {} diff --git a/modules/imgproc/src/connectedcomponents.cpp b/modules/imgproc/src/connectedcomponents.cpp index 1887f3be13..96b87cf643 100644 --- a/modules/imgproc/src/connectedcomponents.cpp +++ b/modules/imgproc/src/connectedcomponents.cpp @@ -95,8 +95,8 @@ namespace cv{ std::vector integrals; int _nextLoc; - CCStatsOp(){} - CCStatsOp(OutputArray _statsv, OutputArray _centroidsv) : _mstatsv(&_statsv), _mcentroidsv(&_centroidsv){} + CCStatsOp() : _mstatsv(0), _mcentroidsv(0), _nextLoc(0) {} + CCStatsOp(OutputArray _statsv, OutputArray _centroidsv) : _mstatsv(&_statsv), _mcentroidsv(&_centroidsv), _nextLoc(0){} inline void init(int nlabels){ diff --git a/modules/imgproc/src/drawing.cpp b/modules/imgproc/src/drawing.cpp index ba2ec9d2f2..a31a19e995 100644 --- a/modules/imgproc/src/drawing.cpp +++ b/modules/imgproc/src/drawing.cpp @@ -178,6 +178,9 @@ LineIterator::LineIterator(const Mat& img, Point pt1, Point pt2, { ptr = img.data; err = plusDelta = minusDelta = plusStep = minusStep = count = 0; + ptr0 = 0; + step = 0; + elemSize = 0; return; } } diff --git a/modules/imgproc/src/filter.cpp b/modules/imgproc/src/filter.cpp index ff7c1e4c48..5f25f428b4 100644 --- a/modules/imgproc/src/filter.cpp +++ b/modules/imgproc/src/filter.cpp @@ -77,6 +77,9 @@ FilterEngine::FilterEngine() maxWidth = 0; wholeSize = Size(-1,-1); + dx1 = 0; + borderElemSize = 0; + dx2 = 0; } @@ -87,6 +90,11 @@ FilterEngine::FilterEngine( const Ptr& _filter2D, int _rowBorderType, int _columnBorderType, const Scalar& _borderValue ) { + startY0 = 0; + endY = 0; + dstY = 0; + dx2 = 0; + rowCount = 0; init(_filter2D, _rowFilter, _columnFilter, _srcType, _dstType, _bufType, _rowBorderType, _columnBorderType, _borderValue); } @@ -566,7 +574,7 @@ struct RowVec_8u32s struct SymmRowSmallVec_8u32s { - SymmRowSmallVec_8u32s() { smallValues = false; } + SymmRowSmallVec_8u32s() { smallValues = false; symmetryType = 0; } SymmRowSmallVec_8u32s( const Mat& _kernel, int _symmetryType ) { kernel = _kernel; @@ -870,7 +878,7 @@ struct SymmRowSmallVec_8u32s struct SymmColumnVec_32s8u { - SymmColumnVec_32s8u() { symmetryType=0; } + SymmColumnVec_32s8u() { symmetryType=0; delta = 0; } SymmColumnVec_32s8u(const Mat& _kernel, int _symmetryType, int _bits, double _delta) { symmetryType = _symmetryType; @@ -1018,7 +1026,7 @@ struct SymmColumnVec_32s8u struct SymmColumnSmallVec_32s16s { - SymmColumnSmallVec_32s16s() { symmetryType=0; } + SymmColumnSmallVec_32s16s() { symmetryType=0; delta = 0; } SymmColumnSmallVec_32s16s(const Mat& _kernel, int _symmetryType, int _bits, double _delta) { symmetryType = _symmetryType; @@ -1152,7 +1160,7 @@ struct SymmColumnSmallVec_32s16s struct RowVec_16s32f { - RowVec_16s32f() {} + RowVec_16s32f() { sse2_supported = false; } RowVec_16s32f( const Mat& _kernel ) { kernel = _kernel; @@ -1199,7 +1207,7 @@ struct RowVec_16s32f struct SymmColumnVec_32f16s { - SymmColumnVec_32f16s() { symmetryType=0; } + SymmColumnVec_32f16s() { symmetryType=0; delta = 0; sse2_supported = false; } SymmColumnVec_32f16s(const Mat& _kernel, int _symmetryType, int, double _delta) { symmetryType = _symmetryType; @@ -1355,6 +1363,9 @@ struct RowVec_32f { haveSSE = checkHardwareSupport(CV_CPU_SSE); haveAVX2 = checkHardwareSupport(CV_CPU_AVX2); +#if defined USE_IPP_SEP_FILTERS + bufsz = -1; +#endif } RowVec_32f( const Mat& _kernel ) @@ -1478,7 +1489,7 @@ private: struct SymmRowSmallVec_32f { - SymmRowSmallVec_32f() {} + SymmRowSmallVec_32f() { symmetryType = 0; } SymmRowSmallVec_32f( const Mat& _kernel, int _symmetryType ) { kernel = _kernel; @@ -1675,6 +1686,7 @@ struct SymmColumnVec_32f symmetryType=0; haveSSE = checkHardwareSupport(CV_CPU_SSE); haveAVX2 = checkHardwareSupport(CV_CPU_AVX2); + delta = 0; } SymmColumnVec_32f(const Mat& _kernel, int _symmetryType, int, double _delta) { @@ -1898,7 +1910,7 @@ if ( haveAVX2 ) struct SymmColumnSmallVec_32f { - SymmColumnSmallVec_32f() { symmetryType=0; } + SymmColumnSmallVec_32f() { symmetryType=0; delta = 0; } SymmColumnSmallVec_32f(const Mat& _kernel, int _symmetryType, int, double _delta) { symmetryType = _symmetryType; @@ -2030,7 +2042,7 @@ struct SymmColumnSmallVec_32f struct FilterVec_8u { - FilterVec_8u() {} + FilterVec_8u() { delta = 0; _nz = 0; } FilterVec_8u(const Mat& _kernel, int _bits, double _delta) { Mat kernel; @@ -2113,7 +2125,7 @@ struct FilterVec_8u struct FilterVec_8u16s { - FilterVec_8u16s() {} + FilterVec_8u16s() { delta = 0; _nz = 0; } FilterVec_8u16s(const Mat& _kernel, int _bits, double _delta) { Mat kernel; @@ -2196,7 +2208,7 @@ struct FilterVec_8u16s struct FilterVec_32f { - FilterVec_32f() {} + FilterVec_32f() { delta = 0; _nz = 0; } FilterVec_32f(const Mat& _kernel, int, double _delta) { delta = (float)_delta; diff --git a/modules/imgproc/src/grabcut.cpp b/modules/imgproc/src/grabcut.cpp index ca9b05c787..1360f36c10 100644 --- a/modules/imgproc/src/grabcut.cpp +++ b/modules/imgproc/src/grabcut.cpp @@ -104,6 +104,7 @@ GMM::GMM( Mat& _model ) for( int ci = 0; ci < componentsCount; ci++ ) if( coefs[ci] > 0 ) calcInverseCovAndDeterm( ci ); + totalSampleCount = 0; } double GMM::operator()( const Vec3d color ) const diff --git a/modules/imgproc/src/histogram.cpp b/modules/imgproc/src/histogram.cpp index 1e09caefe8..357038b36c 100644 --- a/modules/imgproc/src/histogram.cpp +++ b/modules/imgproc/src/histogram.cpp @@ -1219,16 +1219,15 @@ public: m_type = ippiGetDataType(src.type()); m_levelsNum = histSize+1; ippiHistogram_C1 = getIppiHistogramFunction_C1(src.type()); + m_fullRoi = ippiSize(src.size()); + m_bufferSize = 0; + m_specSize = 0; if(!ippiHistogram_C1) { ok = false; return; } - m_fullRoi = ippiSize(src.size()); - m_bufferSize = 0; - m_specSize = 0; - if(ippiHistogramGetBufferSize(m_type, m_fullRoi, &m_levelsNum, 1, 1, &m_specSize, &m_bufferSize) < 0) { ok = false; @@ -3530,6 +3529,8 @@ cvCalcArrBackProjectPatch( CvArr** arr, CvArr* dst, CvSize patch_size, CvHistogr CV_Error( CV_StsBadSize, "The patch width and height must be positive" ); dims = cvGetDims( hist->bins ); + if (dims < 1) + CV_Error( CV_StsOutOfRange, "Invalid number of dimensions"); cvNormalizeHist( hist, norm_factor ); for( i = 0; i < dims; i++ ) diff --git a/modules/imgproc/src/imgwarp.cpp b/modules/imgproc/src/imgwarp.cpp index 51802a58bb..fd0387d6a4 100644 --- a/modules/imgproc/src/imgwarp.cpp +++ b/modules/imgproc/src/imgwarp.cpp @@ -6171,7 +6171,7 @@ static bool ocl_warpTransform_cols4(InputArray _src, OutputArray _dst, InputArra _dst.create( dsize.area() == 0 ? src.size() : dsize, src.type() ); UMat dst = _dst.getUMat(); - float M[9]; + float M[9] = {0}; int matRows = (op_type == OCL_OP_AFFINE ? 2 : 3); Mat matM(matRows, 3, CV_32F, M), M1 = _M0.getMat(); CV_Assert( (M1.type() == CV_32F || M1.type() == CV_64F) && M1.rows == matRows && M1.cols == 3 ); @@ -6269,7 +6269,7 @@ static bool ocl_warpTransform(InputArray _src, OutputArray _dst, InputArray _M0, _dst.create( dsize.area() == 0 ? src.size() : dsize, src.type() ); UMat dst = _dst.getUMat(); - double M[9]; + double M[9] = {0}; int matRows = (op_type == OCL_OP_AFFINE ? 2 : 3); Mat matM(matRows, 3, CV_64F, M), M1 = _M0.getMat(); CV_Assert( (M1.type() == CV_32F || M1.type() == CV_64F) && @@ -6364,7 +6364,7 @@ void cv::warpAffine( InputArray _src, OutputArray _dst, if( dst.data == src.data ) src = src.clone(); - double M[6]; + double M[6] = {0}; Mat matM(2, 3, CV_64F, M); if( interpolation == INTER_AREA ) interpolation = INTER_LINEAR; diff --git a/modules/imgproc/src/lsd.cpp b/modules/imgproc/src/lsd.cpp index e504018c15..25da2b46d1 100644 --- a/modules/imgproc/src/lsd.cpp +++ b/modules/imgproc/src/lsd.cpp @@ -398,8 +398,9 @@ CV_EXPORTS Ptr createLineSegmentDetector( LineSegmentDetectorImpl::LineSegmentDetectorImpl(int _refine, double _scale, double _sigma_scale, double _quant, double _ang_th, double _log_eps, double _density_th, int _n_bins) - :SCALE(_scale), doRefine(_refine), SIGMA_SCALE(_sigma_scale), QUANT(_quant), - ANG_TH(_ang_th), LOG_EPS(_log_eps), DENSITY_TH(_density_th), N_BINS(_n_bins) + : img_width(0), img_height(0), LOG_NT(0), w_needed(false), p_needed(false), n_needed(false), + SCALE(_scale), doRefine(_refine), SIGMA_SCALE(_sigma_scale), QUANT(_quant), + ANG_TH(_ang_th), LOG_EPS(_log_eps), DENSITY_TH(_density_th), N_BINS(_n_bins) { CV_Assert(_scale > 0 && _sigma_scale > 0 && _quant >= 0 && _ang_th > 0 && _ang_th < 180 && _density_th >= 0 && _density_th < 1 && diff --git a/modules/imgproc/src/samplers.cpp b/modules/imgproc/src/samplers.cpp index df9a2ef1de..818b29daa7 100644 --- a/modules/imgproc/src/samplers.cpp +++ b/modules/imgproc/src/samplers.cpp @@ -441,7 +441,7 @@ cvGetQuadrangleSubPix( const void* srcarr, void* dstarr, const CvMat* mat ) CV_Assert( src.channels() == dst.channels() ); cv::Size win_size = dst.size(); - double matrix[6]; + double matrix[6] = {0}; cv::Mat M(2, 3, CV_64F, matrix); m.convertTo(M, CV_64F); double dx = (win_size.width - 1)*0.5; diff --git a/modules/imgproc/src/shapedescr.cpp b/modules/imgproc/src/shapedescr.cpp index 56186bb404..9661c2657d 100644 --- a/modules/imgproc/src/shapedescr.cpp +++ b/modules/imgproc/src/shapedescr.cpp @@ -359,7 +359,7 @@ cv::RotatedRect cv::fitEllipse( InputArray _points ) // New fitellipse algorithm, contributed by Dr. Daniel Weiss Point2f c(0,0); - double gfp[5], rp[5], t; + double gfp[5] = {0}, rp[5] = {0}, t; const double min_eps = 1e-8; bool is_float = depth == CV_32F; const Point* ptsi = points.ptr(); diff --git a/modules/ml/src/nbayes.cpp b/modules/ml/src/nbayes.cpp index ae82a1463f..dc70db2a0a 100644 --- a/modules/ml/src/nbayes.cpp +++ b/modules/ml/src/nbayes.cpp @@ -203,6 +203,7 @@ public: results = &_results; results_prob = !_results_prob.empty() ? &_results_prob : 0; rawOutput = _rawOutput; + value = 0; } const Mat* c; diff --git a/modules/ml/src/rtrees.cpp b/modules/ml/src/rtrees.cpp index 4482188049..6aa3c96522 100644 --- a/modules/ml/src/rtrees.cpp +++ b/modules/ml/src/rtrees.cpp @@ -81,6 +81,7 @@ public: params.use1SERule = false; params.truncatePrunedTree = false; params.priors = Mat(); + oobError = 0; } virtual ~DTreesImplForRTrees() {} diff --git a/modules/ml/src/tree.cpp b/modules/ml/src/tree.cpp index 6e066177bf..59e100cda8 100644 --- a/modules/ml/src/tree.cpp +++ b/modules/ml/src/tree.cpp @@ -115,7 +115,7 @@ DTreesImpl::WorkData::WorkData(const Ptr& _data) maxSubsetSize = 0; } -DTreesImpl::DTreesImpl() {} +DTreesImpl::DTreesImpl() : _isClassifier(false) {} DTreesImpl::~DTreesImpl() {} void DTreesImpl::clear() { diff --git a/modules/objdetect/src/cascadedetect.cpp b/modules/objdetect/src/cascadedetect.cpp index 57994fc385..8bd5193ebd 100644 --- a/modules/objdetect/src/cascadedetect.cpp +++ b/modules/objdetect/src/cascadedetect.cpp @@ -569,6 +569,9 @@ HaarEvaluator::HaarEvaluator() lbufSize = Size(0, 0); nchannels = 0; tofs = 0; + sqofs = 0; + varianceNormFactor = 0; + hasTiltedFeatures = false; } HaarEvaluator::~HaarEvaluator() @@ -770,6 +773,8 @@ LBPEvaluator::LBPEvaluator() features = makePtr >(); optfeatures = makePtr >(); scaleData = makePtr >(); + optfeaturesPtr = 0; + pwin = 0; } LBPEvaluator::~LBPEvaluator() @@ -885,6 +890,9 @@ Ptr FeatureEvaluator::create( int featureType ) CascadeClassifierImpl::CascadeClassifierImpl() { +#ifdef HAVE_OPENCL + tryOpenCL = false; +#endif } CascadeClassifierImpl::~CascadeClassifierImpl() @@ -1440,7 +1448,7 @@ void CascadeClassifierImpl::detectMultiScale( InputArray _image, std::vector &masks, const std: MultiBandBlender::MultiBandBlender(int try_gpu, int num_bands, int weight_type) { + num_bands_ = 0; setNumBands(num_bands); #if defined(HAVE_OPENCV_CUDAARITHM) && defined(HAVE_OPENCV_CUDAWARPING) diff --git a/modules/stitching/src/seam_finders.cpp b/modules/stitching/src/seam_finders.cpp index 90bf599937..9de34d5670 100644 --- a/modules/stitching/src/seam_finders.cpp +++ b/modules/stitching/src/seam_finders.cpp @@ -162,7 +162,7 @@ void VoronoiSeamFinder::findInPair(size_t first, size_t second, Rect roi) } -DpSeamFinder::DpSeamFinder(CostFunction costFunc) : costFunc_(costFunc) {} +DpSeamFinder::DpSeamFinder(CostFunction costFunc) : costFunc_(costFunc), ncomps_(0) {} void DpSeamFinder::find(const std::vector &src, const std::vector &corners, std::vector &masks) diff --git a/modules/superres/src/btv_l1.cpp b/modules/superres/src/btv_l1.cpp index 9c863411e8..c5715e7649 100644 --- a/modules/superres/src/btv_l1.cpp +++ b/modules/superres/src/btv_l1.cpp @@ -854,6 +854,9 @@ namespace BTVL1::BTVL1() { temporalAreaRadius_ = 4; + procPos_ = 0; + outPos_ = 0; + storePos_ = 0; } void BTVL1::collectGarbage() diff --git a/modules/video/src/bgfg_KNN.cpp b/modules/video/src/bgfg_KNN.cpp index 70f0b43741..fa1a6dbaec 100755 --- a/modules/video/src/bgfg_KNN.cpp +++ b/modules/video/src/bgfg_KNN.cpp @@ -89,6 +89,9 @@ public: nShadowDetection = defaultnShadowDetection2; fTau = defaultfTau;// Tau - shadow threshold name_ = "BackgroundSubtractor.KNN"; + nLongCounter = 0; + nMidCounter = 0; + nShortCounter = 0; } //! the full constructor that takes the length of the history, // the number of gaussian mixtures, the background ratio parameter and the noise strength @@ -113,6 +116,9 @@ public: nShadowDetection = defaultnShadowDetection2; fTau = defaultfTau; name_ = "BackgroundSubtractor.KNN"; + nLongCounter = 0; + nMidCounter = 0; + nShortCounter = 0; } //! the destructor ~BackgroundSubtractorKNNImpl() {} diff --git a/modules/video/src/lkpyramid.cpp b/modules/video/src/lkpyramid.cpp index c4cbf2fc60..ca591a8fcc 100644 --- a/modules/video/src/lkpyramid.cpp +++ b/modules/video/src/lkpyramid.cpp @@ -1451,7 +1451,7 @@ getRTMatrix( const Point2f* a, const Point2f* b, } else { - double sa[4][4]={{0.}}, sb[4]={0.}, m[4]; + double sa[4][4]={{0.}}, sb[4]={0.}, m[4] = {0}; Mat A( 4, 4, CV_64F, sa ), B( 4, 1, CV_64F, sb ); Mat MM( 4, 1, CV_64F, m ); diff --git a/modules/videoio/src/cap_mjpeg_encoder.cpp b/modules/videoio/src/cap_mjpeg_encoder.cpp index 0e7cc7d279..8899092760 100644 --- a/modules/videoio/src/cap_mjpeg_encoder.cpp +++ b/modules/videoio/src/cap_mjpeg_encoder.cpp @@ -96,6 +96,8 @@ public: m_end = m_start + DEFAULT_BLOCK_SIZE; m_is_opened = false; m_f = 0; + m_current = 0; + m_pos = 0; } ~BitStream() @@ -591,6 +593,12 @@ public: { rawstream = false; nstripes = -1; + height = 0; + width = 0; + moviPointer = 0; + channels = 0; + outfps = 0; + quality = 0; } MotionJpegWriter(const String& filename, double fps, Size size, bool iscolor) diff --git a/modules/videostab/include/opencv2/videostab/fast_marching.hpp b/modules/videostab/include/opencv2/videostab/fast_marching.hpp index 526b10bb09..43f8e4a729 100644 --- a/modules/videostab/include/opencv2/videostab/fast_marching.hpp +++ b/modules/videostab/include/opencv2/videostab/fast_marching.hpp @@ -63,7 +63,7 @@ namespace videostab class CV_EXPORTS FastMarchingMethod { public: - FastMarchingMethod() : inf_(1e6f) {} + FastMarchingMethod() : inf_(1e6f), size_(0) {} /** @brief Template method that runs the Fast Marching Method. diff --git a/modules/videostab/src/stabilizer.cpp b/modules/videostab/src/stabilizer.cpp index f9c09ba36c..cf25b4820c 100644 --- a/modules/videostab/src/stabilizer.cpp +++ b/modules/videostab/src/stabilizer.cpp @@ -63,6 +63,11 @@ StabilizerBase::StabilizerBase() setTrimRatio(0); setCorrectionForInclusion(false); setBorderMode(BORDER_REPLICATE); + curPos_ = 0; + doDeblurring_ = false; + doInpainting_ = false; + processingStartTime_ = 0; + curStabilizedPos_ = 0; } diff --git a/modules/videostab/src/wobble_suppression.cpp b/modules/videostab/src/wobble_suppression.cpp index 86067fbcc9..079c511b5d 100644 --- a/modules/videostab/src/wobble_suppression.cpp +++ b/modules/videostab/src/wobble_suppression.cpp @@ -85,7 +85,7 @@ namespace cv namespace videostab { -WobbleSuppressorBase::WobbleSuppressorBase() : motions_(0), stabilizationMotions_(0) +WobbleSuppressorBase::WobbleSuppressorBase() : frameCount_(0), motions_(0), motions2_(0), stabilizationMotions_(0) { setMotionEstimator(makePtr(makePtr(MM_HOMOGRAPHY))); }