}
+ 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;
#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>