From a74e80ab2d5809dc0cb3a9a4f784a1638935ac2a Mon Sep 17 00:00:00 2001 From: Gabriel Valcazar Date: Mon, 13 May 2019 13:14:32 +0200 Subject: [PATCH] opencv: update to v4.0.1.imx This is the version used in meta-fsl-bsp-release branch sumo-4.14.98-2.0.0_ga. https://jira.digi.com/browse/DEL-6603 Signed-off-by: Gabriel Valcazar --- .../opencv/opencv/0001-Dont-use-isystem.patch | 30 ++++---- ...-around-deprecated-ffmpeg-RAW-functi.patch | 33 ++++++++ ...1-dnn-allow-to-use-external-protobuf.patch | 66 ---------------- ...void-resizing-a-const-Mat-in-decolor.patch | 66 ---------------- .../0002-photo-Decolor-corrections.patch | 51 ------------- .../0003-To-fix-errors-as-following.patch | 28 ++----- .../opencv/opencv/fix_openvx_samples.patch | 11 --- .../opencv/opencv/fix_python_bindings.patch | 14 ---- .../opencv/opencv/fixpkgconfig.patch | 29 ------- .../opencv/opencv/protobuf.patch | 57 -------------- .../opencv/opencv/uselocalxfeatures.patch | 11 +-- .../opencv/opencv_3.4.2.bbappend | 61 --------------- .../{opencv_3.4.2.bb => opencv_4.0.1.imx.bb} | 75 +++++++++++++------ 13 files changed, 114 insertions(+), 418 deletions(-) create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch delete mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/0001-dnn-allow-to-use-external-protobuf.patch delete mode 100755 meta-digi-dey/recipes-graphics/opencv/opencv/0001-photo-avoid-resizing-a-const-Mat-in-decolor.patch delete mode 100755 meta-digi-dey/recipes-graphics/opencv/opencv/0002-photo-Decolor-corrections.patch delete mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/fix_openvx_samples.patch delete mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/fix_python_bindings.patch delete mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/fixpkgconfig.patch delete mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/protobuf.patch delete mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv_3.4.2.bbappend rename meta-digi-dey/recipes-graphics/opencv/{opencv_3.4.2.bb => opencv_4.0.1.imx.bb} (76%) diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/0001-Dont-use-isystem.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/0001-Dont-use-isystem.patch index 6dd48fcdc..bf0b80a30 100644 --- a/meta-digi-dey/recipes-graphics/opencv/opencv/0001-Dont-use-isystem.patch +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/0001-Dont-use-isystem.patch @@ -1,26 +1,30 @@ -From 2bc6bb9831d07f035fea74ea745cea43dd5f9ef9 Mon Sep 17 00:00:00 2001 +From 7144c44ec70dee73a628463b99ffeed74b1a8ef6 Mon Sep 17 00:00:00 2001 From: Khem Raj -Date: Sat, 9 Sep 2017 23:48:31 -0700 +Date: Tue, 11 Sep 2018 00:21:18 -0700 Subject: [PATCH] Dont use isystem +clang really does not like it + +Upstream-Status: Pending + Signed-off-by: Khem Raj --- -Upstream-Status: Pending + cmake/OpenCVPCHSupport.cmake | 2 ++ + 1 file changed, 2 insertions(+) - cmake/OpenCVPCHSupport.cmake | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -Index: git/cmake/OpenCVPCHSupport.cmake -=================================================================== ---- git.orig/cmake/OpenCVPCHSupport.cmake -+++ git/cmake/OpenCVPCHSupport.cmake -@@ -17,7 +17,8 @@ IF(CMAKE_COMPILER_IS_GNUCXX) - IF(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.2.0") +diff --git a/cmake/OpenCVPCHSupport.cmake b/cmake/OpenCVPCHSupport.cmake +index f9b1b48b65..fe27a136f5 100644 +--- a/cmake/OpenCVPCHSupport.cmake ++++ b/cmake/OpenCVPCHSupport.cmake +@@ -18,6 +18,8 @@ IF(CV_GCC) SET(PCHSupport_FOUND TRUE) ENDIF() -- + + SET(CMAKE_INCLUDE_SYSTEM_FLAG_C "-I") + SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-I") SET(_PCH_include_prefix "-I") SET(_PCH_isystem_prefix "-isystem") SET(_PCH_define_prefix "-D") +-- +2.18.0 + diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch new file mode 100644 index 000000000..63cb7f943 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch @@ -0,0 +1,33 @@ +From 7d31f41d2a6759e244983504ce855fc32916b97a Mon Sep 17 00:00:00 2001 +From: Jason Wessel +Date: Wed, 9 May 2018 13:33:59 -0700 +Subject: [PATCH] Temporarliy work around deprecated ffmpeg RAW function + compile failure until next uprev + +Signed-off-by: Jason Wessel +--- + modules/videoio/src/cap_ffmpeg_impl.hpp | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/modules/videoio/src/cap_ffmpeg_impl.hpp b/modules/videoio/src/cap_ffmpeg_impl.hpp +index 5a9b10f075..97c6b74b07 100644 +--- a/modules/videoio/src/cap_ffmpeg_impl.hpp ++++ b/modules/videoio/src/cap_ffmpeg_impl.hpp +@@ -667,6 +667,14 @@ struct ImplMutex::Impl + + #endif + ++/* NOTE This is deprecated in ffmpeg and the code should be removed */ ++#ifndef AVFMT_RAWPICTURE ++#define AVFMT_RAWPICTURE 0x0020 ++#endif /* AVFMT_RAWPICTURE */ ++#ifndef CODEC_FLAG_GLOBAL_HEADER ++#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER ++#endif ++ + void ImplMutex::init() + { + impl = new Impl(); +-- +2.11.0 + diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/0001-dnn-allow-to-use-external-protobuf.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/0001-dnn-allow-to-use-external-protobuf.patch deleted file mode 100644 index c8ae3f0cc..000000000 --- a/meta-digi-dey/recipes-graphics/opencv/opencv/0001-dnn-allow-to-use-external-protobuf.patch +++ /dev/null @@ -1,66 +0,0 @@ -From f1604999632344f5bcbf6f611693917f6a9c2aa3 Mon Sep 17 00:00:00 2001 -From: Alexander Alekhin -Date: Mon, 9 Jul 2018 17:19:35 +0300 -Subject: [PATCH] dnn: allow to use external protobuf - -"custom layers" feature will not work properly in these builds. - -Signed-off-by: Tom Hochstein - -Upstream-Status: Backport [https://github.com/opencv/opencv/commit/e2b5d112909b9dfd764f14833b82e38e4bc2f81f] ---- - modules/dnn/CMakeLists.txt | 4 ++++ - modules/dnn/src/caffe/caffe_io.cpp | 4 ++++ - modules/dnn/test/test_layers.cpp | 4 ++++ - 3 files changed, 12 insertions(+) - -diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt -index e306dde..a2f741c 100644 ---- a/modules/dnn/CMakeLists.txt -+++ b/modules/dnn/CMakeLists.txt -@@ -48,6 +48,10 @@ if(ANDROID) - add_definitions(-DDISABLE_POSIX_MEMALIGN -DTH_DISABLE_HEAP_TRACKING) - endif() - -+if(NOT BUILD_PROTOBUF) -+ add_definitions(-DOPENCV_DNN_EXTERNAL_PROTOBUF=1) -+endif() -+ - add_definitions(-DHAVE_PROTOBUF=1) - - #suppress warnings in autogenerated caffe.pb.* files -diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp -index 730c752..9f4e31c 100644 ---- a/modules/dnn/src/caffe/caffe_io.cpp -+++ b/modules/dnn/src/caffe/caffe_io.cpp -@@ -1120,7 +1120,11 @@ bool ReadProtoFromTextFile(const char* filename, Message* proto) { - std::ifstream fs(filename, std::ifstream::in); - CHECK(fs.is_open()) << "Can't open \"" << filename << "\""; - IstreamInputStream input(&fs); -+#ifndef OPENCV_DNN_EXTERNAL_PROTOBUF - return google::protobuf::TextFormat::Parser(true).Parse(&input, proto); -+#else -+ return google::protobuf::TextFormat::Parser().Parse(&input, proto); -+#endif - } - - bool ReadProtoFromBinaryFile(const char* filename, Message* proto) { -diff --git a/modules/dnn/test/test_layers.cpp b/modules/dnn/test/test_layers.cpp -index 963206b..05ea61a 100644 ---- a/modules/dnn/test/test_layers.cpp -+++ b/modules/dnn/test/test_layers.cpp -@@ -1150,7 +1150,11 @@ private: - - TEST(Layer_Test_Interp_custom, Accuracy) - { -+#ifndef OPENCV_DNN_EXTERNAL_PROTOBUF - CV_DNN_REGISTER_LAYER_CLASS(Interp, InterpLayer); -+#else -+ CV_DNN_REGISTER_LAYER_CLASS(DISABLED_Interp, InterpLayer); // requires patched protobuf (available in OpenCV source tree only) -+#endif - testLayerUsingCaffeModels("layer_interp", DNN_TARGET_CPU, false, false); - LayerFactory::unregisterLayer("Interp"); - } --- -2.7.4 - diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/0001-photo-avoid-resizing-a-const-Mat-in-decolor.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/0001-photo-avoid-resizing-a-const-Mat-in-decolor.patch deleted file mode 100755 index 35bb96ad2..000000000 --- a/meta-digi-dey/recipes-graphics/opencv/opencv/0001-photo-avoid-resizing-a-const-Mat-in-decolor.patch +++ /dev/null @@ -1,66 +0,0 @@ -From f49f6d52b45a09a133621c3e96b77b321746452f Mon Sep 17 00:00:00 2001 -From: berak -Date: Tue, 7 Aug 2018 15:14:22 +0200 -Subject: [PATCH] photo: avoid resizing a const Mat in decolor() - ---- - modules/photo/src/contrast_preserve.hpp | 27 ++++++++++++++++++--------- - 1 file changed, 18 insertions(+), 9 deletions(-) - -diff --git a/modules/photo/src/contrast_preserve.hpp b/modules/photo/src/contrast_preserve.hpp -index ec8274e..65ca9c1 100644 ---- a/modules/photo/src/contrast_preserve.hpp -+++ b/modules/photo/src/contrast_preserve.hpp -@@ -204,14 +204,19 @@ void Decolor::add_to_vector_poly(vector < vector > &polyGrad, const vec - idx1++; - } - --void Decolor::weak_order(const Mat &img, vector &alf) const -+void Decolor::weak_order(const Mat &im, vector &alf) const - { -- const int h = img.size().height; -- const int w = img.size().width; -+ Mat img; -+ const int h = im.size().height; -+ const int w = im.size().width; - if((h + w) > 800) - { - const double sizefactor = double(800)/(h+w); -- resize(img, img, Size(cvRound(h*sizefactor), cvRound(w*sizefactor))); -+ resize(im, img, Size(cvRound(h*sizefactor), cvRound(w*sizefactor))); -+ } -+ else -+ { -+ img = im; - } - - Mat curIm = Mat(img.size(),CV_32FC1); -@@ -246,16 +251,20 @@ void Decolor::weak_order(const Mat &img, vector &alf) const - alf[i] -= tmp1[i] * tmp2[i] * tmp3[i]; - } - --void Decolor::grad_system(const Mat &img, vector < vector < double > > &polyGrad, -+void Decolor::grad_system(const Mat &im, vector < vector < double > > &polyGrad, - vector < double > &Cg, vector & comb) const - { -- int h = img.size().height; -- int w = img.size().width; -- -+ Mat img; -+ int h = im.size().height; -+ int w = im.size().width; - if((h + w) > 800) - { - const double sizefactor = double(800)/(h+w); -- resize(img, img, Size(cvRound(h*sizefactor), cvRound(w*sizefactor))); -+ resize(im, img, Size(cvRound(h*sizefactor), cvRound(w*sizefactor))); -+ } -+ else -+ { -+ img = im; - } - - h = img.size().height; --- -2.7.4 - diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/0002-photo-Decolor-corrections.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/0002-photo-Decolor-corrections.patch deleted file mode 100755 index e3ba3d225..000000000 --- a/meta-digi-dey/recipes-graphics/opencv/opencv/0002-photo-Decolor-corrections.patch +++ /dev/null @@ -1,51 +0,0 @@ -From fb2b26c4197cb7569e9df8afbadedbe419b4e04e Mon Sep 17 00:00:00 2001 -From: yom -Date: Tue, 7 Aug 2018 17:52:05 +0200 -Subject: [PATCH] photo: Decolor corrections * Keep image aspect ratio in - resize called in grad_system and weak_order * Bug correction in loop - inside Decolor::gradvector - ---- - modules/photo/src/contrast_preserve.hpp | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/modules/photo/src/contrast_preserve.hpp b/modules/photo/src/contrast_preserve.hpp -index 65ca9c1..1afd4bc 100644 ---- a/modules/photo/src/contrast_preserve.hpp -+++ b/modules/photo/src/contrast_preserve.hpp -@@ -159,12 +159,12 @@ void Decolor::gradvector(const Mat &img, vector &grad) const - - for(int i=0;i(i, j); -+ grad[i*width + j] = d_trans.at(i, j); - - const int offset = width * height; - for(int i=0;i(i, j); -+ grad[offset + i * width + j] = d1_trans.at(i, j); - } - - void Decolor::colorGrad(const Mat &img, vector &Cg) const -@@ -212,7 +212,7 @@ void Decolor::weak_order(const Mat &im, vector &alf) const - if((h + w) > 800) - { - const double sizefactor = double(800)/(h+w); -- resize(im, img, Size(cvRound(h*sizefactor), cvRound(w*sizefactor))); -+ resize(im, img, Size(cvRound(w*sizefactor), cvRound(h*sizefactor))); - } - else - { -@@ -260,7 +260,7 @@ void Decolor::grad_system(const Mat &im, vector < vector < double > > &polyGrad, - if((h + w) > 800) - { - const double sizefactor = double(800)/(h+w); -- resize(im, img, Size(cvRound(h*sizefactor), cvRound(w*sizefactor))); -+ resize(im, img, Size(cvRound(w*sizefactor), cvRound(h*sizefactor))); - } - else - { --- -2.7.4 - diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/0003-To-fix-errors-as-following.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/0003-To-fix-errors-as-following.patch index 3ab8f773a..5270b8c9f 100644 --- a/meta-digi-dey/recipes-graphics/opencv/opencv/0003-To-fix-errors-as-following.patch +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/0003-To-fix-errors-as-following.patch @@ -23,7 +23,7 @@ Index: git/modules/ts/include/opencv2/ts.hpp =================================================================== --- git.orig/modules/ts/include/opencv2/ts.hpp +++ git/modules/ts/include/opencv2/ts.hpp -@@ -611,7 +611,7 @@ protected: +@@ -608,7 +608,7 @@ protected: } }; @@ -32,16 +32,8 @@ Index: git/modules/ts/include/opencv2/ts.hpp struct DefaultRngAuto { -@@ -667,14 +667,14 @@ std::string findDataFile(const std::stri - - #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 +@@ -671,7 +671,7 @@ private: + #endif #endif -void parseCustomOptions(int argc, char **argv); @@ -66,18 +58,12 @@ Index: git/modules/ts/include/opencv2/ts/ts_ext.hpp =================================================================== --- git.orig/modules/ts/include/opencv2/ts/ts_ext.hpp +++ git/modules/ts/include/opencv2/ts/ts_ext.hpp -@@ -9,10 +9,10 @@ +@@ -9,7 +9,7 @@ #define OPENCV_TS_EXT_HPP namespace cvtest { -void checkIppStatus(); --extern bool skipUnstableTests; --extern bool runBigDataTests; --extern int testThreads; +CV_EXPORTS void checkIppStatus(); -+CV_EXPORTS extern bool skipUnstableTests; -+CV_EXPORTS extern bool runBigDataTests; -+CV_EXPORTS extern int testThreads; - } - - // check for required "opencv_test" namespace + extern bool skipUnstableTests; + extern bool runBigDataTests; + extern int testThreads; diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/fix_openvx_samples.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/fix_openvx_samples.patch deleted file mode 100644 index 3db3dd15d..000000000 --- a/meta-digi-dey/recipes-graphics/opencv/opencv/fix_openvx_samples.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/samples/openvx/CMakeLists.txt b/samples/openvx/CMakeLists.txt -index fd9165b..85fe948 100644 ---- a/samples/openvx/CMakeLists.txt -+++ b/samples/openvx/CMakeLists.txt -@@ -21,5 +21,5 @@ add_definitions(-DIVX_HIDE_INFO_WARNINGS) - file(GLOB_RECURSE cpp_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) - foreach(sample_filename ${cpp_samples}) - ocv_define_sample(tgt ${sample_filename} openvx) -- ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_OPENVX_SAMPLE_REQUIRED_DEPS}) -+ ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_OPENVX_SAMPLE_REQUIRED_DEPS} ${OPENVX_LIBRARIES}) - endforeach() diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/fix_python_bindings.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/fix_python_bindings.patch deleted file mode 100644 index 1609b49b5..000000000 --- a/meta-digi-dey/recipes-graphics/opencv/opencv/fix_python_bindings.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/modules/python/bindings/CMakeLists.txt b/modules/python/bindings/CMakeLists.txt -index 73c67aa..a71c297 100644 ---- a/modules/python/bindings/CMakeLists.txt -+++ b/modules/python/bindings/CMakeLists.txt -@@ -20,7 +20,8 @@ endforeach() - set(opencv_hdrs "") - set(opencv_userdef_hdrs "") - foreach(m ${OPENCV_PYTHON_MODULES}) -- ocv_list_filter(OPENCV_MODULE_${m}_HEADERS "${OPENCV_MODULE_${m}_LOCATION}/include" __hdrs) -+ string(REPLACE "+" "\\\\+" __pattern "${OPENCV_MODULE_${m}_LOCATION}/include") -+ ocv_list_filter(OPENCV_MODULE_${m}_HEADERS "${__pattern}" __hdrs) - list(APPEND opencv_hdrs ${__hdrs}) - file(GLOB userdef_hdrs ${OPENCV_MODULE_${m}_LOCATION}/misc/python/pyopencv*.hpp) - list(APPEND opencv_userdef_hdrs ${userdef_hdrs}) diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/fixpkgconfig.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/fixpkgconfig.patch deleted file mode 100644 index 76dfd04d7..000000000 --- a/meta-digi-dey/recipes-graphics/opencv/opencv/fixpkgconfig.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake -index 425c0fa..9123dc6 100644 ---- a/cmake/OpenCVGenPkgconfig.cmake -+++ b/cmake/OpenCVGenPkgconfig.cmake -@@ -31,7 +31,7 @@ macro(fix_prefix lst isown) - get_filename_component(libdir "${item}" PATH) - get_filename_component(_libname "${item}" NAME) - ocv_get_libname(libname "${_libname}") -- list(APPEND _lst "-L${libdir}" "-l${libname}") -+ list(APPEND _lst "-l${libname}") - else() - list(APPEND _lst "-l${item}") - endif() -@@ -125,10 +125,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}" diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/protobuf.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/protobuf.patch deleted file mode 100644 index c63dc142e..000000000 --- a/meta-digi-dey/recipes-graphics/opencv/opencv/protobuf.patch +++ /dev/null @@ -1,57 +0,0 @@ -Upstream-status: Inappropriate [OE specific] - -Signed-off-by: Ricardo Ribalda -diff --git a/cmake/OpenCVFindLibProtobuf.cmake b/cmake/OpenCVFindLibProtobuf.cmake -index b6ce1e7fd56b..e916ec0df2a6 100644 ---- a/cmake/OpenCVFindLibProtobuf.cmake -+++ b/cmake/OpenCVFindLibProtobuf.cmake -@@ -7,21 +7,21 @@ OCV_OPTION(BUILD_PROTOBUF "Force to build libprotobuf from sources" ON) - OCV_OPTION(PROTOBUF_UPDATE_FILES "Force to rebuild .proto files" OFF) - - if(PROTOBUF_UPDATE_FILES) -- if(NOT DEFINED Protobuf_PROTOC_EXECUTABLE) -+ if(NOT DEFINED PROTOBUF_PROTOC_EXECUTABLE) - find_package(Protobuf QUIET) - endif() -- if(DEFINED Protobuf_PROTOC_EXECUTABLE AND EXISTS ${Protobuf_PROTOC_EXECUTABLE}) -- message(STATUS "The protocol buffer compiler is found (${Protobuf_PROTOC_EXECUTABLE})") -+ if(DEFINED PROTOBUF_PROTOC_EXECUTABLE AND EXISTS ${PROTOBUF_PROTOC_EXECUTABLE}) -+ message(STATUS "The protocol buffer compiler is found (${PROTOBUF_PROTOC_EXECUTABLE})") - else() -- message(FATAL_ERROR "The protocol buffer compiler is not found (Protobuf_PROTOC_EXECUTABLE='${Protobuf_PROTOC_EXECUTABLE}')") -+ message(FATAL_ERROR "The protocol buffer compiler is not found (PROTOBUF_PROTOC_EXECUTABLE='${PROTOBUF_PROTOC_EXECUTABLE}')") - endif() - endif() - --if(NOT BUILD_PROTOBUF AND NOT (DEFINED Protobuf_INCLUDE_DIRS AND DEFINED Protobuf_LIBRARIES)) -+if(NOT BUILD_PROTOBUF AND NOT (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES)) - find_package(Protobuf QUIET) - endif() - --if(Protobuf_FOUND) -+if(PROTOBUF_FOUND OR (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES)) - # nothing - else() - set(Protobuf_LIBRARIES libprotobuf) -diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt -index 2a71568d1a44..c6329a742263 100644 ---- a/modules/dnn/CMakeLists.txt -+++ b/modules/dnn/CMakeLists.txt -@@ -7,7 +7,7 @@ if(DEFINED BUILD_opencv_dnn AND NOT BUILD_opencv_dnn) - endif() - - include(${OpenCV_SOURCE_DIR}/cmake/OpenCVFindLibProtobuf.cmake) --if(NOT Protobuf_FOUND) -+if(NOT PROTOBUF_FOUND) - ocv_module_disable(opencv_dnn) - endif() - -@@ -72,7 +72,7 @@ ocv_source_group("Src\\protobuf" FILES ${Protobuf_SRCS} ${Protobuf_HDRS}) - ocv_module_include_directories(include ${Protobuf_INCLUDE_DIRS}) - - ocv_glob_module_sources(${Protobuf_SRCS} ${Protobuf_HDRS} ${CBLAS_H_PROXY_PATH}) --ocv_create_module(${Protobuf_LIBRARIES} ${LAPACK_LIBRARIES}) -+ocv_create_module(${PROTOBUF_LIBRARIES} ${LAPACK_LIBRARIES}) - ocv_add_samples() - ocv_add_accuracy_tests() - ocv_add_perf_tests() diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/uselocalxfeatures.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/uselocalxfeatures.patch index fc273a891..8ffee51dd 100644 --- a/meta-digi-dey/recipes-graphics/opencv/opencv/uselocalxfeatures.patch +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/uselocalxfeatures.patch @@ -1,8 +1,8 @@ -diff --git a/modules/xfeatures2d/CMakeLists.txt b/modules/xfeatures2d/CMakeLists.txt -index e1755595..c7009c47 100644 ---- a/modules/xfeatures2d/CMakeLists.txt -+++ b/modules/xfeatures2d/CMakeLists.txt -@@ -5,10 +5,10 @@ ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d openc +Index: contrib/modules/xfeatures2d/CMakeLists.txt +=================================================================== +--- contrib.orig/modules/xfeatures2d/CMakeLists.txt ++++ contrib/modules/xfeatures2d/CMakeLists.txt +@@ -5,11 +5,11 @@ ocv_define_module(xfeatures2d opencv_cor include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake) set(DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/downloads/xfeatures2d") @@ -18,3 +18,4 @@ index e1755595..c7009c47 100644 +#endif() ocv_module_include_directories("${DOWNLOAD_DIR}") + diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv_3.4.2.bbappend b/meta-digi-dey/recipes-graphics/opencv/opencv_3.4.2.bbappend deleted file mode 100644 index 107e0ed2e..000000000 --- a/meta-digi-dey/recipes-graphics/opencv/opencv_3.4.2.bbappend +++ /dev/null @@ -1,61 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" - -# Specify the opencv_extra source. The version should match the overall opencv version. -# Recording the opencv_extra version here allows us to raise a fatal error if the -# package version is updated but this section is not. -SRC_URI += "git://github.com/opencv/opencv_extra.git;branch=3.4;destsuffix=opencv_extra;name=opencv_extra" -SRCREV_opencv_extra = "cc18e9a17c5afe034341c8c70a5aaa9ac86e5601" -OPENCV_EXTRA_VERSION = "3.4.2" - -SRC_URI_remove = "file://javagen.patch" -SRC_URI += "file://fix_openvx_samples.patch" -SRC_URI += "file://fix_python_bindings.patch" -SRC_URI += "file://0001-photo-avoid-resizing-a-const-Mat-in-decolor.patch \ - file://0002-photo-Decolor-corrections.patch \ -" - -PACKAGECONFIG_remove_imx = "eigen" -PACKAGECONFIG_remove_mx8 = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland x11', 'gtk', '', d)}" -PACKAGECONFIG_append_mx8 = " opencl dnn text" -PACKAGECONFIG_append_mx8dv = " openvx" -PACKAGECONFIG_append_mx8qm = " openvx" - -PACKAGECONFIG[openvx] = " \ - -DWITH_OPENVX=ON -DOPENVX_ROOT=${STAGING_LIBDIR} -DOPENVX_LIB_CANDIDATES='OpenVX;OpenVXU', \ - -DWITH_OPENVX=OFF, \ - virtual/libopenvx, \ - \ -" -PACKAGECONFIG[qt5] = " \ - -DWITH_QT=ON -DWITH_GTK=OFF \ - -DOE_QMAKE_PATH_EXTERNAL_HOST_BINS=${STAGING_BINDIR_NATIVE}/qt5 \ - -DCMAKE_PREFIX_PATH=${STAGING_BINDIR_NATIVE}/cmake, \ - -DWITH_QT=OFF, \ - qtbase qtbase-native, \ - \ -" -PACKAGECONFIG[test] = " \ - -DBUILD_TESTS=ON -DINSTALL_TESTS=ON -DOPENCV_TEST_DATA_PATH=${S}/../opencv_extra/testdata, \ - -DBUILD_TESTS=OFF -DINSTALL_TESTS=OFF, \ -" - -do_check_opencv_extra_version() { - OPENCV_VERSION=`echo ${PV} | cut -d '+' -f 1` - if [ "${OPENCV_EXTRA_VERSION}" != "${OPENCV_VERSION}" ]; then - bbfatal "The opencv_extra version ${OPENCV_EXTRA_VERSION} does not match the recipe version ${OPENCV_VERSION}." - fi -} -addtask check_opencv_extra_version before do_fetch - -do_install_append() { - if ${@bb.utils.contains("PACKAGECONFIG", "samples", "true", "false", d)}; then - install -d ${D}${datadir}/OpenCV/samples/data - cp -r ${S}/samples/data/* ${D}${datadir}/OpenCV/samples/data - - install -d ${D}${datadir}/OpenCV/samples/bin/ - cp -f bin/example_* ${D}${datadir}/OpenCV/samples/bin/ - fi -} - -RDEPENDS_opencv-apps += \ - "${@bb.utils.contains('PACKAGECONFIG', 'test', 'bash', '', d)}" diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv_3.4.2.bb b/meta-digi-dey/recipes-graphics/opencv/opencv_4.0.1.imx.bb similarity index 76% rename from meta-digi-dey/recipes-graphics/opencv/opencv_3.4.2.bb rename to meta-digi-dey/recipes-graphics/opencv/opencv_4.0.1.imx.bb index 8821b514c..2a4ce2920 100644 --- a/meta-digi-dey/recipes-graphics/opencv/opencv_3.4.2.bb +++ b/meta-digi-dey/recipes-graphics/opencv/opencv_4.0.1.imx.bb @@ -10,11 +10,12 @@ ARM_INSTRUCTION_SET_armv5 = "arm" DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp" -SRCREV_opencv = "9e1b1e5389237c2b9f6c7b9d7715d9836c0a5de1" -SRCREV_contrib = "d4e02869454998c9af5af1a5c3392cdc0c31dd22" -SRCREV_ipp = "a62e20676a60ee0ad6581e217fe7e4bada3b95db" +SRCREV_opencv = "737f8fad1318607bf78eff76e3e4364db11663e0" +SRCREV_contrib = "25221244732dcf44c1450d0f93edc2529a61c0e1" +SRCREV_ipp = "32e315a5b106a7b89dbed51c28f8120a48b368b4" SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26" SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d" +SRCREV_extra = "d29d003e00dacf4ed686577c3f2c0aa048d5a80a" SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59" SRC_URI[tinydnn.sha256sum] = "e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5175846505aa18b" @@ -22,38 +23,38 @@ def ipp_filename(d): import re arch = d.getVar('TARGET_ARCH', True) if re.match("i.86$", arch): - return "ippicv_2017u2_lnx_ia32_20170418.tgz" + return "ippicv_2019_lnx_ia32_general_20180723.tgz" else: - return "ippicv_2017u2_lnx_intel64_20170418.tgz" + return "ippicv_2019_lnx_intel64_general_20180723.tgz" def ipp_md5sum(d): import re arch = d.getVar('TARGET_ARCH', True) if re.match("i.86$", arch): - return "f2cece00d802d4dea86df52ed095257e" + return "ea72de74dae3c604eb6348395366e78e" else: - return "808b791a6eac9ed78d32a7666804320e" + return "b7cc351267db2d34b9efa1cd22ff0572" IPP_FILENAME = "${@ipp_filename(d)}" IPP_MD5 = "${@ipp_md5sum(d)}" -SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg" -SRC_URI = "git://github.com/opencv/opencv.git;branch=3.4;name=opencv \ - git://github.com/opencv/opencv_contrib.git;branch=3.4;destsuffix=contrib;name=contrib \ - git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20170418;destsuffix=ipp;name=ipp \ +SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg_extra" +OPENCV_SRC ?= "git://source.codeaurora.org/external/imx/opencv-imx.git;protocol=https" +SRCBRANCH = "4.0.1_imx" +SRC_URI = "${OPENCV_SRC};branch=${SRCBRANCH};name=opencv \ + git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \ + git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20180723;destsuffix=ipp;name=ipp \ git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \ git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \ + git://github.com/opencv/opencv_extra.git;destsuffix=extra;name=extra \ https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz;destsuffix=git/3rdparty/tinydnn/tiny-dnn-1.0.0a3;name=tinydnn;unpack=false \ file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \ - file://fixpkgconfig.patch \ file://uselocalxfeatures.patch;patchdir=../contrib/ \ file://0003-To-fix-errors-as-following.patch \ + file://0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch \ file://0001-Dont-use-isystem.patch \ - file://javagen.patch \ - file://0001-dnn-allow-to-use-external-protobuf.patch \ " - -PV = "3.4.2+git${SRCPV}" +PV = "4.0.1.imx+git${SRCPV}" S = "${WORKDIR}/git" @@ -68,6 +69,7 @@ addtask unpack_extra after do_unpack before do_patch EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \ -DWITH_1394=OFF \ + -DENABLE_PRECOMPILED_HEADERS=OFF \ -DCMAKE_SKIP_RPATH=ON \ -DOPENCV_ICV_HASH=${IPP_MD5} \ -DIPPROOT=${WORKDIR}/ippicv_lnx \ @@ -77,10 +79,27 @@ EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \ " 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)} \ +PACKAGECONFIG_GTK ?= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \ +" +PACKAGECONFIG_GTK_mx8 ?= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland x11', '', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', \ + '', d), d)} \ +" +PACKAGECONFIG ??= "python3 jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \ + ${PACKAGECONFIG_GTK} \ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}" +PACKAGECONFIG_append_mx8 = " dnn text" +PACKAGECONFIG_append_mx8dv = " openvx" +PACKAGECONFIG_append_mx8qm = " openvx" + +PACKAGECONFIG_OPENCL = "" +PACKAGECONFIG_OPENCL_mx8 = "opencl" +PACKAGECONFIG_OPENCL_mx8mm = "" +PACKAGECONFIG_append = " ${PACKAGECONFIG_OPENCL}" + PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas," PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft," PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native," @@ -95,12 +114,15 @@ 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[openvx] = "-DWITH_OPENVX=ON -DOPENVX_ROOT=${STAGING_LIBDIR} -DOPENVX_LIB_CANDIDATES='OpenVX;OpenVXU',-DWITH_OPENVX=OFF,virtual/libopenvx," 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[qt5] = "-DWITH_QT=ON -DWITH_GTK=OFF -DOE_QMAKE_PATH_EXTERNAL_HOST_BINS=${STAGING_BINDIR_NATIVE}/qt5 -DCMAKE_PREFIX_PATH=${STAGING_BINDIR_NATIVE}/cmake,-DWITH_QT=OFF,qtbase qtbase-native," PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,," PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb," +PACKAGECONFIG[test] = "-DBUILD_TESTS=ON -DINSTALL_TESTS=ON -DOPENCV_TEST_DATA_PATH=${S}/../extra/testdata, -DBUILD_TESTS=OFF -DINSTALL_TESTS=OFF," 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," @@ -155,13 +177,13 @@ python populate_packages_prepend () { 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} = "${datadir}/licenses" +FILES_${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/* ${datadir}/opencv4/valgrind*.supp" +FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig ${datadir}/OpenCV/*.cmake ${libdir}/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/" +FILES_${PN}-samples = "${datadir}/OpenCV/samples ${datadir}/opencv4/samples ${datadir}/opencv4/*cascades ${datadir}/opencv4/testdata/" INSANE_SKIP_${PN}-java = "libdir" INSANE_SKIP_${PN}-dbg = "libdir" @@ -177,8 +199,8 @@ 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 + # Fix OpenCV 2 compatibility, broken by OpenCV 4 + ln -sf opencv4/opencv2 ${D}${includedir}/opencv2 # Move Python files into correct library folder (for multilib build) if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then @@ -187,7 +209,12 @@ do_install_append() { fi if ${@bb.utils.contains("PACKAGECONFIG", "samples", "true", "false", d)}; then + install -d ${D}${datadir}/OpenCV/samples/data + cp -r ${S}/samples/data/* ${D}${datadir}/OpenCV/samples/data + install -d ${D}${datadir}/OpenCV/samples/bin/ cp -f bin/example_* ${D}${datadir}/OpenCV/samples/bin/ fi } + +RDEPENDS_opencv-apps += "bash"