diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index a171ebfb5c..19117c1d6e 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -832,6 +832,8 @@ macro(ocv_glob_module_sources) "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/hal/*.h" "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/utils/*.hpp" "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/utils/*.h" + "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/slam/*.hpp" + "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/slam/*.h" "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/legacy/*.h" ) file(GLOB lib_hdrs_detail diff --git a/modules/ptcloud/CMakeLists.txt b/modules/ptcloud/CMakeLists.txt index 7602feba97..999181b3d7 100644 --- a/modules/ptcloud/CMakeLists.txt +++ b/modules/ptcloud/CMakeLists.txt @@ -4,10 +4,11 @@ set(debug_modules "") if(DEBUG_opencv_ptcloud) list(APPEND debug_modules opencv_highgui) endif() -ocv_define_module(ptcloud opencv_geometry opencv_imgproc opencv_flann ${debug_modules} - WRAP java objc python js +ocv_define_module(ptcloud opencv_geometry opencv_imgproc opencv_flann opencv_features opencv_imgcodecs opencv_video ${debug_modules} + WRAP java objc python js ) ocv_target_link_libraries(${the_module} ${LAPACK_LIBRARIES}) +ocv_warnings_disable(CMAKE_CXX_FLAGS -Wshadow) if(NOT HAVE_EIGEN) message(STATUS "Geometry: Eigen support is disabled. Eigen is Required for Posegraph optimization") diff --git a/modules/ptcloud/include/opencv2/ptcloud.hpp b/modules/ptcloud/include/opencv2/ptcloud.hpp index ea1b09219f..ec4cdc85f9 100644 --- a/modules/ptcloud/include/opencv2/ptcloud.hpp +++ b/modules/ptcloud/include/opencv2/ptcloud.hpp @@ -11,6 +11,7 @@ #include "opencv2/ptcloud/odometry.hpp" #include "opencv2/ptcloud/odometry_frame.hpp" #include "opencv2/ptcloud/odometry_settings.hpp" +#include "opencv2/ptcloud/slam.hpp" /** @defgroup ptcloud Point Clound Processing diff --git a/modules/slam/include/opencv2/slam.hpp b/modules/ptcloud/include/opencv2/ptcloud/slam.hpp similarity index 67% rename from modules/slam/include/opencv2/slam.hpp rename to modules/ptcloud/include/opencv2/ptcloud/slam.hpp index c677e221b2..2941d0ef85 100644 --- a/modules/slam/include/opencv2/slam.hpp +++ b/modules/ptcloud/include/opencv2/ptcloud/slam.hpp @@ -4,8 +4,8 @@ // Copyright (C) 2026, BigVision LLC, all rights reserved. // Third party copyrights are property of their respective owners. -#ifndef OPENCV_SLAM_HPP -#define OPENCV_SLAM_HPP +#ifndef OPENCV_PTCLOUD_SLAM_HPP +#define OPENCV_PTCLOUD_SLAM_HPP /** @defgroup slam SLAM and Visual Odometry @@ -15,9 +15,9 @@ Bootstraps an initial map from two-view geometry, then tracks subsequent frames with PnP, growing the map at keyframe promotions. */ -#include "opencv2/slam/types.hpp" -#include "opencv2/slam/map.hpp" -#include "opencv2/slam/odometry_params.hpp" -#include "opencv2/slam/visual_odometry.hpp" +#include "opencv2/ptcloud/slam/types.hpp" +#include "opencv2/ptcloud/slam/map.hpp" +#include "opencv2/ptcloud/slam/odometry_params.hpp" +#include "opencv2/ptcloud/slam/visual_odometry.hpp" -#endif // OPENCV_SLAM_HPP +#endif // OPENCV_PTCLOUD_SLAM_HPP diff --git a/modules/slam/include/opencv2/slam/map.hpp b/modules/ptcloud/include/opencv2/ptcloud/slam/map.hpp similarity index 97% rename from modules/slam/include/opencv2/slam/map.hpp rename to modules/ptcloud/include/opencv2/ptcloud/slam/map.hpp index ab8d1963bc..01fe156d55 100644 --- a/modules/slam/include/opencv2/slam/map.hpp +++ b/modules/ptcloud/include/opencv2/ptcloud/slam/map.hpp @@ -7,7 +7,7 @@ #ifndef OPENCV_SLAM_MAP_HPP #define OPENCV_SLAM_MAP_HPP -#include "opencv2/slam/types.hpp" +#include "opencv2/ptcloud/slam/types.hpp" #include #include diff --git a/modules/slam/include/opencv2/slam/odometry_params.hpp b/modules/ptcloud/include/opencv2/ptcloud/slam/odometry_params.hpp similarity index 100% rename from modules/slam/include/opencv2/slam/odometry_params.hpp rename to modules/ptcloud/include/opencv2/ptcloud/slam/odometry_params.hpp diff --git a/modules/slam/include/opencv2/slam/types.hpp b/modules/ptcloud/include/opencv2/ptcloud/slam/types.hpp similarity index 100% rename from modules/slam/include/opencv2/slam/types.hpp rename to modules/ptcloud/include/opencv2/ptcloud/slam/types.hpp diff --git a/modules/slam/include/opencv2/slam/visual_odometry.hpp b/modules/ptcloud/include/opencv2/ptcloud/slam/visual_odometry.hpp similarity index 94% rename from modules/slam/include/opencv2/slam/visual_odometry.hpp rename to modules/ptcloud/include/opencv2/ptcloud/slam/visual_odometry.hpp index 95b55e89e3..65e3b79710 100644 --- a/modules/slam/include/opencv2/slam/visual_odometry.hpp +++ b/modules/ptcloud/include/opencv2/ptcloud/slam/visual_odometry.hpp @@ -10,9 +10,9 @@ #include "opencv2/core.hpp" #include "opencv2/features.hpp" -#include "opencv2/slam/types.hpp" -#include "opencv2/slam/map.hpp" -#include "opencv2/slam/odometry_params.hpp" +#include "opencv2/ptcloud/slam/types.hpp" +#include "opencv2/ptcloud/slam/map.hpp" +#include "opencv2/ptcloud/slam/odometry_params.hpp" #include diff --git a/modules/slam/include/opencv2/slam/slam.hpp b/modules/ptcloud/include/opencv2/slam.hpp similarity index 54% rename from modules/slam/include/opencv2/slam/slam.hpp rename to modules/ptcloud/include/opencv2/slam.hpp index f296d9601e..71ff53c06e 100644 --- a/modules/slam/include/opencv2/slam/slam.hpp +++ b/modules/ptcloud/include/opencv2/slam.hpp @@ -4,10 +4,11 @@ // Copyright (C) 2026, BigVision LLC, all rights reserved. // Third party copyrights are property of their respective owners. -// Compatibility shim: prefer #include . -#ifndef OPENCV_SLAM_SLAM_HPP -#define OPENCV_SLAM_SLAM_HPP +#ifndef OPENCV_SLAM_HPP +#define OPENCV_SLAM_HPP -#include "opencv2/slam.hpp" +// Convenience umbrella header so SLAM / visual odometry can be included as +// . The implementation currently lives in the ptcloud module. +#include "opencv2/ptcloud/slam.hpp" -#endif +#endif // OPENCV_SLAM_HPP diff --git a/modules/slam/src/map.cpp b/modules/ptcloud/src/slam/map.cpp similarity index 100% rename from modules/slam/src/map.cpp rename to modules/ptcloud/src/slam/map.cpp diff --git a/modules/slam/src/odometry/frame.hpp b/modules/ptcloud/src/slam/odometry/frame.hpp similarity index 100% rename from modules/slam/src/odometry/frame.hpp rename to modules/ptcloud/src/slam/odometry/frame.hpp diff --git a/modules/slam/src/odometry/visual_odometry.cpp b/modules/ptcloud/src/slam/odometry/visual_odometry.cpp similarity index 100% rename from modules/slam/src/odometry/visual_odometry.cpp rename to modules/ptcloud/src/slam/odometry/visual_odometry.cpp diff --git a/modules/slam/src/odometry/vo_bootstrap.cpp b/modules/ptcloud/src/slam/odometry/vo_bootstrap.cpp similarity index 100% rename from modules/slam/src/odometry/vo_bootstrap.cpp rename to modules/ptcloud/src/slam/odometry/vo_bootstrap.cpp diff --git a/modules/slam/src/odometry/vo_impl.hpp b/modules/ptcloud/src/slam/odometry/vo_impl.hpp similarity index 100% rename from modules/slam/src/odometry/vo_impl.hpp rename to modules/ptcloud/src/slam/odometry/vo_impl.hpp diff --git a/modules/slam/src/odometry/vo_keyframe.cpp b/modules/ptcloud/src/slam/odometry/vo_keyframe.cpp similarity index 100% rename from modules/slam/src/odometry/vo_keyframe.cpp rename to modules/ptcloud/src/slam/odometry/vo_keyframe.cpp diff --git a/modules/slam/src/odometry/vo_map_growth.cpp b/modules/ptcloud/src/slam/odometry/vo_map_growth.cpp similarity index 100% rename from modules/slam/src/odometry/vo_map_growth.cpp rename to modules/ptcloud/src/slam/odometry/vo_map_growth.cpp diff --git a/modules/slam/src/odometry/vo_tracking.cpp b/modules/ptcloud/src/slam/odometry/vo_tracking.cpp similarity index 100% rename from modules/slam/src/odometry/vo_tracking.cpp rename to modules/ptcloud/src/slam/odometry/vo_tracking.cpp diff --git a/modules/slam/src/optimizer/pose_optimizer.cpp b/modules/ptcloud/src/slam/optimizer/pose_optimizer.cpp similarity index 100% rename from modules/slam/src/optimizer/pose_optimizer.cpp rename to modules/ptcloud/src/slam/optimizer/pose_optimizer.cpp diff --git a/modules/slam/src/optimizer/pose_optimizer.hpp b/modules/ptcloud/src/slam/optimizer/pose_optimizer.hpp similarity index 100% rename from modules/slam/src/optimizer/pose_optimizer.hpp rename to modules/ptcloud/src/slam/optimizer/pose_optimizer.hpp diff --git a/modules/slam/src/precomp.hpp b/modules/ptcloud/src/slam/precomp.hpp similarity index 96% rename from modules/slam/src/precomp.hpp rename to modules/ptcloud/src/slam/precomp.hpp index ad2246c4dd..d489fa9c0d 100644 --- a/modules/slam/src/precomp.hpp +++ b/modules/ptcloud/src/slam/precomp.hpp @@ -7,7 +7,7 @@ #ifndef OPENCV_SLAM_PRECOMP_HPP #define OPENCV_SLAM_PRECOMP_HPP -#include "opencv2/slam.hpp" +#include "opencv2/ptcloud/slam.hpp" #include "opencv2/core.hpp" #include "opencv2/core/utility.hpp" diff --git a/modules/slam/test/test_map.cpp b/modules/ptcloud/test/test_map.cpp similarity index 100% rename from modules/slam/test/test_map.cpp rename to modules/ptcloud/test/test_map.cpp diff --git a/modules/ptcloud/test/test_precomp.hpp b/modules/ptcloud/test/test_precomp.hpp index c3fc4c8385..ace4e812c4 100644 --- a/modules/ptcloud/test/test_precomp.hpp +++ b/modules/ptcloud/test/test_precomp.hpp @@ -13,6 +13,8 @@ #include #include "opencv2/ptcloud/depth.hpp" #include "opencv2/ptcloud/odometry.hpp" +#include "opencv2/ptcloud/slam.hpp" +#include "opencv2/features.hpp" #ifdef HAVE_OPENCL #include diff --git a/modules/slam/test/test_visual_odometry.cpp b/modules/ptcloud/test/test_visual_odometry.cpp similarity index 100% rename from modules/slam/test/test_visual_odometry.cpp rename to modules/ptcloud/test/test_visual_odometry.cpp diff --git a/modules/slam/CMakeLists.txt b/modules/slam/CMakeLists.txt deleted file mode 100644 index 6b6f62b2f8..0000000000 --- a/modules/slam/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -set(the_description "SLAM and Visual Odometry") - -ocv_define_module(slam - opencv_geometry - opencv_features - opencv_imgproc - opencv_imgcodecs - opencv_video - OPTIONAL - opencv_dnn - WRAP python) - -ocv_warnings_disable(CMAKE_CXX_FLAGS -Wshadow) diff --git a/modules/slam/perf/perf_main.cpp b/modules/slam/perf/perf_main.cpp deleted file mode 100644 index 95b14c1581..0000000000 --- a/modules/slam/perf/perf_main.cpp +++ /dev/null @@ -1,9 +0,0 @@ -// This file is part of OpenCV project. -// It is subject to the license terms in the LICENSE file found in the top-level directory -// of this distribution and at http://opencv.org/license.html. -// Copyright (C) 2026, BigVision LLC, all rights reserved. -// Third party copyrights are property of their respective owners. - -#include "perf_precomp.hpp" - -CV_PERF_TEST_MAIN(slam) diff --git a/modules/slam/perf/perf_precomp.hpp b/modules/slam/perf/perf_precomp.hpp deleted file mode 100644 index 37fede9ca6..0000000000 --- a/modules/slam/perf/perf_precomp.hpp +++ /dev/null @@ -1,13 +0,0 @@ -// This file is part of OpenCV project. -// It is subject to the license terms in the LICENSE file found in the top-level directory -// of this distribution and at http://opencv.org/license.html. -// Copyright (C) 2026, BigVision LLC, all rights reserved. -// Third party copyrights are property of their respective owners. - -#ifndef OPENCV_SLAM_PERF_PRECOMP_HPP -#define OPENCV_SLAM_PERF_PRECOMP_HPP - -#include "opencv2/ts.hpp" -#include "opencv2/slam.hpp" - -#endif diff --git a/modules/slam/test/test_main.cpp b/modules/slam/test/test_main.cpp deleted file mode 100644 index 1a7a912ed5..0000000000 --- a/modules/slam/test/test_main.cpp +++ /dev/null @@ -1,9 +0,0 @@ -// This file is part of OpenCV project. -// It is subject to the license terms in the LICENSE file found in the top-level directory -// of this distribution and at http://opencv.org/license.html. -// Copyright (C) 2026, BigVision LLC, all rights reserved. -// Third party copyrights are property of their respective owners. - -#include "test_precomp.hpp" - -CV_TEST_MAIN("cv") diff --git a/modules/slam/test/test_precomp.hpp b/modules/slam/test/test_precomp.hpp deleted file mode 100644 index 735e4f4d22..0000000000 --- a/modules/slam/test/test_precomp.hpp +++ /dev/null @@ -1,15 +0,0 @@ -// This file is part of OpenCV project. -// It is subject to the license terms in the LICENSE file found in the top-level directory -// of this distribution and at http://opencv.org/license.html. -// Copyright (C) 2026, BigVision LLC, all rights reserved. -// Third party copyrights are property of their respective owners. - -#ifndef OPENCV_SLAM_TEST_PRECOMP_HPP -#define OPENCV_SLAM_TEST_PRECOMP_HPP - -#include "opencv2/ts.hpp" -#include "opencv2/slam.hpp" -#include "opencv2/geometry.hpp" -#include "opencv2/features.hpp" - -#endif diff --git a/samples/slam/CMakeLists.txt b/samples/slam/CMakeLists.txt index 4c6dd1707d..f87637b768 100644 --- a/samples/slam/CMakeLists.txt +++ b/samples/slam/CMakeLists.txt @@ -4,7 +4,7 @@ set(OPENCV_SLAM_SAMPLES_REQUIRED_DEPS opencv_core opencv_dnn opencv_features - opencv_slam) + opencv_ptcloud) ocv_check_dependencies(${OPENCV_SLAM_SAMPLES_REQUIRED_DEPS}) if(NOT BUILD_EXAMPLES OR NOT OCV_DEPENDENCIES_FOUND)