diff --git a/modules/calib3d/src/calibration.cpp b/modules/calib3d/src/calibration.cpp index d58571afcf..281803f513 100644 --- a/modules/calib3d/src/calibration.cpp +++ b/modules/calib3d/src/calibration.cpp @@ -2528,6 +2528,8 @@ void cvStereoRectify( const CvMat* _cameraMatrix1, const CvMat* _cameraMatrix2, double c = _t[idx], nt = cvNorm(&t, 0, CV_L2); _uu[idx] = c > 0 ? 1 : -1; + CV_Assert(nt > 0.0); + // calculate global Z rotation cvCrossProduct(&t,&uu,&ww); double nw = cvNorm(&ww, 0, CV_L2); diff --git a/modules/core/include/opencv2/core/hal/intrin_avx512.hpp b/modules/core/include/opencv2/core/hal/intrin_avx512.hpp index 58bc48ea5f..190d435001 100644 --- a/modules/core/include/opencv2/core/hal/intrin_avx512.hpp +++ b/modules/core/include/opencv2/core/hal/intrin_avx512.hpp @@ -5,6 +5,12 @@ #ifndef OPENCV_HAL_INTRIN_AVX512_HPP #define OPENCV_HAL_INTRIN_AVX512_HPP +#if defined(_MSC_VER) && (_MSC_VER < 1920/*MSVS2019*/) +# pragma warning(disable:4146) // unary minus operator applied to unsigned type, result still unsigned +# pragma warning(disable:4309) // 'argument': truncation of constant value +# pragma warning(disable:4310) // cast truncates constant value +#endif + #define CVT_ROUND_MODES_IMPLEMENTED 0 #define CV_SIMD512 1 @@ -1599,13 +1605,13 @@ inline v_float64x8 v_lut(const double* tab, const v_int32x16& idxvec) inline void v_lut_deinterleave(const float* tab, const v_int32x16& idxvec, v_float32x16& x, v_float32x16& y) { x.val = _mm512_i32gather_ps(idxvec.val, tab, 4); - y.val = _mm512_i32gather_ps(idxvec.val, tab + 1, 4); + y.val = _mm512_i32gather_ps(idxvec.val, &tab[1], 4); } inline void v_lut_deinterleave(const double* tab, const v_int32x16& idxvec, v_float64x8& x, v_float64x8& y) { x.val = _mm512_i32gather_pd(_v512_extract_low(idxvec.val), tab, 8); - y.val = _mm512_i32gather_pd(_v512_extract_low(idxvec.val), tab + 1, 8); + y.val = _mm512_i32gather_pd(_v512_extract_low(idxvec.val), &tab[1], 8); } inline v_int8x64 v_interleave_pairs(const v_int8x64& vec) diff --git a/modules/dnn/src/layers/batch_norm_layer.cpp b/modules/dnn/src/layers/batch_norm_layer.cpp index a40260884d..791d8f1e0b 100644 --- a/modules/dnn/src/layers/batch_norm_layer.cpp +++ b/modules/dnn/src/layers/batch_norm_layer.cpp @@ -33,6 +33,7 @@ public: BatchNormLayerImpl(const LayerParams& params) + : dims(-1) { setParamsFrom(params); CV_Assert(blobs.size() >= 2); diff --git a/modules/dnn/src/layers/mvn_layer.cpp b/modules/dnn/src/layers/mvn_layer.cpp index c2d67096a3..126c86d983 100644 --- a/modules/dnn/src/layers/mvn_layer.cpp +++ b/modules/dnn/src/layers/mvn_layer.cpp @@ -147,6 +147,7 @@ public: UMat &inpMat = inputs[inpIdx]; UMat &outMat = outputs[inpIdx]; int newRows = total(shape(inpMat), 0, splitDim); + CV_Assert(newRows != 0); MatShape s = shape(newRows, inpMat.total() / newRows); UMat meanMat = UMat(s[0], 1, (use_half) ? CV_16S : CV_32F); @@ -221,6 +222,7 @@ public: UMat &inpMat = inputs[inpIdx]; UMat &outMat = outputs[inpIdx]; int newRows = total(shape(inpMat), 0, splitDim); + CV_Assert(newRows != 0); MatShape s = shape(newRows, inpMat.total() / newRows); UMat oneMat = UMat::ones(s[1], 1, CV_32F); diff --git a/modules/dnn/src/layers/reshape_layer.cpp b/modules/dnn/src/layers/reshape_layer.cpp index 2b57a734a0..5cbfc03e59 100644 --- a/modules/dnn/src/layers/reshape_layer.cpp +++ b/modules/dnn/src/layers/reshape_layer.cpp @@ -138,6 +138,7 @@ static void computeShapeByReshapeMask(const MatShape &srcShape, size_t srcTotal = total(srcShape); size_t dstTotal = total(dstShape); + CV_Assert(dstTotal != 0); if (inferDim != -1) { diff --git a/modules/dnn/src/onnx/onnx_importer.cpp b/modules/dnn/src/onnx/onnx_importer.cpp index 1522855903..6c70210c2c 100644 --- a/modules/dnn/src/onnx/onnx_importer.cpp +++ b/modules/dnn/src/onnx/onnx_importer.cpp @@ -162,6 +162,8 @@ void runLayer(LayerParams& params, const std::vector& inputs, std::vector& outputs) { Ptr layer = LayerFactory::createLayerInstance(params.type, params); + CV_Assert((bool)layer); + std::vector inpShapes(inputs.size()); int ddepth = CV_32F; for (size_t i = 0; i < inputs.size(); ++i) diff --git a/modules/imgproc/src/sumpixels.avx512_skx.cpp b/modules/imgproc/src/sumpixels.avx512_skx.cpp index b660d2b982..804b48d8c5 100644 --- a/modules/imgproc/src/sumpixels.avx512_skx.cpp +++ b/modules/imgproc/src/sumpixels.avx512_skx.cpp @@ -6,6 +6,9 @@ #include "precomp.hpp" #include "sumpixels.hpp" +#include "opencv2/core/hal/intrin.hpp" + + namespace cv { namespace { // Anonymous namespace to avoid exposing the implementation classes diff --git a/modules/python/package/cv2/__init__.py b/modules/python/package/cv2/__init__.py index 9427365dd2..5220e38553 100644 --- a/modules/python/package/cv2/__init__.py +++ b/modules/python/package/cv2/__init__.py @@ -39,7 +39,7 @@ def bootstrap(): l_vars = locals() if sys.version_info[:2] < (3, 0): - from cv2.load_config_py2 import exec_file_wrapper + from . load_config_py2 import exec_file_wrapper else: from . load_config_py3 import exec_file_wrapper diff --git a/modules/videoio/src/cap_mfx_writer.cpp b/modules/videoio/src/cap_mfx_writer.cpp index 449d24da84..07d4ec40ce 100644 --- a/modules/videoio/src/cap_mfx_writer.cpp +++ b/modules/videoio/src/cap_mfx_writer.cpp @@ -31,7 +31,7 @@ inline mfxU32 codecIdByFourCC(int fourcc) } VideoWriter_IntelMFX::VideoWriter_IntelMFX(const String &filename, int _fourcc, double fps, Size frameSize_, bool) - : session(0), plugin(0), deviceHandler(0), bs(0), encoder(0), pool(0), frameSize(frameSize_), good(false) + : session(0), plugin(0), deviceHandler(0), bs(0), encoder(0), pool(0), outSurface(NULL), frameSize(frameSize_), good(false) { mfxStatus res = MFX_ERR_NONE; diff --git a/samples/dnn/js_face_recognition.html b/samples/dnn/js_face_recognition.html index 887f5f1bd8..553433e5ee 100644 --- a/samples/dnn/js_face_recognition.html +++ b/samples/dnn/js_face_recognition.html @@ -3,12 +3,12 @@ - - +