From 805946baaf43a0a862cb678b4c1841ab01ee697a Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 20 Jun 2023 14:10:08 +0300 Subject: [PATCH 1/5] pre: OpenCV 3.4.20 (version++) --- .../cross_referencing/tutorial_cross_referencing.markdown | 4 ++-- modules/core/include/opencv2/core/version.hpp | 4 ++-- modules/python/package/setup.py | 2 +- platforms/android/build_sdk.py | 2 +- platforms/android/service/readme.txt | 2 +- platforms/maven/opencv-it/pom.xml | 2 +- platforms/maven/opencv/pom.xml | 2 +- platforms/maven/pom.xml | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/tutorials/introduction/cross_referencing/tutorial_cross_referencing.markdown b/doc/tutorials/introduction/cross_referencing/tutorial_cross_referencing.markdown index daa7c396cd..ed13c3e030 100644 --- a/doc/tutorials/introduction/cross_referencing/tutorial_cross_referencing.markdown +++ b/doc/tutorials/introduction/cross_referencing/tutorial_cross_referencing.markdown @@ -39,14 +39,14 @@ Open your Doxyfile using your favorite text editor and search for the key `TAGFILES`. Change it as follows: @code -TAGFILES = ./docs/doxygen-tags/opencv.tag=http://docs.opencv.org/3.4.19 +TAGFILES = ./docs/doxygen-tags/opencv.tag=http://docs.opencv.org/3.4.20 @endcode If you had other definitions already, you can append the line using a `\`: @code TAGFILES = ./docs/doxygen-tags/libstdc++.tag=https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen \ - ./docs/doxygen-tags/opencv.tag=http://docs.opencv.org/3.4.19 + ./docs/doxygen-tags/opencv.tag=http://docs.opencv.org/3.4.20 @endcode Doxygen can now use the information from the tag file to link to the OpenCV diff --git a/modules/core/include/opencv2/core/version.hpp b/modules/core/include/opencv2/core/version.hpp index e355498735..e4418b7857 100644 --- a/modules/core/include/opencv2/core/version.hpp +++ b/modules/core/include/opencv2/core/version.hpp @@ -7,8 +7,8 @@ #define CV_VERSION_MAJOR 3 #define CV_VERSION_MINOR 4 -#define CV_VERSION_REVISION 19 -#define CV_VERSION_STATUS "-dev" +#define CV_VERSION_REVISION 20 +#define CV_VERSION_STATUS "-pre" #define CVAUX_STR_EXP(__A) #__A #define CVAUX_STR(__A) CVAUX_STR_EXP(__A) diff --git a/modules/python/package/setup.py b/modules/python/package/setup.py index 1356931720..d91cb1d51a 100644 --- a/modules/python/package/setup.py +++ b/modules/python/package/setup.py @@ -9,7 +9,7 @@ def main(): os.chdir(SCRIPT_DIR) package_name = 'opencv' - package_version = os.environ.get('OPENCV_VERSION', '3.4.19') # TODO + package_version = os.environ.get('OPENCV_VERSION', '3.4.20') # TODO long_description = 'Open Source Computer Vision Library Python bindings' # TODO diff --git a/platforms/android/build_sdk.py b/platforms/android/build_sdk.py index 3a9618b835..62799a91a1 100755 --- a/platforms/android/build_sdk.py +++ b/platforms/android/build_sdk.py @@ -269,7 +269,7 @@ class Builder: # Add extra data apkxmldest = check_dir(os.path.join(apkdest, "res", "xml"), create=True) apklibdest = check_dir(os.path.join(apkdest, "libs", abi.name), create=True) - for ver, d in self.extra_packs + [("3.4.19", os.path.join(self.libdest, "lib"))]: + for ver, d in self.extra_packs + [("3.4.20", os.path.join(self.libdest, "lib"))]: r = ET.Element("library", attrib={"version": ver}) log.info("Adding libraries from %s", d) diff --git a/platforms/android/service/readme.txt b/platforms/android/service/readme.txt index 11e9f0bae8..fec5c6746a 100644 --- a/platforms/android/service/readme.txt +++ b/platforms/android/service/readme.txt @@ -12,7 +12,7 @@ manually using adb tool: adb install /apk/OpenCV__Manager__.apk -Example: OpenCV_3.4.19-dev_Manager_3.49_armeabi-v7a.apk +Example: OpenCV_3.4.20-dev_Manager_3.49_armeabi-v7a.apk Use the list of platforms below to determine proper OpenCV Manager package for your device: diff --git a/platforms/maven/opencv-it/pom.xml b/platforms/maven/opencv-it/pom.xml index befb75fed5..5955905b9b 100644 --- a/platforms/maven/opencv-it/pom.xml +++ b/platforms/maven/opencv-it/pom.xml @@ -4,7 +4,7 @@ org.opencv opencv-parent - 3.4.19 + 3.4.20 org.opencv opencv-it diff --git a/platforms/maven/opencv/pom.xml b/platforms/maven/opencv/pom.xml index 0ff0c6fe2f..354d15d334 100644 --- a/platforms/maven/opencv/pom.xml +++ b/platforms/maven/opencv/pom.xml @@ -4,7 +4,7 @@ org.opencv opencv-parent - 3.4.19 + 3.4.20 org.opencv opencv diff --git a/platforms/maven/pom.xml b/platforms/maven/pom.xml index 19ba7d07b3..04aa302c41 100644 --- a/platforms/maven/pom.xml +++ b/platforms/maven/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.opencv opencv-parent - 3.4.19 + 3.4.20 pom OpenCV Parent POM From 9eaa7bd566863f86776fbbc5635edfa3f399d812 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 20 Jun 2023 15:15:18 +0300 Subject: [PATCH 2/5] Document parameters of multi-dimentional reshape. --- modules/core/include/opencv2/core/mat.hpp | 25 +++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/modules/core/include/opencv2/core/mat.hpp b/modules/core/include/opencv2/core/mat.hpp index f459ed4b6c..1298bb36d4 100644 --- a/modules/core/include/opencv2/core/mat.hpp +++ b/modules/core/include/opencv2/core/mat.hpp @@ -1305,15 +1305,36 @@ public: t(); // finally, transpose the Nx3 matrix. // This involves copying all the elements @endcode + 3-channel 2x2 matrix reshaped to 1-channel 4x3 matrix, each column has values from one of original channels: + @code + Mat m(Size(2, 2), CV_8UC3, Scalar(1, 2, 3)); + vector new_shape {4, 3}; + m = m.reshape(1, new_shape); + @endcode + or: + @code + Mat m(Size(2, 2), CV_8UC3, Scalar(1, 2, 3)); + const int new_shape[] = {4, 3}; + m = m.reshape(1, 2, new_shape); + @endcode @param cn New number of channels. If the parameter is 0, the number of channels remains the same. @param rows New number of rows. If the parameter is 0, the number of rows remains the same. */ Mat reshape(int cn, int rows=0) const; - /** @overload */ + /** @overload + * @param cn New number of channels. If the parameter is 0, the number of channels remains the same. + * @param newndims New number of dimentions. + * @param newsz Array with new matrix size by all dimentions. If some sizes are zero, + * the original sizes in those dimensions are presumed. + */ Mat reshape(int cn, int newndims, const int* newsz) const; - /** @overload */ + /** @overload + * @param cn New number of channels. If the parameter is 0, the number of channels remains the same. + * @param newshape Vector with new matrix size by all dimentions. If some sizes are zero, + * the original sizes in those dimensions are presumed. + */ Mat reshape(int cn, const std::vector& newshape) const; /** @brief Transposes a matrix. From fe93724d3feed581d34adc2ee342fd7b835a0a3a Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Wed, 21 Jun 2023 09:22:26 +0300 Subject: [PATCH 3/5] FFmpeg wrapper update to FFmpeg version 3.4.13. --- 3rdparty/ffmpeg/ffmpeg.cmake | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/3rdparty/ffmpeg/ffmpeg.cmake b/3rdparty/ffmpeg/ffmpeg.cmake index ad10940335..705766e71c 100644 --- a/3rdparty/ffmpeg/ffmpeg.cmake +++ b/3rdparty/ffmpeg/ffmpeg.cmake @@ -1,8 +1,8 @@ -# Binaries branch name: ffmpeg/3.4_20211220 -# Binaries were created for OpenCV: a22dd28e0272ec0f1cfee8811d3f5f0392827c65 -ocv_update(FFMPEG_BINARIES_COMMIT "5a7644ec3940c6eed41c6ebb5a0602a5615fdb3f") -ocv_update(FFMPEG_FILE_HASH_BIN32 "8ad9de6f1f2ca77786748d1f3a4e83ea") -ocv_update(FFMPEG_FILE_HASH_BIN64 "2c670f068252e7cd28d3883993dc1d6e") +# Binaries branch name: 3.4_20230620 +# Binaries were created for OpenCV: c97c22b7cf2ef0f82cd4203a2e9a6eda94e9f7f1 +ocv_update(FFMPEG_BINARIES_COMMIT "7c4bb90fd43a13732ae907981a88fb983a7e2197") +ocv_update(FFMPEG_FILE_HASH_BIN32 "d7db86de29b0460294489c5ed3180b56") +ocv_update(FFMPEG_FILE_HASH_BIN64 "9df93d8afff2eee368ad484098a12b18") ocv_update(FFMPEG_FILE_HASH_CMAKE "3b90f67f4b429e77d3da36698cef700c") function(download_win_ffmpeg script_var) From 3b264d5877bbdbe8c45c9e55b7543217351da8b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20Kim=20=28=EA=B9=80=ED=98=95=EC=A4=80=29?= <44695374+thekpaul@users.noreply.github.com> Date: Fri, 23 Jun 2023 17:53:03 +0900 Subject: [PATCH 4/5] Add `pthread.h` Inclusion if `HAVE_PTHREADS_PF` is defined Single-case tested with success on Windows 11 with MinGW-w64 Standalone GCC v13.1.0 while building OpenCV 4.7.0 --- modules/core/src/parallel.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/core/src/parallel.cpp b/modules/core/src/parallel.cpp index dc52820e71..94ea91964e 100644 --- a/modules/core/src/parallel.cpp +++ b/modules/core/src/parallel.cpp @@ -118,6 +118,8 @@ #include #elif defined HAVE_CONCURRENCY #include +#elif defined HAVE_PTHREADS_PF + #include #endif From 29388f80a58b953850f23bb8a0efea557e232b7d Mon Sep 17 00:00:00 2001 From: fengyuentau Date: Fri, 23 Jun 2023 17:10:29 +0800 Subject: [PATCH 5/5] fix overflow --- modules/dnn/src/layers/elementwise_layers.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/dnn/src/layers/elementwise_layers.cpp b/modules/dnn/src/layers/elementwise_layers.cpp index b84523eb93..e4375abd6d 100644 --- a/modules/dnn/src/layers/elementwise_layers.cpp +++ b/modules/dnn/src/layers/elementwise_layers.cpp @@ -680,7 +680,14 @@ struct SigmoidFunctor : public BaseDefaultFunctor inline float calculate(float x) const { - return 1.f / (1.f + exp(-x)); + float y; + if (x >= 0) + y = 1.f / (1.f + exp(-x)); + else { + y = exp(x); + y = y / (1 + y); + } + return y; } #ifdef HAVE_HALIDE