Преглед изворни кода

package/opencv4: add support for opencv4_contrib repository for extra modules

This adds a separate opencv4_contrib package to manage
downloading/unpacking that repository. These extra modules
are useful for a lot of applications, but not necessary
for minimal installs, so they are all given dedicated Kconfig
options

It's important to note that the opencv4-contrib package
downloads extra source that is compiled as a part of
the opencv4 package. This is why it is a dependency
of opencv4, and not the other way around

Signed-off-by: Woodrow Douglass <wdouglass@carnegierobotics.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Woodrow Douglass пре 2 година
родитељ
комит
4f4f2877fc

+ 1 - 0
package/Config.in

@@ -1593,6 +1593,7 @@ menu "Graphics"
 	source "package/opencl-clhpp/Config.in"
 	source "package/opencl-clhpp/Config.in"
 	source "package/opencv3/Config.in"
 	source "package/opencv3/Config.in"
 	source "package/opencv4/Config.in"
 	source "package/opencv4/Config.in"
+	source "package/opencv4-contrib/Config.in"
 	source "package/opengl/Config.in"
 	source "package/opengl/Config.in"
 	source "package/openjpeg/Config.in"
 	source "package/openjpeg/Config.in"
 	source "package/pango/Config.in"
 	source "package/pango/Config.in"

+ 313 - 0
package/opencv4-contrib/Config.in

@@ -0,0 +1,313 @@
+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"
+	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"
+	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"
+	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"
+	help
+	  Object Detection using CNNs -- Implements compact CNN Model
+	  for object detection. Trained using Caffe but uses
+	  opencv_dnn module.
+
+config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_DNN_SUPERRES
+	bool "dnn_superres"
+	help
+	  Superresolution using CNNs -- Contains four trained
+	  convolutional neural networks to upscale images.
+
+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"
+	help
+	  Deformable Part Model -- Felzenszwalb's Cascade with
+	  deformable parts object recognition code.
+
+config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_FACE
+	bool "face"
+	help
+	  Face Recognition -- Face recognition techniques: Eigen, Fisher
+	  and Local Binary Pattern Histograms LBPH methods.
+
+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"
+	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"
+	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.
+
+config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_SHAPE
+	bool "shape"
+	help
+	  Shape Distance and Matching
+
+config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_STEREO
+	bool "stereo"
+	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"
+	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"
+	help
+	  Vision Based Object Tracking -- Use and/or evaluate different
+	  visual object tracking techniques.
+
+config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_VIDEOSTAB
+	bool "videostab"
+	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"
+	help
+	  Boosted 2D Object Detection -- Uses a Waldboost cascade and
+	  local binary patterns computed as integral features for 2D
+	  object detection.
+
+config BR2_PACKAGE_OPENCV4_CONTRIB_LIB_XPHOTO
+	bool "xphoto"
+	help
+	  Extra Computational Photography -- Additional photo processing
+	  algorithms: Color balance / Denoising / Inpainting.
+
+endif

+ 3 - 0
package/opencv4-contrib/opencv4-contrib.hash

@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  1777d5fd2b59029cf537e5fd6f8aa68d707075822f90bde683fcde086f85f7a7  opencv4-contrib-4.6.0.tar.gz
+sha256  cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30  LICENSE

+ 16 - 0
package/opencv4-contrib/opencv4-contrib.mk

@@ -0,0 +1,16 @@
+################################################################################
+#
+# opencv4-contrib
+#
+################################################################################
+
+OPENCV4_CONTRIB_VERSION = 4.6.0
+OPENCV4_CONTRIB_SITE = $(call github,opencv,opencv_contrib,$(OPENCV4_CONTRIB_VERSION))
+OPENCV4_CONTRIB_INSTALL_TARGET = FALSE
+OPENCV4_CONTRIB_LICENSE = Apache-2.0
+OPENCV4_CONTRIB_LICENSE_FILES = LICENSE
+
+# Modules provided by opencv4-contrib are built as part of the opencv4 package,
+# so opencv4-contrib only serves for downloading the source code.
+
+$(eval $(generic-package))

+ 57 - 5
package/opencv4/opencv4.mk

@@ -82,11 +82,6 @@ OPENCV4_CONF_OPTS += \
 #   - viz: missing VTK dependency
 #   - viz: missing VTK dependency
 #   - world: all-in-one module
 #   - world: all-in-one module
 #
 #
-# * Contrib modules from [1] are disabled:
-#   - opencv_contrib package is not available in Buildroot;
-#   - OPENCV_EXTRA_MODULES_PATH is not set.
-#
-# [1] https://github.com/Itseez/opencv_contrib
 OPENCV4_CONF_OPTS += \
 OPENCV4_CONF_OPTS += \
 	-DBUILD_opencv_androidcamera=OFF \
 	-DBUILD_opencv_androidcamera=OFF \
 	-DBUILD_opencv_apps=OFF \
 	-DBUILD_opencv_apps=OFF \
@@ -232,6 +227,63 @@ OPENCV4_CONF_OPTS += \
 
 
 OPENCV4_DEPENDENCIES += host-pkgconf zlib
 OPENCV4_DEPENDENCIES += host-pkgconf zlib
 
 
+ifeq ($(BR2_PACKAGE_OPENCV4_CONTRIB),y)
+# OPENCV4 depends on OPENCV4_CONTRIB, and not the other way around.
+# The modules in OPENCV4_CONTRIB get built as part of the build
+# process for OPENCV4, so the source needs to be unpacked already
+OPENCV4_DEPENDENCIES += opencv4-contrib
+OPENCV4_CONF_OPTS += \
+	-DOPENCV_EXTRA_MODULES_PATH=$(OPENCV4_CONTRIB_DIR)/modules \
+	-DBUILD_opencv_alphamat=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_ALPHAMAT),ON,OFF) \
+	-DBUILD_opencv_aruco=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_ARUCO),ON,OFF) \
+	-DBUILD_opencv_barcode=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_BARCODE),ON,OFF) \
+	-DBUILD_opencv_bgsegm=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_BGSEGM),ON,OFF) \
+	-DBUILD_opencv_bioinspired=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_BIOINSPIRED),ON,OFF) \
+	-DBUILD_opencv_ccalib=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_CCALIB),ON,OFF) \
+	-DBUILD_opencv_cnn_3dobj=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_CNN_3DOBJ),ON,OFF) \
+	-DBUILD_opencv_cvv=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_CVV),ON,OFF) \
+	-DBUILD_opencv_datasets=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_DATASETS),ON,OFF) \
+	-DBUILD_opencv_dnn_objdetect=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_DNN_OBJDETECT),ON,OFF) \
+	-DBUILD_opencv_dnn_superres=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_DNN_SUPERRES),ON,OFF) \
+	-DBUILD_opencv_dnns_easily_fooled=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_DNNS_EASILY_FOOLED),ON,OFF) \
+	-DBUILD_opencv_dpm=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_DPM),ON,OFF) \
+	-DBUILD_opencv_face=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_FACE),ON,OFF) \
+	-DBUILD_opencv_freetype=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_FREETYPE),ON,OFF) \
+	-DBUILD_opencv_fuzzy=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_FUZZY),ON,OFF) \
+	-DBUILD_opencv_hdf=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_HDF),ON,OFF) \
+	-DBUILD_opencv_hfs=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_HFS),ON,OFF) \
+	-DBUILD_opencv_img_hash=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_IMG_HASH),ON,OFF) \
+	-DBUILD_opencv_intensity_transform=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_INTENSITY_TRANSFORM),ON,OFF) \
+	-DBUILD_opencv_julia=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_JULIA),ON,OFF) \
+	-DBUILD_opencv_line_descriptor=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_LINE_DESCRIPTOR),ON,OFF) \
+	-DBUILD_opencv_matlab=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_MATLAB),ON,OFF) \
+	-DBUILD_opencv_mcc=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_MCC),ON,OFF) \
+	-DBUILD_opencv_optflow=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_OPTFLOW),ON,OFF) \
+	-DBUILD_opencv_ovis=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_OVIS),ON,OFF) \
+	-DBUILD_opencv_phase_unwrapping=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_PHASE_UNWRAPPING),ON,OFF) \
+	-DBUILD_opencv_plot=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_PLOT),ON,OFF) \
+	-DBUILD_opencv_quality=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_QUALITY),ON,OFF) \
+	-DBUILD_opencv_rapid=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_RAPID),ON,OFF) \
+	-DBUILD_opencv_reg=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_REG),ON,OFF) \
+	-DBUILD_opencv_rgbd=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_RGBD),ON,OFF) \
+	-DBUILD_opencv_saliency=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_SALIENCY),ON,OFF) \
+	-DBUILD_opencv_sfm=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_SFM),ON,OFF) \
+	-DBUILD_opencv_shape=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_SHAPE),ON,OFF) \
+	-DBUILD_opencv_stereo=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_STEREO),ON,OFF) \
+	-DBUILD_opencv_structured_light=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_STRUCTURED_LIGHT),ON,OFF) \
+	-DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_SUPERRES),ON,OFF) \
+	-DBUILD_opencv_surface_matching=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_SURFACE_MATCHING),ON,OFF) \
+	-DBUILD_opencv_text=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_TEXT),ON,OFF) \
+	-DBUILD_opencv_tracking=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_TRACKING),ON,OFF) \
+	-DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_VIDEOSTAB),ON,OFF) \
+	-DBUILD_opencv_viz=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_VIZ),ON,OFF) \
+	-DBUILD_opencv_wechat_qrcode=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_WECHAT_QRCODE),ON,OFF) \
+	-DBUILD_opencv_xfeatures2d=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_XFEATURES2D),ON,OFF) \
+	-DBUILD_opencv_ximgproc=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_XIMGPROC),ON,OFF) \
+	-DBUILD_opencv_xobjdetect=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_XOBJDETECT),ON,OFF) \
+	-DBUILD_opencv_xphoto=$(if $(BR2_PACKAGE_OPENCV4_CONTRIB_LIB_XPHOTO),ON,OFF)
+endif
+
 ifeq ($(BR2_PACKAGE_OPENCV4_JPEG2000_WITH_JASPER),y)
 ifeq ($(BR2_PACKAGE_OPENCV4_JPEG2000_WITH_JASPER),y)
 OPENCV4_CONF_OPTS += -DWITH_JASPER=ON
 OPENCV4_CONF_OPTS += -DWITH_JASPER=ON
 OPENCV4_DEPENDENCIES += jasper
 OPENCV4_DEPENDENCIES += jasper