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: CV1394 CVFFMPEG CVVTK 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 Extra 2D Features Framework from OpenCV's "extra modules" section is disabled by default as it entails additional downloading during the configure stage of building. It may be enabled by setting the XF2D environment variable when building e.g. XF2D=yes sh ./opencv.SlackBuild Usually, this also applies to the Deep Neural Network (DNN) module however it is no longer possible to complete a build without without it and therefore remains enabled by default. 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" e.g. 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 documentation.