OpenCV can be divided in modules, which group related functionalities. Each module contains several classes. The main modules (which many of the others use as building blocks), are Core, imgProc, .... They provide the 'primitive' objects and algorithms on top of which more complex algorithms are build.
Some of these modules that are platform dependant: for instance, Highgui and Videocapture are for desktop builds, android JavaCameraView for Android, and others.
There is another classification of modules: main modules (those that are in the main repository) and contrib modules. Contrib modules are those that for several reasons (not mature enough yet, or other...) are not part of the main repository, but most of them are also actively maintained, so they are suitable for development.
There's also a subgroup of the contrib modules: the non-free modules (usually their name starts with 'x'), which adhere to a totally different license if you want to work with them.
Releases, builds and customizations:
- For each OpenCV official release, 2 branches are updated: the 4.x branch and 3.x branch. Many of the new features and bug-fixes are propagated to both branches, so for this part, they go in parallel. One of the biggest difference between them is that since 4.5 version, they are under a different license.
- The current jOpenCV library 'follows' the OpenCV 3.x releases, so the 3.x license applies as stated later in this post.
- Each OpenCV official release build includes the main repository modules for the specific platform. They do not include contrib modules nor some 3rd party support options (such as ffmpeg)
- The included modules are: ( related documentation: https://docs.opencv.org/3.4.4/javadoc/index.html)
- Calib3d: useful for camera calibration
- Core: basic and derived Mat classes and a lot of useful methods
- DNN: deep Neural Networks. OpenCV provides ways to read and perform inference using several networks/modes: Tensorflow, Yolo, ...
- features2d
- highgui : for desktop builds. This module deals with windows showing images from Mats,
- imgcodecs
- Imgproc: classes for image processing
- ml : Machine Learning. Try/use several ML classes. There will be a nice example using classes from this module.
- objdetect
- photo: many photo related classes
- utils: misc.utils
- video:
- videoio: Provides de VideoCapture class, which is used to capture streams from files, videoCameras, internet URLs,...