Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated version of main README #3872

Open
wants to merge 8 commits into
base: 4.x
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 13 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,25 +15,26 @@ provides production-quality support for this module.

You can build OpenCV, so it will include the modules from this repository. Contrib modules are under constant development and it is recommended to use them alongside the master branch or latest releases of OpenCV.

Here is the CMake command for you:
>***Here is the CMake command line for you:***

```
$ cd <opencv_build_directory>
$ cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>
$ make -j5
```bash
cd <opencv_build_directory>
cmake -D OPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not a mistake.

make -j5
```

As the result, OpenCV will be built in the `<opencv_build_directory>` with all
modules from `opencv_contrib` repository. If you don't want all of the modules,
use CMake's `BUILD_opencv_*` options. Like in this example:
use CMake's `BUILD_opencv_*` option where * is the given name of a module as <reponame> in this example:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reponame

This is not accurate. This just confuses user.
<module> should be used instead.

Ref: https://docs.opencv.org/4.x/db/d05/tutorial_config_reference.html#tutorial_config_reference_general_modules


```
$ cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules -DBUILD_opencv_legacy=OFF <opencv_source_directory>
```bash
cmake -D OPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules -D BUILD_opencv_<reponame>=OFF <opencv_source_directory>
```

If you also want to build the samples from the "samples" folder of each module, also include the "-DBUILD_EXAMPLES=ON" option.
If you also want to build the samples from the "samples" folder of each module, also include the `-D BUILD_EXAMPLES=ON` option.


If you prefer using the GUI version of CMake (cmake-gui), then, you can add `opencv_contrib` modules within `opencv` core by doing the following:
>***If you prefer using the GUI version of CMake (cmake-gui), then, you can add `opencv_contrib` modules within `opencv` core by doing the following:***

1. Start cmake-gui.

Expand All @@ -50,6 +51,8 @@ If you prefer using the GUI version of CMake (cmake-gui), then, you can add `ope
7. Build the `opencv` core with the method you chose (make and make install if you chose Unix makefile at step 6).

8. To run, linker flags to contrib modules will need to be added to use them in your code/IDE. For example to use the aruco module, "-lopencv_aruco" flag will be added.

------

### Update the repository documentation

Expand Down
70 changes: 35 additions & 35 deletions modules/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,102 +4,102 @@ An overview of the opencv_contrib modules
This list gives an overview of all modules available inside the contrib repository.
To turn off building one of these module repositories, set the names in bold below to <reponame>

```
$ cmake -D OPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules -D BUILD_opencv_<reponame>=OFF <opencv_source_directory>
```bash
cmake -D OPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules -D BUILD_opencv_<reponame>=OFF <opencv_source_directory>
```

- **alphamat**: Computer Vision based Alpha Matting -- Given an input image and a trimap, generate an alpha matte.
- **alphamat**: Computer Vision based Alpha Matting Given an input image and a trimap, generate an alpha matte.

- **aruco**: ArUco and ChArUco Markers -- Augmented reality ArUco marker and "ChARUco" markers where ArUco markers embedded inside the white areas of the checker board.
- **aruco**: ArUco and ChArUco Markers Augmented reality ArUco marker and "ChARUco" markers where ArUco markers embedded inside the white areas of the checker board.

- **bgsegm**: Background segmentation algorithm combining statistical background image estimation and per-pixel Bayesian segmentation.

- **bioinspired**: Biological Vision -- Biologically inspired vision model: minimize noise and luminance variance, transient event segmentation, high dynamic range tone mapping methods.
- **bioinspired**: Biological Vision Biologically inspired vision model: minimize noise and luminance variance, transient event segmentation, high dynamic range tone mapping methods.

- **ccalib**: Custom Calibration -- Patterns for 3D reconstruction, omnidirectional camera calibration, random pattern calibration and multi-camera calibration.
- **ccalib**: Custom Calibration Patterns for 3D reconstruction, omnidirectional camera calibration, random pattern calibration and multi-camera calibration.

- **cnn_3dobj**: Deep Object Recognition and Pose -- Uses Caffe Deep Neural Net library to build, train and test a CNN model of visual object recognition and pose.
- **cnn_3dobj**: Deep Object Recognition and Pose Uses Caffe Deep Neural Net library to build, train and test a CNN model of visual object recognition and pose.

- **cvv**: Computer Vision Debugger -- Simple code that you can add to your program that pops up a GUI allowing you to interactively and visually debug computer vision programs.
- **cvv**: Computer Vision Debugger Simple code that you can add to your program that pops up a GUI allowing you to interactively and visually debug computer vision programs.

- **datasets**: Datasets Reader -- Code for reading existing computer vision databases and samples of using the readers to train, test and run using that dataset's data.
- **datasets**: Datasets Reader Code for reading existing computer vision databases and samples of using the readers to train, test and run using that dataset's data.

- **dnn_objdetect**: Object Detection using CNNs -- Implements compact CNN Model for object detection. Trained using Caffe but uses opencv_dnn module.
- **dnn_objdetect**: Object Detection using CNNs Implements compact CNN Model for object detection. Trained using Caffe but uses opencv_dnn module.

- **dnn_superres**: Superresolution using CNNs -- Contains four trained convolutional neural networks to upscale images.
- **dnn_superres**: Superresolution using CNNs Contains four trained convolutional neural networks to upscale images.

- **dnns_easily_fooled**: Subvert DNNs -- This code can use the activations in a network to fool the networks into recognizing something else.
- **dnns_easily_fooled**: Subvert DNNs This code can use the activations in a network to fool the networks into recognizing something else.

- **dpm**: Deformable Part Model -- Felzenszwalb's Cascade with deformable parts object recognition code.
- **dpm**: Deformable Part Model Felzenszwalb's Cascade with deformable parts object recognition code.

- **face**: Face Recognition -- Face recognition techniques: Eigen, Fisher and Local Binary Pattern Histograms LBPH methods.
- **face**: Face Recognition Face recognition techniques: Eigen, Fisher and Local Binary Pattern Histograms LBPH methods.

- **freetype**: Drawing text using freetype and harfbuzz.

- **fuzzy**: Fuzzy Logic in Vision -- Fuzzy logic image transform and inverse; Fuzzy image processing.
- **fuzzy**: Fuzzy Logic in Vision Fuzzy logic image transform and inverse; Fuzzy image processing.

- **hdf**: Hierarchical Data Storage -- This module contains I/O routines for Hierarchical Data Format: https://en.m.wikipedia.org/wiki/Hierarchical_Data_Format meant to store large amounts of data.
- **hdf**: Hierarchical Data Storage This module contains I/O routines for [Hierarchical Data Format](https://en.m.wikipedia.org/wiki/Hierarchical_Data_Format) meant to store large amounts of data.

- **hfs**: Hierarchical Feature Selection for Efficient Image Segmentation -- This module contains an efficient algorithm to segment an image.
- **hfs**: Hierarchical Feature Selection for Efficient Image Segmentation This module contains an efficient algorithm to segment an image.

- **img_hash**: This module contains algorithms to extract hash of an image allowing to efficiently estimate similarity between images.

- **intensity_transform**: The module brings implementations of intensity transformation algorithms to adjust image contrast.

- **julia**: Julia language wrappers with samples and tests.

- **line_descriptor**: Line Segment Extract and Match -- Methods of extracting, describing and matching line segments using binary descriptors.
- **line_descriptor**: Line Segment Extract and Match Methods of extracting, describing and matching line segments using binary descriptors.

- **matlab**: Matlab Interface -- OpenCV Matlab Mex wrapper code generator for certain opencv core modules.
- **matlab**: Matlab Interface OpenCV Matlab Mex wrapper code generator for certain opencv core modules.

- **mcc**: Macbeth Color Chart detector -- Find and return color patch location in MacBeth color calibration charts.
- **mcc**: Macbeth Color Chart detector Find and return color patch location in MacBeth color calibration charts.

- **optflow**: Optical Flow -- Algorithms for running and evaluating deepflow, simpleflow, sparsetodenseflow and motion templates (silhouette flow).
- **optflow**: Optical Flow Algorithms for running and evaluating deepflow, simpleflow, sparsetodenseflow and motion templates (silhouette flow).

- **ovis**: OGRE 3D Visualiser -- allows you to render 3D data using the OGRE 3D engine.
- **ovis**: OGRE 3D Visualiser allows you to render 3D data using the OGRE 3D engine.

- **phase_unwrapping**: Quality-guided phase unwrapping.

- **plot**: Plotting -- The plot module allows you to easily plot data in 1D or 2D.
- **plot**: Plotting The plot module allows you to easily plot data in 1D or 2D.

- **quality**: Image Quality Analysis (IQA) API.

- **rapid**: Silhouette based 3D object tracking.

- **reg**: Image Registration -- Pixels based image registration for precise alignment. Follows the paper "Image Alignment and Stitching: A Tutorial", by Richard Szeliski.
- **reg**: Image Registration Pixels based image registration for precise alignment. Follows the paper "Image Alignment and Stitching: A Tutorial", by Richard Szeliski.

- **rgbd**: RGB-Depth Processing module -- Linemod 3D object recognition; Fast surface normals and 3D plane finding. 3D visual odometry. 3d reconstruction using KinectFusion.
- **rgbd**: RGB-Depth Processing module Linemod 3D object recognition; Fast surface normals and 3D plane finding. 3D visual odometry. 3d reconstruction using KinectFusion.

- **saliency**: Saliency API -- Where humans would look in a scene. Has routines for static, motion and "objectness" saliency.
- **saliency**: Saliency API Where humans would look in a scene. Has routines for static, motion and "objectness" saliency.

- **signal**: Signal processing algorithms

- **sfm**: Structure from Motion -- This module contains algorithms to perform 3d reconstruction from 2d images. The core of the module is a light version of Libmv.

- **shape**: Shape Distance and Matching

- **stereo**: Stereo Correspondence -- Stereo matching done with different descriptors: Census / CS-Census / MCT / BRIEF / MV and dense stereo correspondence using Quasi Dense Stereo method.
- **stereo**: Stereo Correspondence Stereo matching done with different descriptors: Census / CS-Census / MCT / BRIEF / MV and dense stereo correspondence using Quasi Dense Stereo method.

- **structured_light**: Structured Light Use -- How to generate and project gray code patterns and use them to find dense depth in a scene.
- **structured_light**: Structured Light Use How to generate and project gray code patterns and use them to find dense depth in a scene.

- **superres**: Super Resolution

- **surface_matching**: Point Pair Features -- Implements 3d object detection and localization using multimodal point pair features.
- **surface_matching**: Point Pair Features Implements 3d object detection and localization using multimodal point pair features.

- **text**: Scene Text Detection and Recognition -- This module contains algorithms to perform text detection, words segmentation and text recognition in a visual scene.
- **text**: Scene Text Detection and Recognition This module contains algorithms to perform text detection, words segmentation and text recognition in a visual scene.

- **tracking**: Vision Based Object Tracking -- Use and/or evaluate different visual object tracking techniques.
- **tracking**: Vision Based Object Tracking Use and/or evaluate different visual object tracking techniques.

- **videostab**: Video Stabilization

- **viz**: 3D Visualizer

- **wechat_qrcode**: WeChat QR code detector for detecting and parsing QR code.

- **xfeatures2d**: Features2D extra -- Extra 2D Features Framework containing experimental and non-free 2D feature detector/descriptor algorithms. SURF, BRIEF, Censure, Freak, LUCID, Daisy, Self-similar.
- **xfeatures2d**: Features2D extra Extra 2D Features Framework containing experimental and non-free 2D feature detector/descriptor algorithms. SURF, BRIEF, Censure, Freak, LUCID, Daisy, Self-similar.

- **ximgproc**: Extended Image Processing -- Structured Forests / Domain Transform Filter / Guided Filter / Adaptive Manifold Filter / Joint Bilateral Filter / Superpixels / Ridge Detection Filter.
- **ximgproc**: Extended Image Processing Structured Forests / Domain Transform Filter / Guided Filter / Adaptive Manifold Filter / Joint Bilateral Filter / Superpixels / Ridge Detection Filter.

- **xobjdetect**: Boosted 2D Object Detection -- Uses a Waldboost cascade and local binary patterns computed as integral features for 2D object detection.
- **xobjdetect**: Boosted 2D Object Detection Uses a Waldboost cascade and local binary patterns computed as integral features for 2D object detection.

- **xphoto**: Extra Computational Photography -- Additional photo processing algorithms: Color balance / Denoising / Inpainting.
- **xphoto**: Extra Computational Photography Additional photo processing algorithms: Color balance / Denoising / Inpainting.