Merge remote-tracking branch 'upstream/3.4' into merge-3.4
authorAlexander Alekhin <alexander.a.alekhin@gmail.com>
Mon, 10 Jun 2019 19:03:53 +0000 (19:03 +0000)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Mon, 10 Jun 2019 19:05:28 +0000 (19:05 +0000)
20 files changed:
1  2 
CMakeLists.txt
cmake/OpenCVFindLibsGrfmt.cmake
modules/core/include/opencv2/core.hpp
modules/core/include/opencv2/core/hal/intrin_cpp.hpp
modules/core/include/opencv2/core/mat.hpp
modules/core/src/matrix_wrap.cpp
modules/core/src/parallel.cpp
modules/dnn/include/opencv2/dnn/dnn.hpp
modules/dnn/src/dnn.cpp
modules/dnn/src/onnx/onnx_importer.cpp
modules/dnn/src/op_inf_engine.cpp
modules/dnn/src/op_inf_engine.hpp
modules/dnn/test/test_misc.cpp
modules/features2d/src/fast.cpp
modules/imgcodecs/src/utils.cpp
modules/imgcodecs/test/test_grfmt.cpp
modules/imgproc/src/canny.cpp
modules/imgproc/src/corner.cpp
modules/imgproc/src/imgwarp.cpp
modules/video/src/lkpyramid.cpp

diff --cc CMakeLists.txt
Simple merge
Simple merge
Simple merge
@@@ -1880,9 -1879,79 +1880,79 @@@ void _OutputArray::assign(const Mat& m
  }
  
  
+ void _OutputArray::move(UMat& u) const
+ {
+     if (fixedSize())
+     {
+         // TODO Performance warning
+         assign(u);
+         return;
+     }
+     int k = kind();
+     if (k == UMAT)
+     {
+ #ifdef CV_CXX11
+         *(UMat*)obj = std::move(u);
+ #else
+         *(UMat*)obj = u;
+         u.release();
+ #endif
+     }
+     else if (k == MAT)
+     {
+         u.copyTo(*(Mat*)obj); // TODO check u.getMat()
+         u.release();
+     }
+     else if (k == MATX)
+     {
+         u.copyTo(getMat()); // TODO check u.getMat()
+         u.release();
+     }
+     else
+     {
+         CV_Error(Error::StsNotImplemented, "");
+     }
+ }
+ void _OutputArray::move(Mat& m) const
+ {
+     if (fixedSize())
+     {
+         // TODO Performance warning
+         assign(m);
+         return;
+     }
+     int k = kind();
+     if (k == UMAT)
+     {
+         m.copyTo(*(UMat*)obj); // TODO check m.getUMat()
+         m.release();
+     }
+     else if (k == MAT)
+     {
+ #ifdef CV_CXX11
+         *(Mat*)obj = std::move(m);
+ #else
+         *(Mat*)obj = m;
+         m.release();
+ #endif
+     }
+     else if (k == MATX)
+     {
+         m.copyTo(getMat());
+         m.release();
+     }
+     else
+     {
+         CV_Error(Error::StsNotImplemented, "");
+     }
+ }
  void _OutputArray::assign(const std::vector<UMat>& v) const
  {
 -    int k = kind();
 +    _InputArray::KindFlag k = kind();
      if (k == STD_VECTOR_UMAT)
      {
          std::vector<UMat>& this_v = *(std::vector<UMat>*)obj;
Simple merge
  
  #include <vector>
  #include <opencv2/core.hpp>
- #ifdef CV_CXX11
- #include <future>
- #endif
+ #include "opencv2/core/async.hpp"
  
 -#if !defined CV_DOXYGEN && !defined CV_STATIC_ANALYSIS && !defined CV_DNN_DONT_ADD_EXPERIMENTAL_NS
 -#define CV__DNN_EXPERIMENTAL_NS_BEGIN namespace experimental_dnn_34_v12 {
 -#define CV__DNN_EXPERIMENTAL_NS_END }
 -namespace cv { namespace dnn { namespace experimental_dnn_34_v12 { } using namespace experimental_dnn_34_v12; }}
 -#else
 -#define CV__DNN_EXPERIMENTAL_NS_BEGIN
 -#define CV__DNN_EXPERIMENTAL_NS_END
 -#endif
 +#include "../dnn/version.hpp"
  
  #include <opencv2/dnn/dict.hpp>
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge