DRAFT opencv_3.2: Import from meta-oe@0abf5af3ffd3d13c009a8ffcd5a6f045c36be837
This commit is contained in:
parent
0d39ac3999
commit
c90e6d70e9
|
@ -0,0 +1,28 @@
|
||||||
|
From 049f931207631aa54af55a2917318d032b2ef3fa Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
|
||||||
|
Date: Thu, 31 Mar 2016 00:20:15 +0200
|
||||||
|
Subject: [PATCH] 3rdparty/ippicv: Use pre-downloaded ipp
|
||||||
|
|
||||||
|
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
|
||||||
|
---
|
||||||
|
3rdparty/ippicv/downloader.cmake | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/3rdparty/ippicv/downloader.cmake b/3rdparty/ippicv/downloader.cmake
|
||||||
|
index a6016dbe10bc..af4062c8e95e 100644
|
||||||
|
--- a/3rdparty/ippicv/downloader.cmake
|
||||||
|
+++ b/3rdparty/ippicv/downloader.cmake
|
||||||
|
@@ -31,8 +31,10 @@ function(_icv_downloader)
|
||||||
|
return() # Not supported
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+ if(NOT DEFINED OPENCV_ICV_PATH)
|
||||||
|
set(OPENCV_ICV_UNPACK_PATH "${CMAKE_BINARY_DIR}/3rdparty/ippicv")
|
||||||
|
set(OPENCV_ICV_PATH "${OPENCV_ICV_UNPACK_PATH}${OPENCV_ICV_PACKAGE_SUBDIR}")
|
||||||
|
+ endif()
|
||||||
|
|
||||||
|
if(DEFINED OPENCV_ICV_PACKAGE_DOWNLOADED
|
||||||
|
AND OPENCV_ICV_PACKAGE_DOWNLOADED STREQUAL OPENCV_ICV_PACKAGE_HASH
|
||||||
|
--
|
||||||
|
2.8.0.rc3
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
From 49d1f7c40a5d097f23671318045ac54bc07846cf Mon Sep 17 00:00:00 2001
|
||||||
|
From: Bian Naimeng <biannm@cn.fujitsu.com>
|
||||||
|
Date: Wed, 19 Apr 2017 03:11:37 +0900
|
||||||
|
Subject: [PATCH] Make opencv-ts create share library intead of static.
|
||||||
|
|
||||||
|
Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
|
||||||
|
---
|
||||||
|
modules/ts/CMakeLists.txt | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/modules/ts/CMakeLists.txt b/modules/ts/CMakeLists.txt
|
||||||
|
index bb56da2..7bb4ce9 100644
|
||||||
|
--- a/modules/ts/CMakeLists.txt
|
||||||
|
+++ b/modules/ts/CMakeLists.txt
|
||||||
|
@@ -4,7 +4,7 @@ if(IOS)
|
||||||
|
ocv_module_disable(ts)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-set(OPENCV_MODULE_TYPE STATIC)
|
||||||
|
+#set(OPENCV_MODULE_TYPE STATIC)
|
||||||
|
set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE)
|
||||||
|
|
||||||
|
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef)
|
||||||
|
--
|
||||||
|
1.8.4.2
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
From 69f9707678190f6a0948a547dce948251f972676 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Randy MacLeod <Randy.MacLeod@windriver.com>
|
||||||
|
Date: Wed, 26 Apr 2017 14:57:30 -0400
|
||||||
|
Subject: [PATCH 1/2] Revert "cuda: fix fp16 compilation"
|
||||||
|
|
||||||
|
This reverts commit 12e00827be40576b686ea4438a6e6ef85208743d.
|
||||||
|
---
|
||||||
|
modules/core/include/opencv2/core/cvdef.h | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules/core/include/opencv2/core/cvdef.h b/modules/core/include/opencv2/core/cvdef.h
|
||||||
|
index 699b166..efc24ca 100644
|
||||||
|
--- a/modules/core/include/opencv2/core/cvdef.h
|
||||||
|
+++ b/modules/core/include/opencv2/core/cvdef.h
|
||||||
|
@@ -303,8 +303,7 @@ enum CpuFeatures {
|
||||||
|
#define CV_2PI 6.283185307179586476925286766559
|
||||||
|
#define CV_LOG2 0.69314718055994530941723212145818
|
||||||
|
|
||||||
|
-#if defined __ARM_FP16_FORMAT_IEEE \
|
||||||
|
- && !defined __CUDACC__
|
||||||
|
+#if defined (__ARM_FP16_FORMAT_IEEE)
|
||||||
|
# define CV_FP16_TYPE 1
|
||||||
|
#else
|
||||||
|
# define CV_FP16_TYPE 0
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
From a4abe478bf4514ec95aa10b2d6f258647ce325f5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
|
||||||
|
Date: Fri, 19 May 2017 04:27:50 +0900
|
||||||
|
Subject: [PATCH] To fix errors as following:
|
||||||
|
|
||||||
|
"test_main.cpp:45: undefined reference to `parseCustomOptions(int, char**)'"
|
||||||
|
"perf_abs.cpp:13: undefined reference to `cvtest::param_seed'"
|
||||||
|
"test_superres.cpp:270: undefined reference to `checkIppStatus()'"
|
||||||
|
|
||||||
|
Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
|
||||||
|
|
||||||
|
Also add the visibility changes for certain OpenCL-related functions in
|
||||||
|
ts module.
|
||||||
|
|
||||||
|
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
|
||||||
|
---
|
||||||
|
modules/ts/include/opencv2/ts.hpp | 6 +++---
|
||||||
|
modules/ts/include/opencv2/ts/ocl_test.hpp | 2 +-
|
||||||
|
modules/ts/include/opencv2/ts/ts_ext.hpp | 2 +-
|
||||||
|
3 files changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules/ts/include/opencv2/ts.hpp b/modules/ts/include/opencv2/ts.hpp
|
||||||
|
index c573905..230f598 100644
|
||||||
|
--- a/modules/ts/include/opencv2/ts.hpp
|
||||||
|
+++ b/modules/ts/include/opencv2/ts.hpp
|
||||||
|
@@ -539,7 +539,7 @@ protected:
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
-extern uint64 param_seed;
|
||||||
|
+CV_EXPORTS extern uint64 param_seed;
|
||||||
|
|
||||||
|
struct CV_EXPORTS DefaultRngAuto
|
||||||
|
{
|
||||||
|
@@ -595,14 +595,14 @@ CV_EXPORTS std::string findDataFile(const std::string& relative_path, bool requi
|
||||||
|
|
||||||
|
#ifdef HAVE_OPENCL
|
||||||
|
namespace ocl {
|
||||||
|
-void dumpOpenCLDevice();
|
||||||
|
+CV_EXPORTS void dumpOpenCLDevice();
|
||||||
|
}
|
||||||
|
#define TEST_DUMP_OCL_INFO cvtest::ocl::dumpOpenCLDevice();
|
||||||
|
#else
|
||||||
|
#define TEST_DUMP_OCL_INFO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-void parseCustomOptions(int argc, char **argv);
|
||||||
|
+CV_EXPORTS void parseCustomOptions(int argc, char **argv);
|
||||||
|
|
||||||
|
#define CV_TEST_MAIN(resourcesubdir, ...) \
|
||||||
|
int main(int argc, char **argv) \
|
||||||
|
diff --git a/modules/ts/include/opencv2/ts/ocl_test.hpp b/modules/ts/include/opencv2/ts/ocl_test.hpp
|
||||||
|
index c967cd7..ff35b40 100644
|
||||||
|
--- a/modules/ts/include/opencv2/ts/ocl_test.hpp
|
||||||
|
+++ b/modules/ts/include/opencv2/ts/ocl_test.hpp
|
||||||
|
@@ -84,7 +84,7 @@ inline UMat ToUMat(InputArray src)
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
|
||||||
|
-extern int test_loop_times;
|
||||||
|
+CV_EXPORTS extern int test_loop_times;
|
||||||
|
|
||||||
|
#define MAX_VALUE 357
|
||||||
|
|
||||||
|
diff --git a/modules/ts/include/opencv2/ts/ts_ext.hpp b/modules/ts/include/opencv2/ts/ts_ext.hpp
|
||||||
|
index 05ccc63..8075065 100644
|
||||||
|
--- a/modules/ts/include/opencv2/ts/ts_ext.hpp
|
||||||
|
+++ b/modules/ts/include/opencv2/ts/ts_ext.hpp
|
||||||
|
@@ -9,7 +9,7 @@
|
||||||
|
#define OPENCV_TS_EXT_HPP
|
||||||
|
|
||||||
|
namespace cvtest {
|
||||||
|
-void checkIppStatus();
|
||||||
|
+CV_EXPORTS void checkIppStatus();
|
||||||
|
}
|
||||||
|
|
||||||
|
#define CV_TEST_INIT \
|
||||||
|
--
|
||||||
|
2.9.4
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
From 711f07a34ceb504e8f75e978692201efa58268ca Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dinar Valeev <dvaleev@suse.com>
|
||||||
|
Date: Thu, 16 Jan 2014 21:53:49 +0100
|
||||||
|
Subject: [PATCH] Use __vector instead of vector as suggests Eigen
|
||||||
|
|
||||||
|
This fixes build on PowerPC where Eigen unsets vector, bool and pixel
|
||||||
|
|
||||||
|
Signed-off-by: Dinar Valeev <dvaleev@suse.com>
|
||||||
|
|
||||||
|
This patch is already part of OpenCV v3.0. The patch can be obtained
|
||||||
|
from:
|
||||||
|
|
||||||
|
https://github.com/Itseez/opencv/commit/711f07a34ceb504e8f75e978692201efa58268ca.patch
|
||||||
|
|
||||||
|
Upstream-Status: Backport [commit 711f07a34c, part of version 3.0]
|
||||||
|
|
||||||
|
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
|
||||||
|
---
|
||||||
|
3rdparty/include/opencl/1.2/CL/cl_platform.h | 14 +++++++-------
|
||||||
|
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/3rdparty/include/opencl/1.2/CL/cl_platform.h b/3rdparty/include/opencl/1.2/CL/cl_platform.h
|
||||||
|
index e94949a..42c35d5 100644
|
||||||
|
--- a/3rdparty/include/opencl/1.2/CL/cl_platform.h
|
||||||
|
+++ b/3rdparty/include/opencl/1.2/CL/cl_platform.h
|
||||||
|
@@ -332,13 +332,13 @@ typedef unsigned int cl_GLenum;
|
||||||
|
/* Define basic vector types */
|
||||||
|
#if defined( __VEC__ )
|
||||||
|
#include <altivec.h> /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */
|
||||||
|
- typedef vector unsigned char __cl_uchar16;
|
||||||
|
- typedef vector signed char __cl_char16;
|
||||||
|
- typedef vector unsigned short __cl_ushort8;
|
||||||
|
- typedef vector signed short __cl_short8;
|
||||||
|
- typedef vector unsigned int __cl_uint4;
|
||||||
|
- typedef vector signed int __cl_int4;
|
||||||
|
- typedef vector float __cl_float4;
|
||||||
|
+ typedef __vector unsigned char __cl_uchar16;
|
||||||
|
+ typedef __vector signed char __cl_char16;
|
||||||
|
+ typedef __vector unsigned short __cl_ushort8;
|
||||||
|
+ typedef __vector signed short __cl_short8;
|
||||||
|
+ typedef __vector unsigned int __cl_uint4;
|
||||||
|
+ typedef __vector signed int __cl_int4;
|
||||||
|
+ typedef __vector float __cl_float4;
|
||||||
|
#define __CL_UCHAR16__ 1
|
||||||
|
#define __CL_CHAR16__ 1
|
||||||
|
#define __CL_USHORT8__ 1
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
|
@ -0,0 +1,243 @@
|
||||||
|
From 69f86025978b9bbbefa54a7248316a859773aeaf Mon Sep 17 00:00:00 2001
|
||||||
|
From: berak <px1704@web.de>
|
||||||
|
Date: Sat, 4 Mar 2017 12:38:50 +0100
|
||||||
|
Subject: [PATCH] tracking: make opencv_dnn dependancy optional
|
||||||
|
|
||||||
|
Upstream-status: Backport [https://github.com/opencv/opencv_contrib/commit/43925b60d392fbd01d6b0449713f010f9babe448]
|
||||||
|
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
modules/tracking/CMakeLists.txt | 3 +--
|
||||||
|
modules/tracking/samples/goturnTracker.cpp | 22 +++++++++++++++++++---
|
||||||
|
modules/tracking/samples/multiTracker_dataset.cpp | 1 +
|
||||||
|
modules/tracking/samples/tracker_dataset.cpp | 1 +
|
||||||
|
modules/tracking/src/gtrTracker.cpp | 11 ++++++++++-
|
||||||
|
modules/tracking/src/gtrTracker.hpp | 12 ++++++++----
|
||||||
|
modules/tracking/src/gtrUtils.cpp | 6 +++---
|
||||||
|
modules/tracking/src/gtrUtils.hpp | 5 ++---
|
||||||
|
modules/tracking/src/tracker.cpp | 1 +
|
||||||
|
9 files changed, 46 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules/tracking/CMakeLists.txt b/modules/tracking/CMakeLists.txt
|
||||||
|
index a8b3183..d27f999 100644
|
||||||
|
--- a/modules/tracking/CMakeLists.txt
|
||||||
|
+++ b/modules/tracking/CMakeLists.txt
|
||||||
|
@@ -1,2 +1 @@
|
||||||
|
-set(the_description "Tracking API")
|
||||||
|
-ocv_define_module(tracking opencv_imgproc opencv_core opencv_video opencv_highgui opencv_dnn opencv_plot OPTIONAL opencv_datasets WRAP python)
|
||||||
|
\ No newline at end of file
|
||||||
|
+ocv_define_module(tracking opencv_imgproc opencv_core opencv_video opencv_highgui opencv_plot OPTIONAL opencv_dnn opencv_datasets WRAP python)
|
||||||
|
diff --git a/modules/tracking/samples/goturnTracker.cpp b/modules/tracking/samples/goturnTracker.cpp
|
||||||
|
index 389771e..1e6632d 100644
|
||||||
|
--- a/modules/tracking/samples/goturnTracker.cpp
|
||||||
|
+++ b/modules/tracking/samples/goturnTracker.cpp
|
||||||
|
@@ -45,6 +45,9 @@
|
||||||
|
//1 - Train you own GOTURN model using <https://github.com/Auron-X/GOTURN_Training_Toolkit>
|
||||||
|
//2 - Download pretrained caffemodel from <https://github.com/opencv/opencv_extra>
|
||||||
|
|
||||||
|
+#include "opencv2/opencv_modules.hpp"
|
||||||
|
+#if defined(HAVE_OPENCV_DNN) && defined(HAVE_OPENCV_DATASETS)
|
||||||
|
+
|
||||||
|
#include "opencv2/datasets/track_alov.hpp"
|
||||||
|
#include <opencv2/core/utility.hpp>
|
||||||
|
#include <opencv2/tracking.hpp>
|
||||||
|
@@ -65,8 +68,8 @@ static bool startSelection = false;
|
||||||
|
Rect2d boundingBox;
|
||||||
|
|
||||||
|
static const char* keys =
|
||||||
|
-{ "{@dataset_path |true| Dataset path }"
|
||||||
|
-"{@dataset_id |1| Dataset ID }"
|
||||||
|
+{ "{@dataset_path || Dataset path }"
|
||||||
|
+ "{@dataset_id |1| Dataset ID }"
|
||||||
|
};
|
||||||
|
|
||||||
|
static void onMouse(int event, int x, int y, int, void*)
|
||||||
|
@@ -144,9 +147,14 @@ int main(int argc, char *argv[])
|
||||||
|
Ptr<cv::datasets::TRACK_alov> dataset = TRACK_alov::create();
|
||||||
|
dataset->load(datasetRootPath);
|
||||||
|
dataset->initDataset(datasetID);
|
||||||
|
-
|
||||||
|
//Read first frame
|
||||||
|
dataset->getNextFrame(frame);
|
||||||
|
+ if (frame.empty())
|
||||||
|
+ {
|
||||||
|
+ cout << "invalid dataset: " << datasetRootPath << endl;
|
||||||
|
+ return -2;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
frame.copyTo(image);
|
||||||
|
rectangle(image, boundingBox, Scalar(255, 0, 0), 2, 1);
|
||||||
|
imshow("GOTURN Tracking", image);
|
||||||
|
@@ -215,3 +223,11 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+#else // ! HAVE_OPENCV_DNN && HAVE_OPENCV_DATASETS
|
||||||
|
+#include <opencv2/core.hpp>
|
||||||
|
+int main() {
|
||||||
|
+ CV_Error(cv::Error::StsNotImplemented , "this sample needs to be built with opencv_datasets and opencv_dnn !");
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
diff --git a/modules/tracking/samples/multiTracker_dataset.cpp b/modules/tracking/samples/multiTracker_dataset.cpp
|
||||||
|
index 2826b19..b5c27da 100644
|
||||||
|
--- a/modules/tracking/samples/multiTracker_dataset.cpp
|
||||||
|
+++ b/modules/tracking/samples/multiTracker_dataset.cpp
|
||||||
|
@@ -234,6 +234,7 @@ int main(int argc, char *argv[])
|
||||||
|
}
|
||||||
|
|
||||||
|
#else // ! HAVE_OPENCV_DATASETS
|
||||||
|
+#include <opencv2/core.hpp>
|
||||||
|
int main() {
|
||||||
|
CV_Error(cv::Error::StsNotImplemented , "this sample needs to be built with opencv_datasets !");
|
||||||
|
return -1;
|
||||||
|
diff --git a/modules/tracking/samples/tracker_dataset.cpp b/modules/tracking/samples/tracker_dataset.cpp
|
||||||
|
index 8b7832a..6178105 100644
|
||||||
|
--- a/modules/tracking/samples/tracker_dataset.cpp
|
||||||
|
+++ b/modules/tracking/samples/tracker_dataset.cpp
|
||||||
|
@@ -234,6 +234,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
|
|
||||||
|
#else // ! HAVE_OPENCV_DATASETS
|
||||||
|
+#include <opencv2/core.hpp>
|
||||||
|
int main() {
|
||||||
|
CV_Error(cv::Error::StsNotImplemented , "this sample needs to be built with opencv_datasets !");
|
||||||
|
return -1;
|
||||||
|
diff --git a/modules/tracking/src/gtrTracker.cpp b/modules/tracking/src/gtrTracker.cpp
|
||||||
|
index 58debfd..4904f47 100644
|
||||||
|
--- a/modules/tracking/src/gtrTracker.cpp
|
||||||
|
+++ b/modules/tracking/src/gtrTracker.cpp
|
||||||
|
@@ -38,7 +38,7 @@
|
||||||
|
// the use of this software, even if advised of the possibility of such damage.
|
||||||
|
//
|
||||||
|
//M*/
|
||||||
|
-
|
||||||
|
+#include "opencv2/opencv_modules.hpp"
|
||||||
|
#include "gtrTracker.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
@@ -54,9 +54,16 @@ void TrackerGOTURN::Params::write(cv::FileStorage& /*fs*/) const {}
|
||||||
|
|
||||||
|
Ptr<TrackerGOTURN> TrackerGOTURN::createTracker(const TrackerGOTURN::Params ¶meters)
|
||||||
|
{
|
||||||
|
+#ifdef HAVE_OPENCV_DNN
|
||||||
|
return Ptr<gtr::TrackerGOTURNImpl>(new gtr::TrackerGOTURNImpl(parameters));
|
||||||
|
+#else
|
||||||
|
+ (void)(parameters);
|
||||||
|
+ CV_ErrorNoReturn(cv::Error::StsNotImplemented , "to use GOTURN, the tracking module needs to be built with opencv_dnn !");
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_OPENCV_DNN
|
||||||
|
namespace gtr
|
||||||
|
{
|
||||||
|
|
||||||
|
@@ -183,9 +190,11 @@ bool TrackerGOTURNImpl::updateImpl(const Mat& image, Rect2d& boundingBox)
|
||||||
|
//Set new model image and BB from current frame
|
||||||
|
((TrackerGOTURNModel*)static_cast<TrackerModel*>(model))->setImage(curFrame);
|
||||||
|
((TrackerGOTURNModel*)static_cast<TrackerModel*>(model))->setBoudingBox(curBB);
|
||||||
|
+
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
+#endif // OPENCV_HAVE_DNN
|
||||||
|
|
||||||
|
}
|
||||||
|
diff --git a/modules/tracking/src/gtrTracker.hpp b/modules/tracking/src/gtrTracker.hpp
|
||||||
|
index 34f2c48..21ae3d9 100644
|
||||||
|
--- a/modules/tracking/src/gtrTracker.hpp
|
||||||
|
+++ b/modules/tracking/src/gtrTracker.hpp
|
||||||
|
@@ -45,11 +45,15 @@
|
||||||
|
|
||||||
|
#include "precomp.hpp"
|
||||||
|
#include "opencv2/video/tracking.hpp"
|
||||||
|
-#include "opencv2/dnn.hpp"
|
||||||
|
#include "gtrUtils.hpp"
|
||||||
|
#include "opencv2/imgproc.hpp"
|
||||||
|
-#include<algorithm>
|
||||||
|
-#include<limits.h>
|
||||||
|
+
|
||||||
|
+#include <algorithm>
|
||||||
|
+#include <limits.h>
|
||||||
|
+
|
||||||
|
+#include "opencv2/opencv_modules.hpp"
|
||||||
|
+#ifdef HAVE_OPENCV_DNN
|
||||||
|
+#include "opencv2/dnn.hpp"
|
||||||
|
|
||||||
|
namespace cv
|
||||||
|
{
|
||||||
|
@@ -72,5 +76,5 @@ public:
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
diff --git a/modules/tracking/src/gtrUtils.cpp b/modules/tracking/src/gtrUtils.cpp
|
||||||
|
index 0df1197..e80dda1 100644
|
||||||
|
--- a/modules/tracking/src/gtrUtils.cpp
|
||||||
|
+++ b/modules/tracking/src/gtrUtils.cpp
|
||||||
|
@@ -58,7 +58,7 @@ double generateRandomLaplacian(double b, double m)
|
||||||
|
return m - b*log(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
-Rect2f anno2rect(vector<Point2f> annoBB)
|
||||||
|
+Rect2f anno2rect(std::vector<Point2f> annoBB)
|
||||||
|
{
|
||||||
|
Rect2f rectBB;
|
||||||
|
rectBB.x = min(annoBB[0].x, annoBB[1].x);
|
||||||
|
@@ -69,9 +69,9 @@ Rect2f anno2rect(vector<Point2f> annoBB)
|
||||||
|
return rectBB;
|
||||||
|
}
|
||||||
|
|
||||||
|
-vector <TrainingSample> gatherFrameSamples(Mat prevFrame, Mat currFrame, Rect2f prevBB, Rect2f currBB)
|
||||||
|
+std::vector <TrainingSample> gatherFrameSamples(Mat prevFrame, Mat currFrame, Rect2f prevBB, Rect2f currBB)
|
||||||
|
{
|
||||||
|
- vector <TrainingSample> trainingSamples;
|
||||||
|
+ std::vector <TrainingSample> trainingSamples;
|
||||||
|
Point2f currCenter, prevCenter;
|
||||||
|
Rect2f targetPatchRect, searchPatchRect;
|
||||||
|
Mat targetPatch, searchPatch;
|
||||||
|
diff --git a/modules/tracking/src/gtrUtils.hpp b/modules/tracking/src/gtrUtils.hpp
|
||||||
|
index 8f388be..41aad21 100644
|
||||||
|
--- a/modules/tracking/src/gtrUtils.hpp
|
||||||
|
+++ b/modules/tracking/src/gtrUtils.hpp
|
||||||
|
@@ -4,7 +4,6 @@
|
||||||
|
#include "precomp.hpp"
|
||||||
|
#include <vector>
|
||||||
|
#include "opencv2/highgui.hpp"
|
||||||
|
-#include <opencv2/datasets/track_alov.hpp>
|
||||||
|
|
||||||
|
namespace cv
|
||||||
|
{
|
||||||
|
@@ -50,10 +49,10 @@ struct TrainingSample
|
||||||
|
double generateRandomLaplacian(double b, double m);
|
||||||
|
|
||||||
|
//Convert ALOV300++ anno coordinates to Rectangle BB
|
||||||
|
-Rect2f anno2rect(vector<Point2f> annoBB);
|
||||||
|
+Rect2f anno2rect(std::vector<Point2f> annoBB);
|
||||||
|
|
||||||
|
//Gather samples from random video frame
|
||||||
|
-vector <TrainingSample> gatherFrameSamples(Mat prevFrame, Mat currFrame, Rect2f prevBB, Rect2f currBB);
|
||||||
|
+std::vector <TrainingSample> gatherFrameSamples(Mat prevFrame, Mat currFrame, Rect2f prevBB, Rect2f currBB);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/modules/tracking/src/tracker.cpp b/modules/tracking/src/tracker.cpp
|
||||||
|
index 8127f2a..b96aca8 100644
|
||||||
|
--- a/modules/tracking/src/tracker.cpp
|
||||||
|
+++ b/modules/tracking/src/tracker.cpp
|
||||||
|
@@ -112,6 +112,7 @@ Ptr<Tracker> Tracker::create( const String& trackerType )
|
||||||
|
BOILERPLATE_CODE("TLD",TrackerTLD);
|
||||||
|
BOILERPLATE_CODE("KCF",TrackerKCF);
|
||||||
|
BOILERPLATE_CODE("GOTURN", TrackerGOTURN);
|
||||||
|
+
|
||||||
|
return Ptr<Tracker>();
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.9.4
|
||||||
|
|
|
@ -0,0 +1,245 @@
|
||||||
|
From 9108e39e5584ef9b41f80751639b4ec72b3e9538 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Randy MacLeod <Randy.MacLeod@windriver.com>
|
||||||
|
Date: Wed, 26 Apr 2017 15:00:32 -0400
|
||||||
|
Subject: [PATCH 2/2] Revert "check FP16 build condition correctly"
|
||||||
|
|
||||||
|
This reverts commit c7cb116dc08441fe56cf82d5b21f929e5b674c13.
|
||||||
|
|
||||||
|
Fix up revert conflicts to take previous behaviour.
|
||||||
|
---
|
||||||
|
cmake/OpenCVCompilerOptions.cmake | 45 +++++++++--------------
|
||||||
|
modules/core/include/opencv2/core/cvdef.h | 2 +-
|
||||||
|
modules/core/src/convert.cpp | 11 +++---
|
||||||
|
modules/core/test/test_intrin.cpp | 60 ++++++++++++++-----------------
|
||||||
|
4 files changed, 48 insertions(+), 70 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake
|
||||||
|
index 5bb0479..4b19fdb 100644
|
||||||
|
--- a/cmake/OpenCVCompilerOptions.cmake
|
||||||
|
+++ b/cmake/OpenCVCompilerOptions.cmake
|
||||||
|
@@ -185,7 +185,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
add_extra_compiler_option("-mfp16-format=ieee")
|
||||||
|
endif(ARM)
|
||||||
|
if(ENABLE_NEON)
|
||||||
|
- add_extra_compiler_option("-mfpu=neon")
|
||||||
|
+ add_extra_compiler_option("-mfpu=neon-fp16")
|
||||||
|
endif()
|
||||||
|
if(ENABLE_VFPV3 AND NOT ENABLE_NEON)
|
||||||
|
add_extra_compiler_option("-mfpu=vfpv3")
|
||||||
|
@@ -370,34 +370,6 @@ if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_OPENCV_GCC_VERSION_NUM GREATER 399)
|
||||||
|
add_extra_compiler_option(-fvisibility-inlines-hidden)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-if(NOT OPENCV_FP16_DISABLE AND NOT IOS)
|
||||||
|
- if(ARM AND ENABLE_NEON)
|
||||||
|
- set(FP16_OPTION "-mfpu=neon-fp16")
|
||||||
|
- elseif((X86 OR X86_64) AND NOT MSVC AND ENABLE_AVX)
|
||||||
|
- set(FP16_OPTION "-mf16c")
|
||||||
|
- endif()
|
||||||
|
- try_compile(__VALID_FP16
|
||||||
|
- "${OpenCV_BINARY_DIR}"
|
||||||
|
- "${OpenCV_SOURCE_DIR}/cmake/checks/fp16.cpp"
|
||||||
|
- COMPILE_DEFINITIONS "-DCHECK_FP16" "${FP16_OPTION}"
|
||||||
|
- OUTPUT_VARIABLE TRY_OUT
|
||||||
|
- )
|
||||||
|
- if(NOT __VALID_FP16)
|
||||||
|
- if((X86 OR X86_64) AND NOT MSVC AND NOT ENABLE_AVX)
|
||||||
|
- # GCC enables AVX when mf16c is passed
|
||||||
|
- message(STATUS "FP16: Feature disabled")
|
||||||
|
- else()
|
||||||
|
- message(STATUS "FP16: Compiler support is not available")
|
||||||
|
- endif()
|
||||||
|
- else()
|
||||||
|
- message(STATUS "FP16: Compiler support is available")
|
||||||
|
- set(HAVE_FP16 1)
|
||||||
|
- if(NOT ${FP16_OPTION} STREQUAL "")
|
||||||
|
- add_extra_compiler_option(${FP16_OPTION})
|
||||||
|
- endif()
|
||||||
|
- endif()
|
||||||
|
-endif()
|
||||||
|
-
|
||||||
|
#combine all "extra" options
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OPENCV_EXTRA_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPENCV_EXTRA_FLAGS} ${OPENCV_EXTRA_CXX_FLAGS}")
|
||||||
|
@@ -450,6 +422,21 @@ if(MSVC)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+if(NOT OPENCV_FP16_DISABLE)
|
||||||
|
+ try_compile(__VALID_FP16
|
||||||
|
+ "${OpenCV_BINARY_DIR}"
|
||||||
|
+ "${OpenCV_SOURCE_DIR}/cmake/checks/fp16.cpp"
|
||||||
|
+ COMPILE_DEFINITIONS "-DCHECK_FP16"
|
||||||
|
+ OUTPUT_VARIABLE TRY_OUT
|
||||||
|
+ )
|
||||||
|
+ if(NOT __VALID_FP16)
|
||||||
|
+ message(STATUS "FP16: Compiler support is not available")
|
||||||
|
+ else()
|
||||||
|
+ message(STATUS "FP16: Compiler support is available")
|
||||||
|
+ set(HAVE_FP16 1)
|
||||||
|
+ endif()
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
if(APPLE AND NOT CMAKE_CROSSCOMPILING AND NOT DEFINED ENV{LDFLAGS} AND EXISTS "/usr/local/lib")
|
||||||
|
link_directories("/usr/local/lib")
|
||||||
|
endif()
|
||||||
|
diff --git a/modules/core/include/opencv2/core/cvdef.h b/modules/core/include/opencv2/core/cvdef.h
|
||||||
|
index efc24ca..a10936b 100644
|
||||||
|
--- a/modules/core/include/opencv2/core/cvdef.h
|
||||||
|
+++ b/modules/core/include/opencv2/core/cvdef.h
|
||||||
|
@@ -312,7 +312,7 @@ enum CpuFeatures {
|
||||||
|
typedef union Cv16suf
|
||||||
|
{
|
||||||
|
short i;
|
||||||
|
-#if CV_FP16_TYPE
|
||||||
|
+#if ( defined (__arm__) || defined (__aarch64__) ) && !defined (__CUDACC__) && ( defined (__GNUC__) && ( ( ( 4 <= __GNUC__ ) && ( 7 <= __GNUC__ ) ) || ( 5 <= __GNUC__ ) ) )
|
||||||
|
__fp16 h;
|
||||||
|
#endif
|
||||||
|
struct _fp16Format
|
||||||
|
diff --git a/modules/core/src/convert.cpp b/modules/core/src/convert.cpp
|
||||||
|
index e04d89e..46db26f 100644
|
||||||
|
--- a/modules/core/src/convert.cpp
|
||||||
|
+++ b/modules/core/src/convert.cpp
|
||||||
|
@@ -44,7 +44,6 @@
|
||||||
|
#include "precomp.hpp"
|
||||||
|
|
||||||
|
#include "opencl_kernels_core.hpp"
|
||||||
|
-#include "opencv2/core/hal/intrin.hpp"
|
||||||
|
|
||||||
|
#include "opencv2/core/openvx/ovx_defs.hpp"
|
||||||
|
|
||||||
|
@@ -4382,7 +4381,7 @@ struct Cvt_SIMD<float, int>
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if !CV_FP16_TYPE
|
||||||
|
+#if !( ( defined (__arm__) || defined (__aarch64__) ) && ( defined (__GNUC__) && ( ( ( 4 <= __GNUC__ ) && ( 7 <= __GNUC__ ) ) || ( 5 <= __GNUC__ ) ) ) )
|
||||||
|
// const numbers for floating points format
|
||||||
|
const unsigned int kShiftSignificand = 13;
|
||||||
|
const unsigned int kMaskFp16Significand = 0x3ff;
|
||||||
|
@@ -4390,7 +4389,7 @@ const unsigned int kBiasFp16Exponent = 15;
|
||||||
|
const unsigned int kBiasFp32Exponent = 127;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if CV_FP16_TYPE
|
||||||
|
+#if ( defined (__arm__) || defined (__aarch64__) ) && ( defined (__GNUC__) && ( ( ( 4 <= __GNUC__ ) && ( 7 <= __GNUC__ ) ) || ( 5 <= __GNUC__ ) ) )
|
||||||
|
static float convertFp16SW(short fp16)
|
||||||
|
{
|
||||||
|
// Fp16 -> Fp32
|
||||||
|
@@ -4452,7 +4451,7 @@ static float convertFp16SW(short fp16)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if CV_FP16_TYPE
|
||||||
|
+#if ( defined (__arm__) || defined (__aarch64__) ) && ( defined (__GNUC__) && ( ( ( 4 <= __GNUC__ ) && ( 7 <= __GNUC__ ) ) || ( 5 <= __GNUC__ ) ) )
|
||||||
|
static short convertFp16SW(float fp32)
|
||||||
|
{
|
||||||
|
// Fp32 -> Fp16
|
||||||
|
@@ -4560,7 +4559,7 @@ cvtScaleHalf_<float, short>( const float* src, size_t sstep, short* dst, size_t
|
||||||
|
if ( ( (intptr_t)dst & 0xf ) == 0 )
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
-#if CV_FP16 && CV_SIMD128
|
||||||
|
+#if CV_FP16
|
||||||
|
for ( ; x <= size.width - 4; x += 4)
|
||||||
|
{
|
||||||
|
v_float32x4 v_src = v_load(src + x);
|
||||||
|
@@ -4606,7 +4605,7 @@ cvtScaleHalf_<short, float>( const short* src, size_t sstep, float* dst, size_t
|
||||||
|
if ( ( (intptr_t)src & 0xf ) == 0 )
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
-#if CV_FP16 && CV_SIMD128
|
||||||
|
+#if CV_FP16
|
||||||
|
for ( ; x <= size.width - 4; x += 4)
|
||||||
|
{
|
||||||
|
v_float16x4 v_src = v_load_f16(src + x);
|
||||||
|
diff --git a/modules/core/test/test_intrin.cpp b/modules/core/test/test_intrin.cpp
|
||||||
|
index 66b2083..7349d48 100644
|
||||||
|
--- a/modules/core/test/test_intrin.cpp
|
||||||
|
+++ b/modules/core/test/test_intrin.cpp
|
||||||
|
@@ -729,56 +729,48 @@ template<typename R> struct TheTest
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if CV_FP16
|
||||||
|
TheTest & test_loadstore_fp16()
|
||||||
|
{
|
||||||
|
-#if CV_FP16
|
||||||
|
AlignedData<R> data;
|
||||||
|
AlignedData<R> out;
|
||||||
|
|
||||||
|
- if(checkHardwareSupport(CV_CPU_FP16))
|
||||||
|
- {
|
||||||
|
- // check if addresses are aligned and unaligned respectively
|
||||||
|
- EXPECT_EQ((size_t)0, (size_t)&data.a.d % 16);
|
||||||
|
- EXPECT_NE((size_t)0, (size_t)&data.u.d % 16);
|
||||||
|
- EXPECT_EQ((size_t)0, (size_t)&out.a.d % 16);
|
||||||
|
- EXPECT_NE((size_t)0, (size_t)&out.u.d % 16);
|
||||||
|
-
|
||||||
|
- // check some initialization methods
|
||||||
|
- R r1 = data.u;
|
||||||
|
- R r2 = v_load_f16(data.a.d);
|
||||||
|
- R r3(r2);
|
||||||
|
- EXPECT_EQ(data.u[0], r1.get0());
|
||||||
|
- EXPECT_EQ(data.a[0], r2.get0());
|
||||||
|
- EXPECT_EQ(data.a[0], r3.get0());
|
||||||
|
-
|
||||||
|
- // check some store methods
|
||||||
|
- out.a.clear();
|
||||||
|
- v_store_f16(out.a.d, r1);
|
||||||
|
- EXPECT_EQ(data.a, out.a);
|
||||||
|
- }
|
||||||
|
+ // check if addresses are aligned and unaligned respectively
|
||||||
|
+ EXPECT_EQ((size_t)0, (size_t)&data.a.d % 16);
|
||||||
|
+ EXPECT_NE((size_t)0, (size_t)&data.u.d % 16);
|
||||||
|
+ EXPECT_EQ((size_t)0, (size_t)&out.a.d % 16);
|
||||||
|
+ EXPECT_NE((size_t)0, (size_t)&out.u.d % 16);
|
||||||
|
+
|
||||||
|
+ // check some initialization methods
|
||||||
|
+ R r1 = data.u;
|
||||||
|
+ R r2 = v_load_f16(data.a.d);
|
||||||
|
+ R r3(r2);
|
||||||
|
+ EXPECT_EQ(data.u[0], r1.get0());
|
||||||
|
+ EXPECT_EQ(data.a[0], r2.get0());
|
||||||
|
+ EXPECT_EQ(data.a[0], r3.get0());
|
||||||
|
+
|
||||||
|
+ // check some store methods
|
||||||
|
+ out.a.clear();
|
||||||
|
+ v_store_f16(out.a.d, r1);
|
||||||
|
+ EXPECT_EQ(data.a, out.a);
|
||||||
|
|
||||||
|
return *this;
|
||||||
|
-#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
TheTest & test_float_cvt_fp16()
|
||||||
|
{
|
||||||
|
-#if CV_FP16
|
||||||
|
AlignedData<v_float32x4> data;
|
||||||
|
|
||||||
|
- if(checkHardwareSupport(CV_CPU_FP16))
|
||||||
|
- {
|
||||||
|
- // check conversion
|
||||||
|
- v_float32x4 r1 = v_load(data.a.d);
|
||||||
|
- v_float16x4 r2 = v_cvt_f16(r1);
|
||||||
|
- v_float32x4 r3 = v_cvt_f32(r2);
|
||||||
|
- EXPECT_EQ(0x3c00, r2.get0());
|
||||||
|
- EXPECT_EQ(r3.get0(), r1.get0());
|
||||||
|
- }
|
||||||
|
+ // check conversion
|
||||||
|
+ v_float32x4 r1 = v_load(data.a.d);
|
||||||
|
+ v_float16x4 r2 = v_cvt_f16(r1);
|
||||||
|
+ v_float32x4 r3 = v_cvt_f32(r2);
|
||||||
|
+ EXPECT_EQ(0x3c00, r2.get0());
|
||||||
|
+ EXPECT_EQ(r3.get0(), r1.get0());
|
||||||
|
|
||||||
|
return *this;
|
||||||
|
-#endif
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake
|
||||||
|
index b8cb8777c06b..75281ee964fd 100644
|
||||||
|
--- a/cmake/OpenCVGenPkgconfig.cmake
|
||||||
|
+++ b/cmake/OpenCVGenPkgconfig.cmake
|
||||||
|
@@ -27,7 +27,7 @@ macro(fix_prefix lst isown)
|
||||||
|
get_filename_component(libdir "${item}" PATH)
|
||||||
|
get_filename_component(libname "${item}" NAME_WE)
|
||||||
|
string(REGEX REPLACE "^lib(.*)" "\\1" libname "${libname}")
|
||||||
|
- list(APPEND _lst "-L${libdir}" "-l${libname}")
|
||||||
|
+ list(APPEND _lst "-l${libname}")
|
||||||
|
else()
|
||||||
|
list(APPEND _lst "-l${item}")
|
||||||
|
endif()
|
||||||
|
@@ -66,10 +66,14 @@ ocv_list_unique(_3rdparty)
|
||||||
|
|
||||||
|
set(OPENCV_PC_LIBS
|
||||||
|
"-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
|
||||||
|
+ "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}"
|
||||||
|
"${_modules}"
|
||||||
|
)
|
||||||
|
if (BUILD_SHARED_LIBS)
|
||||||
|
- set(OPENCV_PC_LIBS_PRIVATE "${_extra}")
|
||||||
|
+ set(OPENCV_PC_LIBS_PRIVATE
|
||||||
|
+ "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
|
||||||
|
+ "${_extra}"
|
||||||
|
+ )
|
||||||
|
else()
|
||||||
|
set(OPENCV_PC_LIBS_PRIVATE
|
||||||
|
"-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}"
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff --git a/modules/xfeatures2d/CMakeLists.txt b/modules/xfeatures2d/CMakeLists.txt
|
||||||
|
index f295bddaed66..6086e75ec37b 100644
|
||||||
|
--- a/modules/xfeatures2d/CMakeLists.txt
|
||||||
|
+++ b/modules/xfeatures2d/CMakeLists.txt
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
set(the_description "Contributed/Experimental Algorithms for Salient 2D Features Detection")
|
||||||
|
ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d opencv_calib3d opencv_shape opencv_highgui opencv_videoio opencv_ml
|
||||||
|
OPTIONAL opencv_cudaarithm WRAP python java)
|
||||||
|
-include(cmake/download_vgg.cmake)
|
||||||
|
-include(cmake/download_boostdesc.cmake)
|
||||||
|
+#include(cmake/download_vgg.cmake)
|
||||||
|
+#include(cmake/download_boostdesc.cmake)
|
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake b/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake
|
||||||
|
index eb2a729cc2eb..8717736484de 100644
|
||||||
|
--- a/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake
|
||||||
|
+++ b/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake
|
||||||
|
@@ -24,7 +24,7 @@ if(NOT BUILD_PROTOBUF AND NOT (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF
|
||||||
|
find_package(Protobuf QUIET)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-if(PROTOBUF_FOUND)
|
||||||
|
+if(PROTOBUF_FOUND OR (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
|
||||||
|
# nothing
|
||||||
|
else()
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/download_protobuf.cmake)
|
|
@ -0,0 +1,175 @@
|
||||||
|
SUMMARY = "Opencv : The Open Computer Vision Library"
|
||||||
|
HOMEPAGE = "http://opencv.org/"
|
||||||
|
SECTION = "libs"
|
||||||
|
|
||||||
|
LICENSE = "BSD-3-Clause"
|
||||||
|
LIC_FILES_CHKSUM = "file://LICENSE;md5=2b2f8752cc5edf504d283107d033f544"
|
||||||
|
|
||||||
|
ARM_INSTRUCTION_SET_armv4 = "arm"
|
||||||
|
ARM_INSTRUCTION_SET_armv5 = "arm"
|
||||||
|
|
||||||
|
DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
|
||||||
|
|
||||||
|
SRCREV_opencv = "70bbf17b133496bd7d54d034b0f94bd869e0e810"
|
||||||
|
SRCREV_contrib = "86342522b0eb2b16fa851c020cc4e0fef4e010b7"
|
||||||
|
SRCREV_ipp = "81a676001ca8075ada498583e4166079e5744668"
|
||||||
|
SRCREV_bootdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
|
||||||
|
SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
|
||||||
|
IPP_MD5 = "808b791a6eac9ed78d32a7666804320e"
|
||||||
|
|
||||||
|
SRCREV_FORMAT = "opencv"
|
||||||
|
SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \
|
||||||
|
git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \
|
||||||
|
git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20151201;destsuffix=ipp;name=ipp \
|
||||||
|
git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=bootdesc;name=bootdesc \
|
||||||
|
git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \
|
||||||
|
file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
|
||||||
|
file://fixpkgconfig.patch \
|
||||||
|
file://uselocalxfeatures.patch;patchdir=../contrib/ \
|
||||||
|
file://useoeprotobuf.patch;patchdir=../contrib/ \
|
||||||
|
file://0001-Revert-cuda-fix-fp16-compilation.patch \
|
||||||
|
file://0002-Revert-check-FP16-build-condition-correctly.patch \
|
||||||
|
file://0001-Make-opencv-ts-create-share-library-intead-of-static.patch \
|
||||||
|
file://0001-To-fix-errors-as-following.patch \
|
||||||
|
file://0001-tracking-make-opencv_dnn-dependancy-optional.patch;patchdir=../contrib/ \
|
||||||
|
"
|
||||||
|
|
||||||
|
PV = "3.2+git${SRCPV}"
|
||||||
|
|
||||||
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
|
do_unpack_extra() {
|
||||||
|
tar xzf ${WORKDIR}/ipp/ippicv/ippicv_linux_20151201.tgz -C ${WORKDIR}
|
||||||
|
cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
|
||||||
|
cp ${WORKDIR}/bootdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
|
||||||
|
}
|
||||||
|
addtask unpack_extra after do_unpack before do_patch
|
||||||
|
|
||||||
|
EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
|
||||||
|
-DWITH_1394=OFF \
|
||||||
|
-DCMAKE_SKIP_RPATH=ON \
|
||||||
|
-DOPENCV_ICV_PACKAGE_DOWNLOADED=${IPP_MD5} \
|
||||||
|
-DOPENCV_ICV_PATH=${WORKDIR}/ippicv_lnx \
|
||||||
|
${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
|
||||||
|
${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
|
||||||
|
${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
|
||||||
|
${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
|
||||||
|
${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
|
||||||
|
"
|
||||||
|
EXTRA_OECMAKE_append_x86 = " -DX86=ON"
|
||||||
|
|
||||||
|
PACKAGECONFIG ??= "python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \
|
||||||
|
${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
|
||||||
|
${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}"
|
||||||
|
|
||||||
|
PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas,"
|
||||||
|
PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft,"
|
||||||
|
PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DUPDATE_PROTO_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
|
||||||
|
PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog,"
|
||||||
|
PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype,"
|
||||||
|
PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2,"
|
||||||
|
PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base,"
|
||||||
|
PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3,"
|
||||||
|
PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper,"
|
||||||
|
PACKAGECONFIG[java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native fastjar-native openjdk-8-native,"
|
||||||
|
PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
|
||||||
|
PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
|
||||||
|
PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils,"
|
||||||
|
PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers virtual/opencl-icd,"
|
||||||
|
PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${ORACLE_JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native,"
|
||||||
|
PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
|
||||||
|
PACKAGECONFIG[python2] = "-DPYTHON2_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python-numpy,"
|
||||||
|
PACKAGECONFIG[python3] = "-DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python3-numpy,"
|
||||||
|
PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,,"
|
||||||
|
PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb,"
|
||||||
|
PACKAGECONFIG[text] = "-DBUILD_opencv_text=ON,-DBUILD_opencv_text=OFF,tesseract,"
|
||||||
|
PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
|
||||||
|
PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
|
||||||
|
|
||||||
|
inherit pkgconfig cmake
|
||||||
|
|
||||||
|
inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'distutils3-base', '', d)}
|
||||||
|
inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)}
|
||||||
|
|
||||||
|
export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
|
||||||
|
export PYTHON="${STAGING_BINDIR_NATIVE}/${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3', 'python', d)}"
|
||||||
|
export ORACLE_JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java"
|
||||||
|
export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/lib/jvm/openjdk-8-native"
|
||||||
|
export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/"
|
||||||
|
|
||||||
|
TARGET_CC_ARCH += "-I${S}/include "
|
||||||
|
|
||||||
|
PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '', d)} \
|
||||||
|
${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java', '', d)} \
|
||||||
|
${@bb.utils.contains('PACKAGECONFIG', 'java', '${PN}-java', '', d)} \
|
||||||
|
${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python-${BPN}', '', d)} \
|
||||||
|
${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \
|
||||||
|
${PN}-apps"
|
||||||
|
|
||||||
|
python populate_packages_prepend () {
|
||||||
|
cv_libdir = d.expand('${libdir}')
|
||||||
|
do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
|
||||||
|
do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
|
||||||
|
do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
|
||||||
|
do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
|
||||||
|
|
||||||
|
pn = d.getVar('PN')
|
||||||
|
metapkg = pn + '-dev'
|
||||||
|
d.setVar('ALLOW_EMPTY_' + metapkg, "1")
|
||||||
|
blacklist = [ metapkg ]
|
||||||
|
metapkg_rdepends = [ ]
|
||||||
|
packages = d.getVar('PACKAGES').split()
|
||||||
|
for pkg in packages[1:]:
|
||||||
|
if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
|
||||||
|
metapkg_rdepends.append(pkg)
|
||||||
|
d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends))
|
||||||
|
|
||||||
|
metapkg = pn
|
||||||
|
d.setVar('ALLOW_EMPTY_' + metapkg, "1")
|
||||||
|
blacklist = [ metapkg, "libopencv-ts" ]
|
||||||
|
metapkg_rdepends = [ ]
|
||||||
|
for pkg in packages[1:]:
|
||||||
|
if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'):
|
||||||
|
metapkg_rdepends.append(pkg)
|
||||||
|
d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
PACKAGES_DYNAMIC += "^libopencv-.*"
|
||||||
|
|
||||||
|
FILES_${PN} = ""
|
||||||
|
FILES_${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*"
|
||||||
|
FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig ${datadir}/OpenCV/*.cmake"
|
||||||
|
FILES_${PN}-staticdev += "${datadir}/OpenCV/3rdparty/lib/*.a"
|
||||||
|
FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV"
|
||||||
|
FILES_${PN}-java = "${datadir}/OpenCV/java"
|
||||||
|
FILES_${PN}-samples = "${datadir}/OpenCV/samples/"
|
||||||
|
|
||||||
|
INSANE_SKIP_${PN}-java = "libdir"
|
||||||
|
INSANE_SKIP_${PN}-dbg = "libdir"
|
||||||
|
|
||||||
|
ALLOW_EMPTY_${PN} = "1"
|
||||||
|
|
||||||
|
SUMMARY_python-opencv = "Python bindings to opencv"
|
||||||
|
FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
|
||||||
|
RDEPENDS_python-opencv = "python-core python-numpy"
|
||||||
|
|
||||||
|
SUMMARY_python3-opencv = "Python bindings to opencv"
|
||||||
|
FILES_python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
|
||||||
|
RDEPENDS_python3-opencv = "python3-core python3-numpy"
|
||||||
|
|
||||||
|
do_install_append() {
|
||||||
|
cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/
|
||||||
|
sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h
|
||||||
|
|
||||||
|
# Move Python files into correct library folder (for multilib build)
|
||||||
|
if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then
|
||||||
|
mv ${D}/usr/lib/* ${D}/${libdir}/
|
||||||
|
rm -rf ${D}/usr/lib
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ${@bb.utils.contains("PACKAGECONFIG", "samples", "true", "false", d)}; then
|
||||||
|
install -d ${D}${datadir}/OpenCV/samples/bin/
|
||||||
|
cp -f bin/*-tutorial-* bin/*-example-* ${D}${datadir}/OpenCV/samples/bin/
|
||||||
|
fi
|
||||||
|
}
|
Loading…
Reference in New Issue