1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-29 23:33:05 +04:00

Merge pull request #26405 from kaingwade:rename_features2d

Rename features2d #26405

This PR renames the module _features2d_ to _features_ as one of the Big OpenCV Cleanup #25007. 
Related PR: opencv/opencv_contrib: [#3820](https://github.com/opencv/opencv_contrib/pull/3820) opencv/ci-gha-workflow: [#192](https://github.com/opencv/ci-gha-workflow/pull/192)
This commit is contained in:
WU Jia
2024-11-12 16:04:48 +08:00
committed by GitHub
parent c7a21dc5bf
commit 614e250fd3
260 changed files with 273 additions and 268 deletions
@@ -44,26 +44,26 @@ You can find the images (*graf1.png*, *graf3.png*) and homography (*H1to3p.xml*)
@add_toggle_cpp
- **Downloadable code**: Click
[here](https://github.com/opencv/opencv/5.x/samples/cpp/tutorial_code/features2D/AKAZE_match.cpp)
[here](https://github.com/opencv/opencv/5.x/samples/cpp/tutorial_code/features/AKAZE_match.cpp)
- **Code at glance:**
@include samples/cpp/tutorial_code/features2D/AKAZE_match.cpp
@include samples/cpp/tutorial_code/features/AKAZE_match.cpp
@end_toggle
@add_toggle_java
- **Downloadable code**: Click
[here](https://github.com/opencv/opencv/5.x/samples/java/tutorial_code/features2D/akaze_matching/AKAZEMatchDemo.java)
[here](https://github.com/opencv/opencv/5.x/samples/java/tutorial_code/features/akaze_matching/AKAZEMatchDemo.java)
- **Code at glance:**
@include samples/java/tutorial_code/features2D/akaze_matching/AKAZEMatchDemo.java
@include samples/java/tutorial_code/features/akaze_matching/AKAZEMatchDemo.java
@end_toggle
@add_toggle_python
- **Downloadable code**: Click
[here](https://github.com/opencv/opencv/5.x/samples/python/tutorial_code/features2D/akaze_matching/AKAZE_match.py)
[here](https://github.com/opencv/opencv/5.x/samples/python/tutorial_code/features/akaze_matching/AKAZE_match.py)
- **Code at glance:**
@include samples/python/tutorial_code/features2D/akaze_matching/AKAZE_match.py
@include samples/python/tutorial_code/features/akaze_matching/AKAZE_match.py
@end_toggle
### Explanation
@@ -71,15 +71,15 @@ You can find the images (*graf1.png*, *graf3.png*) and homography (*H1to3p.xml*)
- **Load images and homography**
@add_toggle_cpp
@snippet samples/cpp/tutorial_code/features2D/AKAZE_match.cpp load
@snippet samples/cpp/tutorial_code/features/AKAZE_match.cpp load
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/akaze_matching/AKAZEMatchDemo.java load
@snippet samples/java/tutorial_code/features/akaze_matching/AKAZEMatchDemo.java load
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/akaze_matching/AKAZE_match.py load
@snippet samples/python/tutorial_code/features/akaze_matching/AKAZE_match.py load
@end_toggle
We are loading grayscale images here. Homography is stored in the xml created with FileStorage.
@@ -87,15 +87,15 @@ We are loading grayscale images here. Homography is stored in the xml created wi
- **Detect keypoints and compute descriptors using AKAZE**
@add_toggle_cpp
@snippet samples/cpp/tutorial_code/features2D/AKAZE_match.cpp AKAZE
@snippet samples/cpp/tutorial_code/features/AKAZE_match.cpp AKAZE
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/akaze_matching/AKAZEMatchDemo.java AKAZE
@snippet samples/java/tutorial_code/features/akaze_matching/AKAZEMatchDemo.java AKAZE
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/akaze_matching/AKAZE_match.py AKAZE
@snippet samples/python/tutorial_code/features/akaze_matching/AKAZE_match.py AKAZE
@end_toggle
We create AKAZE and detect and compute AKAZE keypoints and descriptors. Since we don't need the *mask*
@@ -104,30 +104,30 @@ parameter, *noArray()* is used.
- **Use brute-force matcher to find 2-nn matches**
@add_toggle_cpp
@snippet samples/cpp/tutorial_code/features2D/AKAZE_match.cpp 2-nn matching
@snippet samples/cpp/tutorial_code/features/AKAZE_match.cpp 2-nn matching
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/akaze_matching/AKAZEMatchDemo.java 2-nn matching
@snippet samples/java/tutorial_code/features/akaze_matching/AKAZEMatchDemo.java 2-nn matching
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/akaze_matching/AKAZE_match.py 2-nn matching
@snippet samples/python/tutorial_code/features/akaze_matching/AKAZE_match.py 2-nn matching
@end_toggle
We use Hamming distance, because AKAZE uses binary descriptor by default.
- **Use 2-nn matches and ratio criterion to find correct keypoint matches**
@add_toggle_cpp
@snippet samples/cpp/tutorial_code/features2D/AKAZE_match.cpp ratio test filtering
@snippet samples/cpp/tutorial_code/features/AKAZE_match.cpp ratio test filtering
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/akaze_matching/AKAZEMatchDemo.java ratio test filtering
@snippet samples/java/tutorial_code/features/akaze_matching/AKAZEMatchDemo.java ratio test filtering
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/akaze_matching/AKAZE_match.py ratio test filtering
@snippet samples/python/tutorial_code/features/akaze_matching/AKAZE_match.py ratio test filtering
@end_toggle
If the closest match distance is significantly lower than the second closest one, then the match is correct (match is not ambiguous).
@@ -135,15 +135,15 @@ If the closest match distance is significantly lower than the second closest one
- **Check if our matches fit in the homography model**
@add_toggle_cpp
@snippet samples/cpp/tutorial_code/features2D/AKAZE_match.cpp homography check
@snippet samples/cpp/tutorial_code/features/AKAZE_match.cpp homography check
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/akaze_matching/AKAZEMatchDemo.java homography check
@snippet samples/java/tutorial_code/features/akaze_matching/AKAZEMatchDemo.java homography check
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/akaze_matching/AKAZE_match.py homography check
@snippet samples/python/tutorial_code/features/akaze_matching/AKAZE_match.py homography check
@end_toggle
If the distance from first keypoint's projection to the second keypoint is less than threshold,
@@ -154,15 +154,15 @@ We create a new set of matches for the inliers, because it is required by the dr
- **Output results**
@add_toggle_cpp
@snippet samples/cpp/tutorial_code/features2D/AKAZE_match.cpp draw final matches
@snippet samples/cpp/tutorial_code/features/AKAZE_match.cpp draw final matches
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/akaze_matching/AKAZEMatchDemo.java draw final matches
@snippet samples/java/tutorial_code/features/akaze_matching/AKAZEMatchDemo.java draw final matches
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/akaze_matching/AKAZE_match.py draw final matches
@snippet samples/python/tutorial_code/features/akaze_matching/AKAZE_match.py draw final matches
@end_toggle
Here we save the resulting image and print some statistics.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 2.0 MiB

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 1.8 MiB

@@ -48,7 +48,7 @@ To run the code you have to specify input (camera id or video_file). Then, selec
Source Code
-----------
@include cpp/tutorial_code/features2D/AKAZE_tracking/planar_tracking.cpp
@include cpp/tutorial_code/features/AKAZE_tracking/planar_tracking.cpp
Explanation
-----------

Before

Width:  |  Height:  |  Size: 318 KiB

After

Width:  |  Height:  |  Size: 318 KiB

@@ -11,7 +11,7 @@ Detection of planar objects {#tutorial_detection_of_planar_objects}
| Original author | Victor Eruhimov |
| Compatibility | OpenCV >= 3.0 |
The goal of this tutorial is to learn how to use *features2d* and *calib3d* modules for detecting
The goal of this tutorial is to learn how to use *features* and *calib3d* modules for detecting
known planar objects in scenes.
*Test data*: use images in your data folder, for instance, box.png and box_in_scene.png.
@@ -34,20 +34,20 @@ Code
@add_toggle_cpp
This tutorial code's is shown lines below. You can also download it from
[here](https://github.com/opencv/opencv/tree/5.x/samples/cpp/tutorial_code/features2D/feature_description/SURF_matching_Demo.cpp)
@include samples/cpp/tutorial_code/features2D/feature_description/SURF_matching_Demo.cpp
[here](https://github.com/opencv/opencv/tree/5.x/samples/cpp/tutorial_code/features/feature_description/SURF_matching_Demo.cpp)
@include samples/cpp/tutorial_code/features/feature_description/SURF_matching_Demo.cpp
@end_toggle
@add_toggle_java
This tutorial code's is shown lines below. You can also download it from
[here](https://github.com/opencv/opencv/tree/5.x/samples/java/tutorial_code/features2D/feature_description/SURFMatchingDemo.java)
@include samples/java/tutorial_code/features2D/feature_description/SURFMatchingDemo.java
[here](https://github.com/opencv/opencv/tree/5.x/samples/java/tutorial_code/features/feature_description/SURFMatchingDemo.java)
@include samples/java/tutorial_code/features/feature_description/SURFMatchingDemo.java
@end_toggle
@add_toggle_python
This tutorial code's is shown lines below. You can also download it from
[here](https://github.com/opencv/opencv/tree/5.x/samples/python/tutorial_code/features2D/feature_description/SURF_matching_Demo.py)
@include samples/python/tutorial_code/features2D/feature_description/SURF_matching_Demo.py
[here](https://github.com/opencv/opencv/tree/5.x/samples/python/tutorial_code/features/feature_description/SURF_matching_Demo.py)
@include samples/python/tutorial_code/features/feature_description/SURF_matching_Demo.py
@end_toggle
Explanation
@@ -32,20 +32,20 @@ Code
@add_toggle_cpp
This tutorial code's is shown lines below. You can also download it from
[here](https://github.com/opencv/opencv/tree/5.x/samples/cpp/tutorial_code/features2D/feature_detection/SURF_detection_Demo.cpp)
@include samples/cpp/tutorial_code/features2D/feature_detection/SURF_detection_Demo.cpp
[here](https://github.com/opencv/opencv/tree/5.x/samples/cpp/tutorial_code/features/feature_detection/SURF_detection_Demo.cpp)
@include samples/cpp/tutorial_code/features/feature_detection/SURF_detection_Demo.cpp
@end_toggle
@add_toggle_java
This tutorial code's is shown lines below. You can also download it from
[here](https://github.com/opencv/opencv/tree/5.x/samples/java/tutorial_code/features2D/feature_detection/SURFDetectionDemo.java)
@include samples/java/tutorial_code/features2D/feature_detection/SURFDetectionDemo.java
[here](https://github.com/opencv/opencv/tree/5.x/samples/java/tutorial_code/features/feature_detection/SURFDetectionDemo.java)
@include samples/java/tutorial_code/features/feature_detection/SURFDetectionDemo.java
@end_toggle
@add_toggle_python
This tutorial code's is shown lines below. You can also download it from
[here](https://github.com/opencv/opencv/tree/5.x/samples/python/tutorial_code/features2D/feature_detection/SURF_detection_Demo.py)
@include samples/python/tutorial_code/features2D/feature_detection/SURF_detection_Demo.py
[here](https://github.com/opencv/opencv/tree/5.x/samples/python/tutorial_code/features/feature_detection/SURF_detection_Demo.py)
@include samples/python/tutorial_code/features/feature_detection/SURF_detection_Demo.py
@end_toggle
Explanation
@@ -55,20 +55,20 @@ Code
@add_toggle_cpp
This tutorial code's is shown lines below. You can also download it from
[here](https://github.com/opencv/opencv/tree/5.x/samples/cpp/tutorial_code/features2D/feature_flann_matcher/SURF_FLANN_matching_Demo.cpp)
@include samples/cpp/tutorial_code/features2D/feature_flann_matcher/SURF_FLANN_matching_Demo.cpp
[here](https://github.com/opencv/opencv/tree/5.x/samples/cpp/tutorial_code/features/feature_flann_matcher/SURF_FLANN_matching_Demo.cpp)
@include samples/cpp/tutorial_code/features/feature_flann_matcher/SURF_FLANN_matching_Demo.cpp
@end_toggle
@add_toggle_java
This tutorial code's is shown lines below. You can also download it from
[here](https://github.com/opencv/opencv/tree/5.x/samples/java/tutorial_code/features2D/feature_flann_matcher/SURFFLANNMatchingDemo.java)
@include samples/java/tutorial_code/features2D/feature_flann_matcher/SURFFLANNMatchingDemo.java
[here](https://github.com/opencv/opencv/tree/5.x/samples/java/tutorial_code/features/feature_flann_matcher/SURFFLANNMatchingDemo.java)
@include samples/java/tutorial_code/features/feature_flann_matcher/SURFFLANNMatchingDemo.java
@end_toggle
@add_toggle_python
This tutorial code's is shown lines below. You can also download it from
[here](https://github.com/opencv/opencv/tree/5.x/samples/python/tutorial_code/features2D/feature_flann_matcher/SURF_FLANN_matching_Demo.py)
@include samples/python/tutorial_code/features2D/feature_flann_matcher/SURF_FLANN_matching_Demo.py
[here](https://github.com/opencv/opencv/tree/5.x/samples/python/tutorial_code/features/feature_flann_matcher/SURF_FLANN_matching_Demo.py)
@include samples/python/tutorial_code/features/feature_flann_matcher/SURF_FLANN_matching_Demo.py
@end_toggle
Explanation
@@ -1,4 +1,4 @@
Features2D + Homography to find a known object {#tutorial_feature_homography}
Features + Homography to find a known object {#tutorial_feature_homography}
==============================================
@tableofcontents
@@ -30,20 +30,20 @@ Code
@add_toggle_cpp
This tutorial code's is shown lines below. You can also download it from
[here](https://github.com/opencv/opencv/tree/5.x/samples/cpp/tutorial_code/features2D/feature_homography/SURF_FLANN_matching_homography_Demo.cpp)
@include samples/cpp/tutorial_code/features2D/feature_homography/SURF_FLANN_matching_homography_Demo.cpp
[here](https://github.com/opencv/opencv/tree/5.x/samples/cpp/tutorial_code/features/feature_homography/SURF_FLANN_matching_homography_Demo.cpp)
@include samples/cpp/tutorial_code/features/feature_homography/SURF_FLANN_matching_homography_Demo.cpp
@end_toggle
@add_toggle_java
This tutorial code's is shown lines below. You can also download it from
[here](https://github.com/opencv/opencv/tree/5.x/samples/java/tutorial_code/features2D/feature_homography/SURFFLANNMatchingHomographyDemo.java)
@include samples/java/tutorial_code/features2D/feature_homography/SURFFLANNMatchingHomographyDemo.java
[here](https://github.com/opencv/opencv/tree/5.x/samples/java/tutorial_code/features/feature_homography/SURFFLANNMatchingHomographyDemo.java)
@include samples/java/tutorial_code/features/feature_homography/SURFFLANNMatchingHomographyDemo.java
@end_toggle
@add_toggle_python
This tutorial code's is shown lines below. You can also download it from
[here](https://github.com/opencv/opencv/tree/5.x/samples/python/tutorial_code/features2D/feature_homography/SURF_FLANN_matching_homography_Demo.py)
@include samples/python/tutorial_code/features2D/feature_homography/SURF_FLANN_matching_homography_Demo.py
[here](https://github.com/opencv/opencv/tree/5.x/samples/python/tutorial_code/features/feature_homography/SURF_FLANN_matching_homography_Demo.py)
@include samples/python/tutorial_code/features/feature_homography/SURF_FLANN_matching_homography_Demo.py
@end_toggle
Explanation
@@ -22,9 +22,9 @@ For detailed explanations about the theory, please refer to a computer vision co
* Deeper understanding of the homography decomposition for vision-based control, Ezio Malis, Manuel Vargas, @cite Malis2007 (open access [here](https://hal.inria.fr/inria-00174036))
* Pose Estimation for Augmented Reality: A Hands-On Survey, Eric Marchand, Hideaki Uchiyama, Fabien Spindler, @cite Marchand16 (open access [here](https://hal.inria.fr/hal-01246370))
The tutorial code can be found here [C++](https://github.com/opencv/opencv/tree/5.x/samples/cpp/tutorial_code/features2D/Homography),
[Python](https://github.com/opencv/opencv/tree/5.x/samples/python/tutorial_code/features2D/Homography),
[Java](https://github.com/opencv/opencv/tree/5.x/samples/java/tutorial_code/features2D/Homography).
The tutorial code can be found here [C++](https://github.com/opencv/opencv/tree/5.x/samples/cpp/tutorial_code/features/Homography),
[Python](https://github.com/opencv/opencv/tree/5.x/samples/python/tutorial_code/features/Homography),
[Java](https://github.com/opencv/opencv/tree/5.x/samples/java/tutorial_code/features/Homography).
The images used in this tutorial can be found [here](https://github.com/opencv/opencv/tree/5.x/samples/data) (`left*.jpg`).
Basic theory {#tutorial_homography_Basic_theory}
@@ -188,11 +188,11 @@ The first step consists to detect the chessboard corners in the source and desir
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/Homography/perspective_correction.py find-corners
@snippet samples/python/tutorial_code/features/Homography/perspective_correction.py find-corners
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/Homography/PerspectiveCorrection.java find-corners
@snippet samples/java/tutorial_code/features/Homography/PerspectiveCorrection.java find-corners
@end_toggle
The homography is estimated easily with:
@@ -202,11 +202,11 @@ The homography is estimated easily with:
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/Homography/perspective_correction.py estimate-homography
@snippet samples/python/tutorial_code/features/Homography/perspective_correction.py estimate-homography
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/Homography/PerspectiveCorrection.java estimate-homography
@snippet samples/java/tutorial_code/features/Homography/PerspectiveCorrection.java estimate-homography
@end_toggle
To warp the source chessboard view into the desired chessboard view, we use @ref cv::warpPerspective
@@ -216,11 +216,11 @@ To warp the source chessboard view into the desired chessboard view, we use @ref
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/Homography/perspective_correction.py warp-chessboard
@snippet samples/python/tutorial_code/features/Homography/perspective_correction.py warp-chessboard
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/Homography/PerspectiveCorrection.java warp-chessboard
@snippet samples/java/tutorial_code/features/Homography/PerspectiveCorrection.java warp-chessboard
@end_toggle
The result image is:
@@ -234,11 +234,11 @@ To compute the coordinates of the source corners transformed by the homography:
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/Homography/perspective_correction.py compute-transformed-corners
@snippet samples/python/tutorial_code/features/Homography/perspective_correction.py compute-transformed-corners
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/Homography/PerspectiveCorrection.java compute-transformed-corners
@snippet samples/java/tutorial_code/features/Homography/PerspectiveCorrection.java compute-transformed-corners
@end_toggle
To check the correctness of the calculation, the matching lines are displayed:
@@ -564,11 +564,11 @@ With the known associated camera poses and the intrinsic parameters, the relativ
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/Homography/panorama_stitching_rotating_camera.py extract-rotation
@snippet samples/python/tutorial_code/features/Homography/panorama_stitching_rotating_camera.py extract-rotation
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/Homography/PanoramaStitchingRotatingCamera.java extract-rotation
@snippet samples/java/tutorial_code/features/Homography/PanoramaStitchingRotatingCamera.java extract-rotation
@end_toggle
@add_toggle_cpp
@@ -576,11 +576,11 @@ With the known associated camera poses and the intrinsic parameters, the relativ
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/Homography/panorama_stitching_rotating_camera.py compute-rotation-displacement
@snippet samples/python/tutorial_code/features/Homography/panorama_stitching_rotating_camera.py compute-rotation-displacement
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/Homography/PanoramaStitchingRotatingCamera.java compute-rotation-displacement
@snippet samples/java/tutorial_code/features/Homography/PanoramaStitchingRotatingCamera.java compute-rotation-displacement
@end_toggle
Here, the second image will be stitched with respect to the first image. The homography can be calculated using the formula above:
@@ -590,11 +590,11 @@ Here, the second image will be stitched with respect to the first image. The hom
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/Homography/panorama_stitching_rotating_camera.py compute-homography
@snippet samples/python/tutorial_code/features/Homography/panorama_stitching_rotating_camera.py compute-homography
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/Homography/PanoramaStitchingRotatingCamera.java compute-homography
@snippet samples/java/tutorial_code/features/Homography/PanoramaStitchingRotatingCamera.java compute-homography
@end_toggle
The stitching is made simply with:
@@ -604,11 +604,11 @@ The stitching is made simply with:
@end_toggle
@add_toggle_python
@snippet samples/python/tutorial_code/features2D/Homography/panorama_stitching_rotating_camera.py stitch
@snippet samples/python/tutorial_code/features/Homography/panorama_stitching_rotating_camera.py stitch
@end_toggle
@add_toggle_java
@snippet samples/java/tutorial_code/features2D/Homography/PanoramaStitchingRotatingCamera.java stitch
@snippet samples/java/tutorial_code/features/Homography/PanoramaStitchingRotatingCamera.java stitch
@end_toggle
The resulting image is:

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

@@ -1,4 +1,4 @@
2D Features framework (feature2d module) {#tutorial_table_of_content_features2d}
Features framework (features module) {#tutorial_table_of_content_features}
=========================================
- @subpage tutorial_harris_detector
@@ -151,7 +151,7 @@ cmake -DBUILD_LIST=calib3d,videoio,ts ../opencv
In this example we requested 3 modules and configuration script has determined all dependencies automatically:
```
-- OpenCV modules:
-- To be built: calib3d core features2d flann highgui imgcodecs imgproc ts videoio
-- To be built: calib3d core features flann highgui imgcodecs imgproc ts videoio
```
@@ -111,7 +111,7 @@ Making a project
on the list below are enough (for simple applications) . In my case, I am putting all of them
since I plan to use the whole bunch:
opencv_core opencv_imgproc opencv_imgcodecs opencv_highgui opencv_ml opencv_videoio opencv_video opencv_features2d
opencv_core opencv_imgproc opencv_imgcodecs opencv_highgui opencv_videoio opencv_video opencv_features
opencv_3d opencv_objdetect opencv_flann
![](images/a10.png)
@@ -123,7 +123,7 @@ Making a project
@endcode
My output (in case you want to check) was:
@code{.bash}
-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_videoio -lopencv_imgcodecs -lopencv_flann
-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_video -lopencv_features -lopencv_3d -lopencv_calib -lopencv_stereo -lopencv_objdetect -lopencv_videoio -lopencv_imgcodecs -lopencv_flann
@endcode
Now you are done. Click **OK**
+1 -1
View File
@@ -7,7 +7,7 @@ OpenCV Tutorials {#tutorial_root}
- @subpage tutorial_table_of_content_app - application utils (GUI, image/video input/output)
- @subpage tutorial_table_of_content_calib3d - extract 3D world information from 2D images
- @subpage tutorial_table_of_content_objdetect - INSERT OBJDETECT MODULE INFO
- @subpage tutorial_table_of_content_features2d - feature detectors, descriptors and matching framework
- @subpage tutorial_table_of_content_features - feature detectors, descriptors and matching framework
- @subpage tutorial_table_of_content_dnn - infer neural networks using built-in _dnn_ module
- @subpage tutorial_table_of_content_gapi - graph-based approach to computer vision algorithms building
- @subpage tutorial_table_of_content_other - other modules (stitching, video, photo)