path: root/libraries/opencv/README
blob: d2e02e42d986b5d0f227ea44d7a74b217a693507 (plain)
OpenCV (Open Source Computer Vision Library) is an open source
computer vision and machine learning software library.
OpenCV was built to provide a common infrastructure for
computer vision applications and to accelerate the use of
machine perception in commercial products.

This SlackBuild is incompatible with the opencv-legacy SlackBuild
so they should not be installed simultaneously.

OpenCV will incorporate features from a wide range of additional
software that may exist on the host system at build time. The more
of the relevant software packages that are available, the greater
the feature set available in the resulting OpenCV package. The
additional optional packages will mostly be autodetected and used
at build time without any user intervention. Packages that are
processed in this way include (by SBo package name):
    libdc1394 ffmpeg hdf5 VTK libwebp tesseract glog
    apache-ant numpy OpenBLAS openjdk8 (or openjdk or jdk)

In the unlikely situation that features from these packages are not
wanted despite already being installed on the host system,
incorporation of some of them into OpenCV may be suppressed by setting
the appropriate environment variable to "no" e.g.
    CVFFMPEG=no sh ./opencv.SlackBuild
Features that may be excluded in this manner are controlled by the
following environment variables:

At least one optional package is not autodetected, even though the
necessary prerequisite software may already have been installed. It
must therefore be explicitly enabled by setting the appropriate
environment variable:
    CVGDAL=yes ./opencv.SlackBuild
(to support SBo's gis/gdal)

Access to patented algorithms e.g.SIFT/SURF may be enabled by setting
the CVNONFREE environment variable:
    CVNONFREE=yes ./opencv.SlackBuild

Please note that some combinations of options may not be possible. In
particular, if both qt5 and VTK are installed on the host build system,
VTK support will be disabled unless it was built with qt5 support (which
is possible but not its default). Conversely, if VTK has been built with
qt5, it will be disabled in OpenCV unless it too is being built with qt5.

Since opencv version 4.1.1, Qt5 is the required widget framework
(Qt4 is insufficient). Therefore qt5 is now a required dependency,
although this may be bypassed (with reduced functionality) by setting
the CVQT5 environment variable e.g.
    CVQT5=no sh ./opencv.SlackBuild

This package is configured to generate python bindings for Python 3 (via
dependency on the numpy3 package). If bindings for Python 2 are required,
the numpy package is required when building opencv.

The Deep Neural Network module and Extra 2D Features Framework from
OpenCV's "extra modules" section are disabled by default. They may be
enabled by setting the DNN and/or XF2D environment variables as required
    DNN=yes sh ./opencv.SlackBuild
Enabling either of these modules results in additional downloading during
the configure stage of building.

The face recognition module is enabled by default. This incurs an additional
download of the face_landmark_model.dat file (~70M) from OpenCV's github
repository during configuration. If this is not desired, the face module
can be disabled by setting OCV_FACE environment variable  to "no"
    OCV_FACE=no sh ./opencv.SlackBuild

Documentation is generated by the SlackBuild unless it is switched off
by setting the CVDOCS environment variable i.e.
    CVDOCS=no sh ./opencv.SlackBuild
Enabling the documentation results in additional downloading of example data
during the configure stage of building.

The graphviz package is an optional dependency for enhanced