diff --git a/doc/tutorials/core/mat_the_basic_image_container/mat_the_basic_image_container.markdown b/doc/tutorials/core/mat_the_basic_image_container/mat_the_basic_image_container.markdown index e972521e46..18c431a244 100644 --- a/doc/tutorials/core/mat_the_basic_image_container/mat_the_basic_image_container.markdown +++ b/doc/tutorials/core/mat_the_basic_image_container/mat_the_basic_image_container.markdown @@ -148,7 +148,7 @@ picture in memory. Creating a Mat object explicitly ---------------------------------- -In the @ref tutorial_load_save_image tutorial you have already learned how to write a matrix to an image +In the @ref tutorial_display_image tutorial you have already learned how to write a matrix to an image file by using the @ref cv::imwrite() function. However, for debugging purposes it's much more convenient to see the actual values. You can do this using the \<\< operator of *Mat*. Be aware that this only works for two dimensional matrices. diff --git a/doc/tutorials/core/table_of_content_core.markdown b/doc/tutorials/core/table_of_content_core.markdown index ff142b7f9c..00f874edc0 100644 --- a/doc/tutorials/core/table_of_content_core.markdown +++ b/doc/tutorials/core/table_of_content_core.markdown @@ -1,12 +1,17 @@ The Core Functionality (core module) {#tutorial_table_of_content_core} ===================================== +@tableofcontents + +##### Basic - @subpage tutorial_mat_the_basic_image_container - @subpage tutorial_how_to_scan_images - @subpage tutorial_mat_mask_operations - @subpage tutorial_mat_operations - @subpage tutorial_adding_images - @subpage tutorial_basic_linear_transform + +##### Advanced - @subpage tutorial_discrete_fourier_transform - @subpage tutorial_file_input_output_with_xml_yml - @subpage tutorial_how_to_use_OpenCV_parallel_for_new diff --git a/doc/tutorials/dnn/table_of_content_dnn.markdown b/doc/tutorials/dnn/table_of_content_dnn.markdown index 974ca4fc5e..fdce2a9ea8 100644 --- a/doc/tutorials/dnn/table_of_content_dnn.markdown +++ b/doc/tutorials/dnn/table_of_content_dnn.markdown @@ -1,6 +1,8 @@ Deep Neural Networks (dnn module) {#tutorial_table_of_content_dnn} ===================================== +@tableofcontents + - @subpage tutorial_dnn_googlenet - @subpage tutorial_dnn_halide - @subpage tutorial_dnn_halide_scheduling diff --git a/doc/tutorials/imgproc/table_of_content_imgproc.markdown b/doc/tutorials/imgproc/table_of_content_imgproc.markdown index bb537f428d..7c0bc8c75d 100644 --- a/doc/tutorials/imgproc/table_of_content_imgproc.markdown +++ b/doc/tutorials/imgproc/table_of_content_imgproc.markdown @@ -1,8 +1,15 @@ Image Processing (imgproc module) {#tutorial_table_of_content_imgproc} ================================= -Basic ------ +@tableofcontents + +The imgproc module in OpenCV is a collection of per-pixel image operations (color conversions, filters) drawing (contours, objects, text), and +geometry transformations (warping, resize) useful for computer vision. +Here's an overview of the content in the imgproc module, categorized for easier navigation: + +##### Basic +These tutorials cover fundamental image processing tasks, such as drawing on images, applying filters, and morphological operations. + - @subpage tutorial_basic_geometric_drawing - @subpage tutorial_random_generator_and_text - @subpage tutorial_gausian_median_blur_bilateral_filter @@ -14,8 +21,9 @@ Basic - @subpage tutorial_threshold - @subpage tutorial_threshold_inRange -Transformations ---------------- +##### Transformations +These tutorials explore more advanced transformations that modify the image in various ways, such as filtering, warping, and edge detection. + - @subpage tutorial_filter_2d - @subpage tutorial_copyMakeBorder - @subpage tutorial_sobel_derivatives @@ -27,16 +35,18 @@ Transformations - @subpage tutorial_remap - @subpage tutorial_warp_affine -Histograms ----------- +##### Histograms +Histograms are vital for image analysis, and these tutorials cover operations like equalization, comparison, and back projection. + - @subpage tutorial_histogram_equalization - @subpage tutorial_histogram_calculation - @subpage tutorial_histogram_comparison - @subpage tutorial_back_projection - @subpage tutorial_template_matching -Contours --------- +##### Contours +Contours are curves that represent the boundaries of objects in an image. These tutorials cover techniques to detect and analyze contours. + - @subpage tutorial_find_contours - @subpage tutorial_hull - @subpage tutorial_bounding_rects_circles @@ -44,8 +54,9 @@ Contours - @subpage tutorial_moments - @subpage tutorial_point_polygon_test -Others ------- +##### Others +These tutorials cover specialized image processing techniques for more complex tasks like deblurring, noise removal, and image segmentation. + - @subpage tutorial_distance_transform - @subpage tutorial_out_of_focus_deblur_filter - @subpage tutorial_motion_deblur_filter diff --git a/doc/tutorials/introduction/android_binary_package/android_dev_intro.markdown b/doc/tutorials/introduction/android_binary_package/android_dev_intro.markdown index 106278bb95..df4f35e84c 100644 --- a/doc/tutorials/introduction/android_binary_package/android_dev_intro.markdown +++ b/doc/tutorials/introduction/android_binary_package/android_dev_intro.markdown @@ -9,6 +9,8 @@ Introduction into Android Development {#tutorial_android_dev_intro} | Original author | Rostislav Vasilikhin | | Compatibility | OpenCV >= 4.0 | +@tableofcontents + This guide was designed to help you in learning Android development basics and setting up your working environment quickly. It was tested with Ubuntu 22.04 and Windows 10. diff --git a/doc/tutorials/introduction/android_binary_package/android_dnn_intro.markdown b/doc/tutorials/introduction/android_binary_package/android_dnn_intro.markdown index 871ac5e588..e3a2d98ecb 100644 --- a/doc/tutorials/introduction/android_binary_package/android_dnn_intro.markdown +++ b/doc/tutorials/introduction/android_binary_package/android_dnn_intro.markdown @@ -12,6 +12,8 @@ | Original author | Dmitry Kurtaev | | Compatibility | OpenCV >= 4.9 | +@tableofcontents + ## Introduction In this tutorial you'll know how to run deep learning networks on Android device using OpenCV deep learning module. diff --git a/doc/tutorials/introduction/android_binary_package/android_ocl_intro.markdown b/doc/tutorials/introduction/android_binary_package/android_ocl_intro.markdown index 2cab424623..0378fc9904 100644 --- a/doc/tutorials/introduction/android_binary_package/android_ocl_intro.markdown +++ b/doc/tutorials/introduction/android_binary_package/android_ocl_intro.markdown @@ -9,6 +9,8 @@ Use OpenCL in Android camera preview based CV application {#tutorial_android_ocl | Original author | Andrey Pavlenko, Alexander Panov | | Compatibility | OpenCV >= 4.9 | +@tableofcontents + This guide was designed to help you in use of [OpenCL ™](https://www.khronos.org/opencl/) in Android camera preview based CV application. Tutorial was written for [Android Studio](http://developer.android.com/tools/studio/index.html) 2022.2.1. It was tested with Ubuntu 22.04. diff --git a/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.markdown b/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.markdown index 331c6bfb51..5618733adc 100644 --- a/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.markdown +++ b/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.markdown @@ -9,6 +9,8 @@ Android Development with OpenCV {#tutorial_dev_with_OCV_on_Android} | Original authors | Alexander Panov, Rostislav Vasilikhin | | Compatibility | OpenCV >= 4.9.0 | +@tableofcontents + This tutorial has been created to help you use OpenCV library within your Android project. This guide was checked on Ubuntu but contains no platform-dependent parts, therefore should be compatible with any OS supported by Android Studio and OpenCV4Android SDK. diff --git a/doc/tutorials/introduction/clojure_dev_intro/clojure_dev_intro.markdown b/doc/tutorials/introduction/clojure_dev_intro/clojure_dev_intro.markdown index cbf52bbdc3..b00d5fd9f2 100644 --- a/doc/tutorials/introduction/clojure_dev_intro/clojure_dev_intro.markdown +++ b/doc/tutorials/introduction/clojure_dev_intro/clojure_dev_intro.markdown @@ -9,6 +9,8 @@ Introduction to OpenCV Development with Clojure {#tutorial_clojure_dev_intro} | Original author | Mimmo Cosenza | | Compatibility | OpenCV >= 3.0 | +@tableofcontents + @warning This tutorial can contain obsolete information. diff --git a/doc/tutorials/introduction/crosscompilation/arm_crosscompile_with_cmake.markdown b/doc/tutorials/introduction/crosscompilation/arm_crosscompile_with_cmake.markdown index 33704d5bca..75d7723106 100644 --- a/doc/tutorials/introduction/crosscompilation/arm_crosscompile_with_cmake.markdown +++ b/doc/tutorials/introduction/crosscompilation/arm_crosscompile_with_cmake.markdown @@ -9,6 +9,8 @@ Cross compilation for ARM based Linux systems {#tutorial_arm_crosscompile_with_c | Original author | Alexander Smorkalov | | Compatibility | OpenCV >= 3.0 | +@tableofcontents + @warning This tutorial can contain obsolete information. diff --git a/doc/tutorials/introduction/crosscompilation/crosscompile_with_multiarch.markdown b/doc/tutorials/introduction/crosscompilation/crosscompile_with_multiarch.markdown index 2ae3e24e38..6e665a0c0b 100644 --- a/doc/tutorials/introduction/crosscompilation/crosscompile_with_multiarch.markdown +++ b/doc/tutorials/introduction/crosscompilation/crosscompile_with_multiarch.markdown @@ -11,6 +11,8 @@ | Compatibility | Ubuntu >=23.04 | |^ | OpenCV >=4.8.0 | +@tableofcontents + @warning This tutorial may contain obsolete information. diff --git a/doc/tutorials/introduction/desktop_java/java_dev_intro.markdown b/doc/tutorials/introduction/desktop_java/java_dev_intro.markdown index d24829197a..b2cf6566a6 100644 --- a/doc/tutorials/introduction/desktop_java/java_dev_intro.markdown +++ b/doc/tutorials/introduction/desktop_java/java_dev_intro.markdown @@ -9,6 +9,8 @@ Introduction to Java Development {#tutorial_java_dev_intro} | Original author | Eric Christiansen and Andrey Pavlenko | | Compatibility | OpenCV >= 3.0 | +@tableofcontents + @warning This tutorial can contain obsolete information. diff --git a/doc/tutorials/introduction/display_image/display_image.markdown b/doc/tutorials/introduction/display_image/display_image.markdown index 96284bd464..9f9c05784f 100644 --- a/doc/tutorials/introduction/display_image/display_image.markdown +++ b/doc/tutorials/introduction/display_image/display_image.markdown @@ -9,6 +9,8 @@ Getting Started with Images {#tutorial_display_image} | Original author | Ana Huamán | | Compatibility | OpenCV >= 3.4.4 | +@tableofcontents + @warning This tutorial can contain obsolete information. diff --git a/doc/tutorials/introduction/java_eclipse/java_eclipse.markdown b/doc/tutorials/introduction/java_eclipse/java_eclipse.markdown index 46e2aac5d1..23c4d79791 100644 --- a/doc/tutorials/introduction/java_eclipse/java_eclipse.markdown +++ b/doc/tutorials/introduction/java_eclipse/java_eclipse.markdown @@ -9,6 +9,8 @@ Using OpenCV Java with Eclipse {#tutorial_java_eclipse} | Original author | Barış Evrim Demiröz | | Compatibility | OpenCV >= 3.0 | +@tableofcontents + @warning This tutorial can contain obsolete information. diff --git a/doc/tutorials/introduction/linux_eclipse/linux_eclipse.markdown b/doc/tutorials/introduction/linux_eclipse/linux_eclipse.markdown index 5d38298e0b..6f8fdc96a2 100644 --- a/doc/tutorials/introduction/linux_eclipse/linux_eclipse.markdown +++ b/doc/tutorials/introduction/linux_eclipse/linux_eclipse.markdown @@ -9,6 +9,8 @@ Using OpenCV with Eclipse (plugin CDT) {#tutorial_linux_eclipse} | Original author | Ana Huamán | | Compatibility | OpenCV >= 3.0 | +@tableofcontents + @warning This tutorial can contain obsolete information. diff --git a/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.markdown b/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.markdown index d08280db64..7cfbb31777 100644 --- a/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.markdown +++ b/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.markdown @@ -9,6 +9,8 @@ Using OpenCV with gcc and CMake {#tutorial_linux_gcc_cmake} | Original author | Ana Huamán | | Compatibility | OpenCV >= 3.0 | +@tableofcontents + @warning This tutorial can contain obsolete information. diff --git a/doc/tutorials/introduction/linux_install/linux_install.markdown b/doc/tutorials/introduction/linux_install/linux_install.markdown index 77855e069e..c9baa57e8d 100644 --- a/doc/tutorials/introduction/linux_install/linux_install.markdown +++ b/doc/tutorials/introduction/linux_install/linux_install.markdown @@ -1,6 +1,7 @@ Installation in Linux {#tutorial_linux_install} ===================== +@prev_tutorial{tutorial_env_reference} @next_tutorial{tutorial_linux_gdb_pretty_printer} | | | diff --git a/doc/tutorials/introduction/table_of_content_introduction.markdown b/doc/tutorials/introduction/table_of_content_introduction.markdown index c9f096b0be..4d7b0eb94e 100644 --- a/doc/tutorials/introduction/table_of_content_introduction.markdown +++ b/doc/tutorials/introduction/table_of_content_introduction.markdown @@ -1,6 +1,8 @@ Introduction to OpenCV {#tutorial_table_of_content_introduction} ====================== +@tableofcontents + - @subpage tutorial_general_install - @subpage tutorial_config_reference - @subpage tutorial_env_reference diff --git a/doc/tutorials/introduction/windows_install/windows_install.markdown b/doc/tutorials/introduction/windows_install/windows_install.markdown index 36d4e0ccba..d9b5f8d78b 100644 --- a/doc/tutorials/introduction/windows_install/windows_install.markdown +++ b/doc/tutorials/introduction/windows_install/windows_install.markdown @@ -9,6 +9,8 @@ Installation in Windows {#tutorial_windows_install} | Original author | Bernát Gábor | | Compatibility | OpenCV >= 3.0 | +@tableofcontents + @warning This tutorial can contain obsolete information. diff --git a/doc/tutorials/introduction/windows_visual_studio_image_watch/windows_visual_studio_image_watch.markdown b/doc/tutorials/introduction/windows_visual_studio_image_watch/windows_visual_studio_image_watch.markdown index 630f3c750b..d0db019d31 100644 --- a/doc/tutorials/introduction/windows_visual_studio_image_watch/windows_visual_studio_image_watch.markdown +++ b/doc/tutorials/introduction/windows_visual_studio_image_watch/windows_visual_studio_image_watch.markdown @@ -9,6 +9,8 @@ Image Watch: viewing in-memory images in the Visual Studio debugger {#tutorial_w | Original author | Wolf Kienzle | | Compatibility | OpenCV >= 3.0 | +@tableofcontents + @warning This tutorial can contain obsolete information. diff --git a/doc/tutorials/introduction/windows_visual_studio_opencv/windows_visual_studio_opencv.markdown b/doc/tutorials/introduction/windows_visual_studio_opencv/windows_visual_studio_opencv.markdown index 84cd5b0a86..a223a4f608 100644 --- a/doc/tutorials/introduction/windows_visual_studio_opencv/windows_visual_studio_opencv.markdown +++ b/doc/tutorials/introduction/windows_visual_studio_opencv/windows_visual_studio_opencv.markdown @@ -8,6 +8,8 @@ How to build applications with OpenCV inside the "Microsoft Visual Studio" {#tut | Original author | Bernát Gábor | | Compatibility | OpenCV >= 3.0 | +@tableofcontents + @warning This tutorial can contain obsolete information. @@ -70,7 +72,7 @@ create it. Then in the upcoming dialog make sure you create an empty project. ![](images/NewProjectVisualStudio.jpg) -The *local* method +The local method ------------------ Every project is built separately from the others. Due to this every project has its own rule @@ -179,7 +181,7 @@ entry inside the Property Manager to easily add the OpenCV build rules. ![](images/PropertyPageAddExisting.jpg) -The *global* method +The global method ------------------- In case you find it too troublesome to add the property pages to each and every one of your projects you diff --git a/modules/core/include/opencv2/core/mat.hpp b/modules/core/include/opencv2/core/mat.hpp index 2282e12aee..679b89aaa1 100644 --- a/modules/core/include/opencv2/core/mat.hpp +++ b/modules/core/include/opencv2/core/mat.hpp @@ -3556,7 +3556,7 @@ public: /** @brief Matrix expression representation @anchor MatrixExpressions This is a list of implemented matrix operations that can be combined in arbitrary complex -expressions (here A, B stand for matrices ( Mat ), s for a scalar ( Scalar ), alpha for a +expressions (here A, B stand for matrices ( cv::Mat ), s for a cv::Scalar, alpha for a real-valued scalar ( double )): - Addition, subtraction, negation: `A+B`, `A-B`, `A+s`, `A-s`, `s+A`, `s-A`, `-A` - Scaling: `A*alpha` @@ -3571,13 +3571,13 @@ real-valued scalar ( double )): 0. - Bitwise logical operations: `A logicop B`, `A logicop s`, `s logicop A`, `~A`, where *logicop* is one of `&`, `|`, `^`. -- Element-wise minimum and maximum: `min(A, B)`, `min(A, alpha)`, `max(A, B)`, `max(A, alpha)` -- Element-wise absolute value: `abs(A)` +- Element-wise minimum and maximum: cv::min(A, B), cv::min(A, alpha), cv::max(A, B), cv::max(A, alpha) +- Element-wise absolute value: cv::abs(A) - Cross-product, dot-product: `A.cross(B)`, `A.dot(B)` -- Any function of matrix or matrices and scalars that returns a matrix or a scalar, such as norm, - mean, sum, countNonZero, trace, determinant, repeat, and others. +- Any function of matrix or matrices and scalars that returns a matrix or a scalar, such as cv::norm, + cv::mean, cv::sum, cv::countNonZero, cv::trace, cv::determinant, cv::repeat, and others. - Matrix initializers ( Mat::eye(), Mat::zeros(), Mat::ones() ), matrix comma-separated - initializers, matrix constructors and operators that extract sub-matrices (see Mat description). + initializers, matrix constructors and operators that extract sub-matrices (see cv::Mat description). - Mat_() constructors to cast the result to the proper type. @note Comma-separated initializers and probably some other operations may require additional explicit Mat() or Mat_() constructor calls to resolve a possible ambiguity.