menuconfig BR2_PACKAGE_OPENCV4_CONTRIB
	bool "opencv4-contrib"
	depends on BR2_PACKAGE_OPENCV4
	help
	  OpenCV (Open Source Computer Vision) is a library of
	  programming functions for real time computer vision.

	  http://opencv.org/

if BR2_PACKAGE_OPENCV4_CONTRIB

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_ALPHAMAT
	bool "alphamat"
	help
	  Computer Vision based Alpha Matting -- Given an input image
	  and a trimap, generate an alpha matte.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_ARUCO
	bool "aruco"
	select BR2_PACKAGE_OPENCV4_LIB_CALIB3D
	help
	  ArUco and ChArUco Markers -- Augmented reality ArUco marker
	  and "ChARUco" markers where ArUco markers embedded inside the
	  white areas of the checker board.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_BARCODE
	bool "barcode"
	help
	  Barcode detecting and decoding methods.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_BGSEGM
	bool "bgsegm"
	select BR2_PACKAGE_OPENCV4_LIB_VIDEO
	help
	  Background segmentation algorithm combining statistical
	  background image estimation and per-pixel Bayesian
	  segmentation.

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

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_CCALIB
	bool "ccalib"
	select BR2_PACKAGE_OPENCV4_LIB_HIGHGUI
	help
	  Custom Calibration -- Patterns for 3D reconstruction,
	  omnidirectional camera calibration, random pattern calibration
	  and multi-camera calibration.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_CNN_3DOBJ
	bool "cnn_3dobj"
	help
	  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.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_CVV
	bool "cvv"
	help
	  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.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_DATASETS
	bool "datasets"
	help
	  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.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_DNN_OBJDETECT
	bool "dnn_objdetect"
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # opencv4 dnn
	depends on !BR2_TOOLCHAIN_USES_UCLIBC # opencv4 dnn
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # opencv4 dnn
	select BR2_PACKAGE_OPENCV4_LIB_DNN
	help
	  Object Detection using CNNs -- Implements compact CNN Model
	  for object detection. Trained using Caffe but uses
	  opencv_dnn module.

comment "dnn_objdetect needs a glibc or musl toolchain w/ gcc >= 8"
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_USES_UCLIBC || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_8

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_DNN_SUPERRES
	bool "dnn_superres"
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # opencv4 dnn
	depends on !BR2_TOOLCHAIN_USES_UCLIBC # opencv4 dnn
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # opencv4 dnn
	select BR2_PACKAGE_OPENCV4_LIB_DNN
	help
	  Superresolution using CNNs -- Contains four trained
	  convolutional neural networks to upscale images.

comment "dnn_superres needs a glibc or musl toolchain w/ gcc >= 8"
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_USES_UCLIBC || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_8

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_DNNS_EASILY_FOOLED
	bool "dnns_easily_fooled"
	help
	  Subvert DNNs -- This code can use the activations in a
	  network to fool the networks into recognizing something else.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_DPM
	bool "dpm"
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # opencv4 objdetect
	depends on !BR2_TOOLCHAIN_USES_UCLIBC # opencv4 objdetect
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # opencv4 objdetect
	select BR2_PACKAGE_OPENCV4_LIB_OBJDETECT
	help
	  Deformable Part Model -- Felzenszwalb's Cascade with
	  deformable parts object recognition code.

comment "dpm needs a glibc or musl toolchain w/ gcc >= 8"
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_USES_UCLIBC || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_8

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_FACE
	bool "face"
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # opencv4 objdetect
	depends on !BR2_TOOLCHAIN_USES_UCLIBC # opencv4 objdetect
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # opencv4 objdetect
	select BR2_PACKAGE_OPENCV4_LIB_OBJDETECT
	help
	  Face Recognition -- Face recognition techniques: Eigen, Fisher
	  and Local Binary Pattern Histograms LBPH methods.

comment "face needs a glibc or musl toolchain w/ gcc >= 8"
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_USES_UCLIBC || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_8

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_FREETYPE
	bool "freetype"
	help
	  Drawing text using freetype and harfbuzz.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_FUZZY
	bool "fuzzy"
	help
	  Fuzzy Logic in Vision -- Fuzzy logic image transform and
	  inverse; Fuzzy image processing.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_HDF
	bool "hdf"
	help
	  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.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_HFS
	bool "hfs"
	help
	  Hierarchical Feature Selection for Efficient Image
	  Segmentation -- This module contains an efficient
	  algorithm to segment an image.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_IMG_HASH
	bool "img_hash"
	help
	  This module contains algorithms to extract hash of an
	  image allowing to efficiently estimate similarity between
	  images.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_INTENSITY_TRANSFORM
	bool "intensity_transform"
	help
	  The module brings implementations of intensity transformation
	  algorithms to adjust image contrast.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_JULIA
	bool "julia"
	help
	  Julia language wrappers with samples and tests.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_LINE_DESCRIPTOR
	bool "line_descriptor"
	help
	  Line Segment Extract and Match -- Methods of extracting,
	  describing and matching line segments using binary
	  descriptors.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_MATLAB
	bool "matlab"
	help
	  Matlab Interface -- OpenCV Matlab Mex wrapper code generator
	  for certain opencv core modules.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_MCC
	bool "mcc"
	help
	  Macbeth Color Chart detector -- Find and return color patch
	  location in MacBeth color calibration charts.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_OPTFLOW
	bool "optflow"
	select BR2_PACKAGE_OPENCV4_LIB_VIDEO
	help
	  Optical Flow -- Algorithms for running and evaluating
	  deepflow, simpleflow, sparsetodenseflow and motion
	  templates (silhouette flow).

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_OVIS
	bool "ovis"
	help
	  OGRE 3D Visualiser -- allows you to render 3D data using
	  the OGRE 3D engine.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_PHASE_UNWRAPPING
	bool "phase_unwrapping"
	help
	  Quality-guided phase unwrapping.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_PLOT
	bool "plot"
	help
	  Plotting -- The plot module allows you to easily plot data
	  in 1D or 2D.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_QUALITY
	bool "quality"
	help
	  Image Quality Analysis (IQA) API.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_RAPID
	bool "rapid"
	help
	  Silhouette based 3D object tracking.

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

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_RGBD
	bool "rgbd"
	help
	  RGB-Depth Processing module -- Linemod 3D object recognition;
	  Fast surface normals and 3D plane finding. 3D visual odometry.
	  3d reconstruction using KinectFusion.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_SALIENCY
	bool "saliency"
	help
	  Saliency API -- Where humans would look in a scene. Has
	  routines for static, motion and "objectness" saliency.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_SFM
	bool "sfm"
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_6 # glog
	select BR2_PACKAGE_OPENCV4_LIB_IMGPROC
	select BR2_PACKAGE_OPENCV4_LIB_IMGCODECS
	select BR2_PACKAGE_EIGEN
	select BR2_PACKAGE_GLOG
	select BR2_PACKAGE_GFLAGS
	help
	  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.

comment "sfm needs a toolchain w/ gcc >= 6"
	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_6

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_SHAPE
	bool "shape"
	help
	  Shape Distance and Matching

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_STEREO
	bool "stereo"
	select BR2_PACKAGE_OPENCV4_CONTRIB_LIB_TRACKING
	help
	  Stereo Correspondence -- Stereo matching done with different
	  descriptors: Census / CS-Census / MCT / BRIEF / MV and dense
	  stereo correspondence using Quasi Dense Stereo method.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_STRUCTURED_LIGHT
	bool "structured_light"
	help
	  Structured Light Use -- How to generate and project gray code
	  patterns and use them to find dense depth in a scene.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_SUPERRES
	bool "superres"
	select BR2_PACKAGE_OPENCV4_LIB_VIDEO
	help
	  Super Resolution

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_SURFACE_MATCHING
	bool "surface_matching"
	help
	  Point Pair Features -- Implements 3d object detection and
	  localization using multimodal point pair features.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_TEXT
	bool "text"
	help
	  Scene Text Detection and Recognition -- This module contains
	  algorithms to perform text detection, words segmentation and
	  text recognition in a visual scene.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_TRACKING
	bool "tracking"
	select BR2_PACKAGE_OPENCV4_LIB_VIDEO
	help
	  Vision Based Object Tracking -- Use and/or evaluate different
	  visual object tracking techniques.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_VIDEOSTAB
	bool "videostab"
	select BR2_PACKAGE_OPENCV4_LIB_VIDEO
	select BR2_PACKAGE_OPENCV4_LIB_PHOTO
	help
	  Video Stabilization

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_VIZ
	bool "viz"
	help
	  3D Visualizer

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_WECHAT_QRCODE
	bool "wechat_qrcode"
	help
	  WeChat QR code detector for detecting and parsing QR code.

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

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_XIMGPROC
	bool "ximgproc"
	help
	  Extended Image Processing -- Structured Forests / Domain
	  Transform Filter / Guided Filter / Adaptive Manifold Filter
	  / Joint Bilateral Filter / Superpixels / Ridge Detection
	  Filter.

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_XOBJDETECT
	bool "xobjdetect"
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # opencv4 objdetect
	depends on !BR2_TOOLCHAIN_USES_UCLIBC # opencv4 objdetect
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # opencv4 objdetect
	select BR2_PACKAGE_OPENCV4_LIB_OBJDETECT
	help
	  Boosted 2D Object Detection -- Uses a Waldboost cascade and
	  local binary patterns computed as integral features for 2D
	  object detection.

comment "xobjdetect needs a glibc or musl toolchain w/ gcc >= 8"
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_USES_UCLIBC || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_8

config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_XPHOTO
	bool "xphoto"
	select BR2_PACKAGE_OPENCV4_LIB_PHOTO
	help
	  Extra Computational Photography -- Additional photo processing
	  algorithms: Color balance / Denoising / Inpainting.

endif
