From adeada5f1f2a15948172caf244171897ab4c3274 Mon Sep 17 00:00:00 2001 From: Akhil Chaturvedi Date: Sat, 4 Oct 2025 00:25:38 +0530 Subject: [PATCH 1/4] [Saliency] Enable Java/Android bindings by adding 'WRAP java' to CMake Fixes #4016 This addresses the inability to use the `saliency` module in Android (Java/Kotlin) applications. When generated using `build_sdk.py`, the native library compiles, but the Java wrapper class (`org.opencv.saliency.Saliency`) is not generated. **Technical Fix:** The `ocv_define_module` macro in `modules/saliency/CMakeLists.txt` was missing the `java` flag in its `WRAP` parameter. **Change in `modules/saliency/CMakeLists.txt`:** # OLD ocv_define_module(saliency opencv_imgproc opencv_features2d WRAP python) # NEW ocv_define_module(saliency opencv_imgproc opencv_features2d WRAP python java) --- modules/saliency/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/saliency/CMakeLists.txt b/modules/saliency/CMakeLists.txt index f9bbffc9177..77e1c0ebcd2 100644 --- a/modules/saliency/CMakeLists.txt +++ b/modules/saliency/CMakeLists.txt @@ -4,6 +4,6 @@ endif() set(the_description "Saliency API") -ocv_define_module(saliency opencv_imgproc opencv_features2d WRAP python) +ocv_define_module(saliency opencv_imgproc opencv_features2d WRAP python java) ocv_warnings_disable(CMAKE_CXX_FLAGS -Woverloaded-virtual) From 896e4974b805776205a6601ea0922a2ae3eb2542 Mon Sep 17 00:00:00 2001 From: Akhil Chaturvedi Date: Tue, 7 Oct 2025 19:29:03 +0530 Subject: [PATCH 2/4] Updated saliencySpecializedClasses.hpp saliency: Fix -Woverloaded-virtual in header --- .../include/opencv2/saliency/saliencySpecializedClasses.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp b/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp index 580f6f3840e..8e9feb0af9c 100644 --- a/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp +++ b/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp @@ -87,7 +87,7 @@ class CV_EXPORTS_W StaticSaliencySpectralResidual : public StaticSaliency } CV_WRAP void read( const FileNode& fn ) CV_OVERRIDE; - void write( FileStorage& fs ) const CV_OVERRIDE; + CV_WRAP void write( FileStorage& fs ) const CV_OVERRIDE; CV_WRAP int getImageWidth() const { @@ -308,8 +308,8 @@ class CV_EXPORTS_W ObjectnessBING : public Objectness return computeSaliencyImpl( image, saliencyMap ); } - CV_WRAP void read(); - CV_WRAP void write() const; + CV_WRAP void readModel(); + CV_WRAP void writeModel() const; /** @brief Return the list of the rectangles' objectness value, From 2d41c9a19e15ada9125aca415fa22680c716530f Mon Sep 17 00:00:00 2001 From: Akhil Chaturvedi Date: Thu, 9 Oct 2025 19:03:19 +0530 Subject: [PATCH 3/4] Update objectnessBING.cpp --- modules/saliency/src/BING/objectnessBING.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/saliency/src/BING/objectnessBING.cpp b/modules/saliency/src/BING/objectnessBING.cpp index 9820f02b512..fe2eb8ae128 100644 --- a/modules/saliency/src/BING/objectnessBING.cpp +++ b/modules/saliency/src/BING/objectnessBING.cpp @@ -453,12 +453,12 @@ std::vector ObjectnessBING::getobjectnessValues() return objectnessValues; } -void ObjectnessBING::read() +void ObjectnessBING::readModel() { } -void ObjectnessBING::write() const +void ObjectnessBING::writeModel() const { } From 47ad03df2ea61e387bca260ef57761dc1297b8dd Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Fri, 7 Nov 2025 12:51:14 +0300 Subject: [PATCH 4/4] Code review fixes. --- .../opencv2/saliency/saliencySpecializedClasses.hpp | 3 --- modules/saliency/src/BING/objectnessBING.cpp | 11 +---------- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp b/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp index 8e9feb0af9c..2a80026f1d3 100644 --- a/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp +++ b/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp @@ -308,9 +308,6 @@ class CV_EXPORTS_W ObjectnessBING : public Objectness return computeSaliencyImpl( image, saliencyMap ); } - CV_WRAP void readModel(); - CV_WRAP void writeModel() const; - /** @brief Return the list of the rectangles' objectness value, in the same order as the *vector\ objectnessBoundingBox* returned by the algorithm (in diff --git a/modules/saliency/src/BING/objectnessBING.cpp b/modules/saliency/src/BING/objectnessBING.cpp index fe2eb8ae128..6890ea0fce3 100644 --- a/modules/saliency/src/BING/objectnessBING.cpp +++ b/modules/saliency/src/BING/objectnessBING.cpp @@ -448,21 +448,12 @@ bool ObjectnessBING::matRead( const std::string& filename, Mat& _M ) M.copyTo( _M ); return true; } + std::vector ObjectnessBING::getobjectnessValues() { return objectnessValues; } -void ObjectnessBING::readModel() -{ - -} - -void ObjectnessBING::writeModel() const -{ - -} - bool ObjectnessBING::computeSaliencyImpl( InputArray image, OutputArray objectnessBoundingBox ) { ValStructVec finalBoxes;