diff --git a/.github/workflows/tritonserver.yml b/.github/workflows/tritonserver.yml index 347d722faa8..2d755f7cc03 100644 --- a/.github/workflows/tritonserver.yml +++ b/.github/workflows/tritonserver.yml @@ -19,6 +19,6 @@ env: jobs: linux-x86_64: runs-on: ubuntu-20.04 - container: nvcr.io/nvidia/tritonserver:23.09-py3 + container: nvcr.io/nvidia/tritonserver:23.12-py3 steps: - uses: bytedeco/javacpp-presets/.github/actions/deploy-ubuntu@actions diff --git a/CHANGELOG.md b/CHANGELOG.md index e03b741b3ec..cbd70ca1171 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ * Refactor and improve presets for PyTorch ([pull #1360](https://github.com/bytedeco/javacpp-presets/pull/1360)) * Include `mkl_lapack.h` header file in presets for MKL ([issue #1388](https://github.com/bytedeco/javacpp-presets/issues/1388)) * Map new higher-level C++ API of Triton Inference Server ([pull #1361](https://github.com/bytedeco/javacpp-presets/pull/1361)) - * Upgrade presets for OpenCV 4.8.1, FFmpeg 6.1, HDF5 1.14.3, MKL 2024.0, DNNL 3.3.3, OpenBLAS 0.3.25, ARPACK-NG 3.9.1, CPython 3.12.1, NumPy 1.26.2, SciPy 1.11.4, LLVM 17.0.6, Leptonica 1.83.1, Tesseract 5.3.3, CUDA 12.3.1, cuDNN 8.9.7, NCCL 2.19.3, PyTorch 2.1.2 ([pull #1426](https://github.com/bytedeco/javacpp-presets/pull/1426)), TensorFlow Lite 2.15.0, Triton Inference Server 2.38.0, DepthAI 2.24.0, ONNX 1.15.0, ONNX Runtime 1.16.3, TVM 0.14.0, and their dependencies + * Upgrade presets for OpenCV 4.9.0, FFmpeg 6.1, HDF5 1.14.3, MKL 2024.0, DNNL 3.3.3, OpenBLAS 0.3.25, ARPACK-NG 3.9.1, CPython 3.12.1, NumPy 1.26.2, SciPy 1.11.4, LLVM 17.0.6, Leptonica 1.84.0, Tesseract 5.3.3, CUDA 12.3.1, cuDNN 8.9.7, NCCL 2.19.3, OpenCL 3.0.15, PyTorch 2.1.2 ([pull #1426](https://github.com/bytedeco/javacpp-presets/pull/1426)), TensorFlow Lite 2.15.0, Triton Inference Server 2.41.0, DepthAI 2.24.0, ONNX 1.15.0, ONNX Runtime 1.16.3, TVM 0.14.0, and their dependencies ### June 6, 2023 version 1.5.9 * Virtualize `nvinfer1::IGpuAllocator` from TensorRT to allow customization ([pull #1367](https://github.com/bytedeco/javacpp-presets/pull/1367)) diff --git a/README.md b/README.md index c3eceb94df0..52dce4e806d 100644 --- a/README.md +++ b/README.md @@ -179,7 +179,7 @@ The JavaCPP Presets depend on Maven, a powerful build system for Java, so before Each child module in turn relies by default on the included [`cppbuild.sh` scripts](#the-cppbuildsh-scripts), explained below, to install its corresponding native libraries in the `cppbuild` subdirectory. To use native libraries already installed somewhere else on the system, other installation directories than `cppbuild` can also be specified either in the `pom.xml` files or in the `.java` configuration files. The following versions are supported: - * OpenCV 4.8.x https://opencv.org/releases/ + * OpenCV 4.9.x https://opencv.org/releases/ * FFmpeg 6.1.x http://ffmpeg.org/download.html * FlyCapture 2.13.x https://www.flir.com/products/flycapture-sdk * Spinnaker 3.0.x https://www.flir.com/products/spinnaker-sdk @@ -212,7 +212,7 @@ Each child module in turn relies by default on the included [`cppbuild.sh` scrip * libffi 3.4.x https://github.com/libffi/libffi * libpostal 1.1 https://github.com/openvenues/libpostal * LibRaw 0.21.x https://www.libraw.org/download - * Leptonica 1.83.x http://www.leptonica.org/download.html + * Leptonica 1.84.x http://www.leptonica.org/download.html * Tesseract 5.3.x https://github.com/tesseract-ocr/tesseract * Caffe 1.0 https://github.com/BVLC/caffe * OpenPose 1.7.0 https://github.com/CMU-Perceptual-Computing-Lab/openpose @@ -228,7 +228,7 @@ Each child module in turn relies by default on the included [`cppbuild.sh` scrip * TensorFlow 1.15.x https://github.com/tensorflow/tensorflow * TensorFlow Lite 2.15.x https://github.com/tensorflow/tensorflow * TensorRT 8.6.x https://developer.nvidia.com/tensorrt - * Triton Inference Server 2.38.x https://developer.nvidia.com/nvidia-triton-inference-server + * Triton Inference Server 2.41.x https://developer.nvidia.com/nvidia-triton-inference-server * The Arcade Learning Environment 0.8.x https://github.com/mgbellemare/Arcade-Learning-Environment * DepthAI 2.24.x https://github.com/luxonis/depthai-core * ONNX 1.15.x https://github.com/onnx/onnx diff --git a/depthai/README.md b/depthai/README.md index a1e9f94bbd4..3e135b5de05 100644 --- a/depthai/README.md +++ b/depthai/README.md @@ -51,7 +51,7 @@ We can use [Maven 3](http://maven.apache.org/) to download and install automatic org.bytedeco opencv-platform - 4.8.1-1.5.10-SNAPSHOT + 4.9.0-1.5.10-SNAPSHOT diff --git a/depthai/platform/pom.xml b/depthai/platform/pom.xml index 5030f0cb8e7..98d8d0df730 100644 --- a/depthai/platform/pom.xml +++ b/depthai/platform/pom.xml @@ -23,7 +23,7 @@ org.bytedeco opencv-platform - 4.8.1-${project.parent.version} + 4.9.0-${project.parent.version} org.bytedeco diff --git a/depthai/pom.xml b/depthai/pom.xml index 93300cf8d0b..63b870c94f2 100644 --- a/depthai/pom.xml +++ b/depthai/pom.xml @@ -18,7 +18,7 @@ org.bytedeco opencv - 4.8.1-${project.parent.version} + 4.9.0-${project.parent.version} true @@ -47,7 +47,7 @@ org.bytedeco opencv - 4.8.1-${project.parent.version} + 4.9.0-${project.parent.version} org.bytedeco @@ -58,7 +58,7 @@ org.bytedeco opencv - 4.8.1-${project.parent.version} + 4.9.0-${project.parent.version} ${javacpp.platform} diff --git a/depthai/samples/pom.xml b/depthai/samples/pom.xml index e1444fa9203..340eb6c25de 100644 --- a/depthai/samples/pom.xml +++ b/depthai/samples/pom.xml @@ -17,7 +17,7 @@ org.bytedeco opencv-platform - 4.8.1-1.5.10-SNAPSHOT + 4.9.0-1.5.10-SNAPSHOT diff --git a/leptonica/README.md b/leptonica/README.md index 701707d561d..2cde511d443 100644 --- a/leptonica/README.md +++ b/leptonica/README.md @@ -9,7 +9,7 @@ Introduction ------------ This directory contains the JavaCPP Presets module for: - * Leptonica 1.83.1 http://www.leptonica.org/ + * Leptonica 1.84.0 http://www.leptonica.org/ Please refer to the parent README.md file for more detailed information about the JavaCPP Presets. @@ -46,7 +46,7 @@ We can use [Maven 3](http://maven.apache.org/) to download and install automatic org.bytedeco leptonica-platform - 1.83.1-1.5.10-SNAPSHOT + 1.84.0-1.5.10-SNAPSHOT diff --git a/leptonica/cppbuild.sh b/leptonica/cppbuild.sh index 2f1d79e6356..1d0830beda3 100755 --- a/leptonica/cppbuild.sh +++ b/leptonica/cppbuild.sh @@ -10,16 +10,16 @@ fi NASM_VERSION=2.14 ZLIB=zlib-1.3 GIFLIB=giflib-5.2.1 -LIBJPEG=libjpeg-turbo-2.1.5.1 +LIBJPEG=libjpeg-turbo-3.0.1 LIBPNG=libpng-1.6.40 # warning: libpng16 doesn't work on CentOS 6 for some reason LIBTIFF=tiff-4.6.0 LIBWEBP=libwebp-1.3.2 OPENJPEG_VERSION=2.5.0 -LEPTONICA_VERSION=1.83.1 +LEPTONICA_VERSION=1.84.0 download https://download.videolan.org/contrib/nasm/nasm-$NASM_VERSION.tar.gz nasm-$NASM_VERSION.tar.gz download http://zlib.net/$ZLIB.tar.gz $ZLIB.tar.gz download http://downloads.sourceforge.net/project/giflib/$GIFLIB.tar.gz $GIFLIB.tar.gz -download http://downloads.sourceforge.net/project/libjpeg-turbo/2.1.5.1/$LIBJPEG.tar.gz $LIBJPEG.tar.gz +download http://downloads.sourceforge.net/project/libjpeg-turbo/3.0.1/$LIBJPEG.tar.gz $LIBJPEG.tar.gz download https://sourceforge.net/projects/libpng/files/libpng16/1.6.40/$LIBPNG.tar.gz $LIBPNG.tar.gz download http://download.osgeo.org/libtiff/$LIBTIFF.tar.gz $LIBTIFF.tar.gz download http://downloads.webmproject.org/releases/webp/$LIBWEBP.tar.gz $LIBWEBP.tar.gz @@ -53,6 +53,7 @@ sedinplace 's/VERSION ${VERSION_PLAIN}/VERSION 6/g' leptonica-$LEPTONICA_VER sedinplace 's/leptonica-${VERSION_PLAIN}/leptonica-6/g' leptonica-$LEPTONICA_VERSION/src/CMakeLists.txt sedinplace 's/FATAL_ERROR/WARNING/g' leptonica-$LEPTONICA_VERSION/CMakeLists.txt sedinplace 's/${WEBP_LIBRARY}/${WEBP_LIBRARY} ${CMAKE_INSTALL_PREFIX}\/lib\/libsharpyuv.a/g' leptonica-$LEPTONICA_VERSION/CMakeLists.txt +sedinplace 's/${TIFF_LIBRARIES}/${TIFF_LIBRARIES} ${CMAKE_INSTALL_PREFIX}\/lib\/libsharpyuv.a ${CMAKE_INSTALL_PREFIX}\/lib\/libjpeg.a/g' leptonica-$LEPTONICA_VERSION/src/CMakeLists.txt cd nasm-$NASM_VERSION # fix for build with GCC 8.x diff --git a/leptonica/platform/pom.xml b/leptonica/platform/pom.xml index 3be4d6c98ec..4854a3553c0 100644 --- a/leptonica/platform/pom.xml +++ b/leptonica/platform/pom.xml @@ -12,7 +12,7 @@ org.bytedeco leptonica-platform - 1.83.1-${project.parent.version} + 1.84.0-${project.parent.version} JavaCPP Presets Platform for Leptonica diff --git a/leptonica/pom.xml b/leptonica/pom.xml index 00fa1b3c5a6..39b5f79c10a 100644 --- a/leptonica/pom.xml +++ b/leptonica/pom.xml @@ -11,7 +11,7 @@ org.bytedeco leptonica - 1.83.1-${project.parent.version} + 1.84.0-${project.parent.version} JavaCPP Presets for Leptonica diff --git a/leptonica/samples/pom.xml b/leptonica/samples/pom.xml index 84dcb9073ca..809c9e8200c 100644 --- a/leptonica/samples/pom.xml +++ b/leptonica/samples/pom.xml @@ -12,7 +12,7 @@ org.bytedeco leptonica-platform - 1.83.1-1.5.10-SNAPSHOT + 1.84.0-1.5.10-SNAPSHOT diff --git a/leptonica/src/gen/java/org/bytedeco/leptonica/L_REGPARAMS.java b/leptonica/src/gen/java/org/bytedeco/leptonica/L_REGPARAMS.java index 0306fe99ce6..f80d3159607 100644 --- a/leptonica/src/gen/java/org/bytedeco/leptonica/L_REGPARAMS.java +++ b/leptonica/src/gen/java/org/bytedeco/leptonica/L_REGPARAMS.java @@ -125,7 +125,7 @@ public class L_REGPARAMS extends Pointer { /** generate, compare or display */ public native @Cast("l_int32") int mode(); public native L_REGPARAMS mode(int setter); /** index into saved files for this test; 0-based */ - public native @Cast("l_int32") int index(); public native L_REGPARAMS index(int setter); + public native @Cast("l_atomic") int index(); public native L_REGPARAMS index(int setter); /** overall result of the test */ public native @Cast("l_int32") int success(); public native L_REGPARAMS success(int setter); /** 1 if in display mode; 0 otherwise */ diff --git a/leptonica/src/gen/java/org/bytedeco/leptonica/global/leptonica.java b/leptonica/src/gen/java/org/bytedeco/leptonica/global/leptonica.java index 7841b2aff71..89e2db9f95c 100644 --- a/leptonica/src/gen/java/org/bytedeco/leptonica/global/leptonica.java +++ b/leptonica/src/gen/java/org/bytedeco/leptonica/global/leptonica.java @@ -300,7 +300,7 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica { /*--------------------------------------------------------------------* * Built-in types * *--------------------------------------------------------------------*/ -/** return type 0 if OK, 1 on error */ +/** return 0 if OK, 1 on error */ /** signed 8-bit value */ /** unsigned 8-bit value */ /** signed 16-bit value */ @@ -555,19 +555,30 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica { *
  *  Usage
  *  =====
- *  Messages are of two types.
+ *  Messages are of three types.
  *
  *  (1) The messages
  *      ERROR_INT(a,b,c)       : returns l_int32
  *      ERROR_FLOAT(a,b,c)     : returns l_float32
  *      ERROR_PTR(a,b,c)       : returns void*
- *  are used to return from functions and take a fixed set of parameters:
+ *  are used to return from functions and take three parameters:
  *      a : 
- *      b : procName
+ *      b : __func__   (the procedure name)
  *      c : 
- *  where procName is the name of the local variable naming the function.
+ *  A newline is added by the function after the message.
  *
- *  (2) The purely informational L_* messages
+ *  (2) The messages
+ *      ERROR_INT_1(a,f,b,c)     : returns l_int32
+ *      ERROR_FLOAT_1(a,f,b,c)   : returns l_float32
+ *      ERROR_PTR_1(a,f,b,c)     : returns void*
+ *  are used to return from functions and take four parameters:
+ *      a : 
+ *      f :  (typically, a filename for an fopen()))
+ *      b : __func__   (the procedure name)
+ *      c : 
+ *  A newline is added by the function after the message.
+ *
+ *  (3) The purely informational L_* messages
  *      L_ERROR(a,...)
  *      L_WARNING(a,...)
  *      L_INFO(a,...)
@@ -575,6 +586,8 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
  *      a  :   with optional format conversions
  *      v1 : procName    (this must be included as the first vararg)
  *      v2, ... :  optional varargs to match format converters in the message
+ *  Unlike the messages that return a value in (2) and (3) above,
+ *  here a newline needs to be included at the end of the message string.
  *
  *  To return an error from a function that returns void, use:
  *      L_ERROR(, procName, [...])
@@ -609,6 +622,9 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 //   #define ERROR_INT(a, b, c)            ((l_int32)(c))
 //   #define ERROR_FLOAT(a, b, c)          ((l_float32)(c))
 //   #define ERROR_PTR(a, b, c)            ((void *)(c))
+//   #define ERROR_INT_1(a, f, b, c)       ((l_int32)(c))
+//   #define ERROR_FLOAT_1(a, f, b, c)     ((l_float32)(c))
+//   #define ERROR_PTR_1(a, f, b, c)       ((void *)(c))
 //   #define L_ERROR(a, ...)
 //   #define L_WARNING(a, ...)
 //   #define L_INFO(a, ...)
@@ -626,6 +642,16 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 //   #define ERROR_PTR(a, b, c)
 //       IF_SEV(L_SEVERITY_ERROR, returnErrorPtr((a), (b), (c)), (void *)(c))
 
+//   #define ERROR_INT_1(a, f, b, c)
+//       IF_SEV(L_SEVERITY_ERROR, returnErrorInt1((a), (f), (b), (c)),
+//              (l_int32)(c))
+//   #define ERROR_FLOAT_1(a, f, b, c)
+//       IF_SEV(L_SEVERITY_ERROR, returnErrorFloat1((a), (f), (b), (c)),
+//              (l_float32)(c))
+//   #define ERROR_PTR_1(a, f, b, c)
+//       IF_SEV(L_SEVERITY_ERROR, returnErrorPtr1((a), (f), (b), (c)),
+//              (void *)(c))
+
 //   #define L_ERROR(a, ...)
 //       IF_SEV(L_SEVERITY_ERROR,
 //              (void)lept_stderr("Error in %s: " a, __VA_ARGS__),
@@ -3684,15 +3710,17 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 /** Display Program */
 /** enum  */
 public static final int
+    /** Disable pixDisplay()                    */
+    L_DISPLAY_WITH_NONE = 0,
     /** Use xzgv with pixDisplay()              */
     L_DISPLAY_WITH_XZGV = 1,
     /** Use xli with pixDisplay()               */
     L_DISPLAY_WITH_XLI = 2,
     /** Use xv with pixDisplay()                */
     L_DISPLAY_WITH_XV = 3,
-    /** Use irfvanview (win) with pixDisplay()  */
+    /** Use irfanview (win) with pixDisplay()   */
     L_DISPLAY_WITH_IV = 4,
-    /** Use open (apple) with pixDisplay()      */
+    /** Use open (apple/win) with pixDisplay()  */
     L_DISPLAY_WITH_OPEN = 5;
 
 /*-------------------------------------------------------------------------*
@@ -4258,8 +4286,8 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 
 
 public static final int LIBLEPT_MAJOR_VERSION =   1;
-public static final int LIBLEPT_MINOR_VERSION =   83;
-public static final int LIBLEPT_PATCH_VERSION =   1;
+public static final int LIBLEPT_MINOR_VERSION =   84;
+public static final int LIBLEPT_PATCH_VERSION =   0;
 
 // #include "alltypes.h"
 
@@ -4303,6 +4331,8 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 public static native @Cast("l_ok") int pixThresholdSpreadNorm( PIX pixs, @Cast("l_int32") int filtertype, @Cast("l_int32") int edgethresh, @Cast("l_int32") int smoothx, @Cast("l_int32") int smoothy, @Cast("l_float32") float gamma, @Cast("l_int32") int minval, @Cast("l_int32") int maxval, @Cast("l_int32") int targetthresh, @ByPtrPtr PIX ppixth, @ByPtrPtr PIX ppixb, @ByPtrPtr PIX ppixd );
 public static native PIX pixBackgroundNormFlex( PIX pixs, @Cast("l_int32") int sx, @Cast("l_int32") int sy, @Cast("l_int32") int smoothx, @Cast("l_int32") int smoothy, @Cast("l_int32") int delta );
 public static native PIX pixContrastNorm( PIX pixd, PIX pixs, @Cast("l_int32") int sx, @Cast("l_int32") int sy, @Cast("l_int32") int mindiff, @Cast("l_int32") int smoothx, @Cast("l_int32") int smoothy );
+public static native PIX pixBackgroundNormTo1MinMax( PIX pixs, @Cast("l_int32") int contrast, @Cast("l_int32") int scalefactor );
+public static native PIX pixConvertTo8MinMax( PIX pixs );
 public static native PIX pixAffineSampledPta( PIX pixs, PTA ptad, PTA ptas, @Cast("l_int32") int incolor );
 public static native PIX pixAffineSampled( PIX pixs, @Cast("l_float32*") FloatPointer vc, @Cast("l_int32") int incolor );
 public static native PIX pixAffineSampled( PIX pixs, @Cast("l_float32*") FloatBuffer vc, @Cast("l_int32") int incolor );
@@ -5224,6 +5254,7 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 public static native @Cast("l_ok") int pixCorrelationBinary( PIX pix1, PIX pix2, @Cast("l_float32*") FloatPointer pval );
 public static native @Cast("l_ok") int pixCorrelationBinary( PIX pix1, PIX pix2, @Cast("l_float32*") FloatBuffer pval );
 public static native @Cast("l_ok") int pixCorrelationBinary( PIX pix1, PIX pix2, @Cast("l_float32*") float[] pval );
+public static native PIX pixDisplayDiff( PIX pix1, PIX pix2, @Cast("l_int32") int showall, @Cast("l_int32") int mindiff, @Cast("l_uint32") int diffcolor );
 public static native PIX pixDisplayDiffBinary( PIX pix1, PIX pix2 );
 public static native @Cast("l_ok") int pixCompareBinary( PIX pix1, PIX pix2, @Cast("l_int32") int comptype, @Cast("l_float32*") FloatPointer pfract, @Cast("PIX**") PointerPointer ppixdiff );
 public static native @Cast("l_ok") int pixCompareBinary( PIX pix1, PIX pix2, @Cast("l_int32") int comptype, @Cast("l_float32*") FloatPointer pfract, @ByPtrPtr PIX ppixdiff );
@@ -6539,6 +6570,10 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 public static native PIX pixGenTextlineMask( PIX pixs, @ByPtrPtr PIX ppixvws, @Cast("l_int32*") IntBuffer ptlfound, PIXA pixadb );
 public static native PIX pixGenTextlineMask( PIX pixs, @ByPtrPtr PIX ppixvws, @Cast("l_int32*") int[] ptlfound, PIXA pixadb );
 public static native PIX pixGenTextblockMask( PIX pixs, PIX pixvws, PIXA pixadb );
+public static native PIX pixCropImage( PIX pixs, @Cast("l_int32") int lr_clear, @Cast("l_int32") int tb_clear, @Cast("l_int32") int edgeclean, @Cast("l_int32") int lr_add, @Cast("l_int32") int tb_add, @Cast("l_float32") float maxwiden, @Cast("const char*") BytePointer debugfile, @Cast("BOX**") PointerPointer pcropbox );
+public static native PIX pixCropImage( PIX pixs, @Cast("l_int32") int lr_clear, @Cast("l_int32") int tb_clear, @Cast("l_int32") int edgeclean, @Cast("l_int32") int lr_add, @Cast("l_int32") int tb_add, @Cast("l_float32") float maxwiden, @Cast("const char*") BytePointer debugfile, @ByPtrPtr BOX pcropbox );
+public static native PIX pixCropImage( PIX pixs, @Cast("l_int32") int lr_clear, @Cast("l_int32") int tb_clear, @Cast("l_int32") int edgeclean, @Cast("l_int32") int lr_add, @Cast("l_int32") int tb_add, @Cast("l_float32") float maxwiden, String debugfile, @ByPtrPtr BOX pcropbox );
+public static native PIX pixCleanImage( PIX pixs, @Cast("l_int32") int contrast, @Cast("l_int32") int rotation, @Cast("l_int32") int scale, @Cast("l_int32") int opensize );
 public static native BOX pixFindPageForeground( PIX pixs, @Cast("l_int32") int threshold, @Cast("l_int32") int mindist, @Cast("l_int32") int erasedist, @Cast("l_int32") int showmorph, PIXAC pixac );
 public static native @Cast("l_ok") int pixSplitIntoCharacters( PIX pixs, @Cast("l_int32") int minw, @Cast("l_int32") int minh, @Cast("BOXA**") PointerPointer pboxa, @Cast("PIXA**") PointerPointer ppixa, @Cast("PIX**") PointerPointer ppixdebug );
 public static native @Cast("l_ok") int pixSplitIntoCharacters( PIX pixs, @Cast("l_int32") int minw, @Cast("l_int32") int minh, @ByPtrPtr BOXA pboxa, @ByPtrPtr PIXA ppixa, @ByPtrPtr PIX ppixdebug );
@@ -6585,6 +6620,12 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 public static native @Cast("l_ok") int partifyPixac( PIXAC pixac, @Cast("l_int32") int nparts, String outroot, PIXA pixadb );
 public static native BOXA boxaGetWhiteblocks( BOXA boxas, BOX box, @Cast("l_int32") int sortflag, @Cast("l_int32") int maxboxes, @Cast("l_float32") float maxoverlap, @Cast("l_int32") int maxperim, @Cast("l_float32") float fract, @Cast("l_int32") int maxpops );
 public static native BOXA boxaPruneSortedOnOverlap( BOXA boxas, @Cast("l_float32") float maxoverlap );
+public static native @Cast("l_ok") int compressFilesToPdf( SARRAY sa, @Cast("l_int32") int onebit, @Cast("l_int32") int savecolor, @Cast("l_float32") float scalefactor, @Cast("l_int32") int quality, @Cast("const char*") BytePointer title, @Cast("const char*") BytePointer fileout );
+public static native @Cast("l_ok") int compressFilesToPdf( SARRAY sa, @Cast("l_int32") int onebit, @Cast("l_int32") int savecolor, @Cast("l_float32") float scalefactor, @Cast("l_int32") int quality, String title, String fileout );
+public static native @Cast("l_ok") int cropFilesToPdf( SARRAY sa, @Cast("l_int32") int lr_clear, @Cast("l_int32") int tb_clear, @Cast("l_int32") int edgeclean, @Cast("l_int32") int lr_add, @Cast("l_int32") int tb_add, @Cast("l_float32") float maxwiden, @Cast("const char*") BytePointer title, @Cast("const char*") BytePointer fileout );
+public static native @Cast("l_ok") int cropFilesToPdf( SARRAY sa, @Cast("l_int32") int lr_clear, @Cast("l_int32") int tb_clear, @Cast("l_int32") int edgeclean, @Cast("l_int32") int lr_add, @Cast("l_int32") int tb_add, @Cast("l_float32") float maxwiden, String title, String fileout );
+public static native @Cast("l_ok") int cleanTo1bppFilesToPdf( SARRAY sa, @Cast("l_int32") int res, @Cast("l_int32") int contrast, @Cast("l_int32") int rotation, @Cast("l_int32") int opensize, @Cast("const char*") BytePointer title, @Cast("const char*") BytePointer fileout );
+public static native @Cast("l_ok") int cleanTo1bppFilesToPdf( SARRAY sa, @Cast("l_int32") int res, @Cast("l_int32") int contrast, @Cast("l_int32") int rotation, @Cast("l_int32") int opensize, String title, String fileout );
 public static native @Cast("l_ok") int convertFilesToPdf( @Cast("const char*") BytePointer dirname, @Cast("const char*") BytePointer substr, @Cast("l_int32") int res, @Cast("l_float32") float scalefactor, @Cast("l_int32") int type, @Cast("l_int32") int quality, @Cast("const char*") BytePointer title, @Cast("const char*") BytePointer fileout );
 public static native @Cast("l_ok") int convertFilesToPdf( String dirname, String substr, @Cast("l_int32") int res, @Cast("l_float32") float scalefactor, @Cast("l_int32") int type, @Cast("l_int32") int quality, String title, String fileout );
 public static native @Cast("l_ok") int saConvertFilesToPdf( SARRAY sa, @Cast("l_int32") int res, @Cast("l_float32") float scalefactor, @Cast("l_int32") int type, @Cast("l_int32") int quality, @Cast("const char*") BytePointer title, @Cast("const char*") BytePointer fileout );
@@ -6742,6 +6783,32 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 public static native @Cast("l_ok") int cidConvertToPdfData( L_COMP_DATA cid, String title, @Cast("l_uint8**") @ByPtrPtr byte[] pdata, @Cast("size_t*") SizeTPointer pnbytes );
 public static native void l_CIDataDestroy( @Cast("L_COMP_DATA**") PointerPointer pcid );
 public static native void l_CIDataDestroy( @ByPtrPtr L_COMP_DATA pcid );
+public static native @Cast("l_ok") int getPdfPageCount( @Cast("const char*") BytePointer fname, @Cast("l_int32*") IntPointer pnpages );
+public static native @Cast("l_ok") int getPdfPageCount( String fname, @Cast("l_int32*") IntBuffer pnpages );
+public static native @Cast("l_ok") int getPdfPageCount( @Cast("const char*") BytePointer fname, @Cast("l_int32*") int[] pnpages );
+public static native @Cast("l_ok") int getPdfPageCount( String fname, @Cast("l_int32*") IntPointer pnpages );
+public static native @Cast("l_ok") int getPdfPageCount( @Cast("const char*") BytePointer fname, @Cast("l_int32*") IntBuffer pnpages );
+public static native @Cast("l_ok") int getPdfPageCount( String fname, @Cast("l_int32*") int[] pnpages );
+public static native @Cast("l_ok") int getPdfPageSizes( @Cast("const char*") BytePointer fname, @Cast("NUMA**") PointerPointer pnaw, @Cast("NUMA**") PointerPointer pnah, @Cast("l_int32*") IntPointer pmedw, @Cast("l_int32*") IntPointer pmedh );
+public static native @Cast("l_ok") int getPdfPageSizes( @Cast("const char*") BytePointer fname, @ByPtrPtr NUMA pnaw, @ByPtrPtr NUMA pnah, @Cast("l_int32*") IntPointer pmedw, @Cast("l_int32*") IntPointer pmedh );
+public static native @Cast("l_ok") int getPdfPageSizes( String fname, @ByPtrPtr NUMA pnaw, @ByPtrPtr NUMA pnah, @Cast("l_int32*") IntBuffer pmedw, @Cast("l_int32*") IntBuffer pmedh );
+public static native @Cast("l_ok") int getPdfPageSizes( @Cast("const char*") BytePointer fname, @ByPtrPtr NUMA pnaw, @ByPtrPtr NUMA pnah, @Cast("l_int32*") int[] pmedw, @Cast("l_int32*") int[] pmedh );
+public static native @Cast("l_ok") int getPdfPageSizes( String fname, @ByPtrPtr NUMA pnaw, @ByPtrPtr NUMA pnah, @Cast("l_int32*") IntPointer pmedw, @Cast("l_int32*") IntPointer pmedh );
+public static native @Cast("l_ok") int getPdfPageSizes( @Cast("const char*") BytePointer fname, @ByPtrPtr NUMA pnaw, @ByPtrPtr NUMA pnah, @Cast("l_int32*") IntBuffer pmedw, @Cast("l_int32*") IntBuffer pmedh );
+public static native @Cast("l_ok") int getPdfPageSizes( String fname, @ByPtrPtr NUMA pnaw, @ByPtrPtr NUMA pnah, @Cast("l_int32*") int[] pmedw, @Cast("l_int32*") int[] pmedh );
+public static native @Cast("l_ok") int getPdfMediaBoxSizes( @Cast("const char*") BytePointer fname, @Cast("NUMA**") PointerPointer pnaw, @Cast("NUMA**") PointerPointer pnah, @Cast("l_int32*") IntPointer pmedw, @Cast("l_int32*") IntPointer pmedh );
+public static native @Cast("l_ok") int getPdfMediaBoxSizes( @Cast("const char*") BytePointer fname, @ByPtrPtr NUMA pnaw, @ByPtrPtr NUMA pnah, @Cast("l_int32*") IntPointer pmedw, @Cast("l_int32*") IntPointer pmedh );
+public static native @Cast("l_ok") int getPdfMediaBoxSizes( String fname, @ByPtrPtr NUMA pnaw, @ByPtrPtr NUMA pnah, @Cast("l_int32*") IntBuffer pmedw, @Cast("l_int32*") IntBuffer pmedh );
+public static native @Cast("l_ok") int getPdfMediaBoxSizes( @Cast("const char*") BytePointer fname, @ByPtrPtr NUMA pnaw, @ByPtrPtr NUMA pnah, @Cast("l_int32*") int[] pmedw, @Cast("l_int32*") int[] pmedh );
+public static native @Cast("l_ok") int getPdfMediaBoxSizes( String fname, @ByPtrPtr NUMA pnaw, @ByPtrPtr NUMA pnah, @Cast("l_int32*") IntPointer pmedw, @Cast("l_int32*") IntPointer pmedh );
+public static native @Cast("l_ok") int getPdfMediaBoxSizes( @Cast("const char*") BytePointer fname, @ByPtrPtr NUMA pnaw, @ByPtrPtr NUMA pnah, @Cast("l_int32*") IntBuffer pmedw, @Cast("l_int32*") IntBuffer pmedh );
+public static native @Cast("l_ok") int getPdfMediaBoxSizes( String fname, @ByPtrPtr NUMA pnaw, @ByPtrPtr NUMA pnah, @Cast("l_int32*") int[] pmedw, @Cast("l_int32*") int[] pmedh );
+public static native @Cast("l_ok") int getPdfRendererResolution( @Cast("const char*") BytePointer infile, @Cast("const char*") BytePointer outdir, @Cast("l_int32*") IntPointer pres );
+public static native @Cast("l_ok") int getPdfRendererResolution( String infile, String outdir, @Cast("l_int32*") IntBuffer pres );
+public static native @Cast("l_ok") int getPdfRendererResolution( @Cast("const char*") BytePointer infile, @Cast("const char*") BytePointer outdir, @Cast("l_int32*") int[] pres );
+public static native @Cast("l_ok") int getPdfRendererResolution( String infile, String outdir, @Cast("l_int32*") IntPointer pres );
+public static native @Cast("l_ok") int getPdfRendererResolution( @Cast("const char*") BytePointer infile, @Cast("const char*") BytePointer outdir, @Cast("l_int32*") IntBuffer pres );
+public static native @Cast("l_ok") int getPdfRendererResolution( String infile, String outdir, @Cast("l_int32*") int[] pres );
 public static native void l_pdfSetG4ImageMask( @Cast("l_int32") int flag );
 public static native void l_pdfSetDateAndVersion( @Cast("l_int32") int flag );
 public static native void setPixMemoryManager( alloc_fn allocator, dealloc_fn deallocator );
@@ -8406,6 +8473,7 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 public static native PIX pixScaleGray4xLIThresh( PIX pixs, @Cast("l_int32") int thresh );
 public static native PIX pixScaleGray4xLIDither( PIX pixs );
 public static native PIX pixScaleBySampling( PIX pixs, @Cast("l_float32") float scalex, @Cast("l_float32") float scaley );
+public static native PIX pixScaleBySamplingWithShift( PIX pixs, @Cast("l_float32") float scalex, @Cast("l_float32") float scaley, @Cast("l_float32") float shiftx, @Cast("l_float32") float shifty );
 public static native PIX pixScaleBySamplingToSize( PIX pixs, @Cast("l_int32") int wd, @Cast("l_int32") int hd );
 public static native PIX pixScaleByIntSampling( PIX pixs, @Cast("l_int32") int factor );
 public static native PIX pixScaleRGBToGrayFast( PIX pixs, @Cast("l_int32") int factor, @Cast("l_int32") int color );
@@ -8418,6 +8486,7 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 public static native PIX pixScaleAreaMap2( PIX pix );
 public static native PIX pixScaleAreaMapToSize( PIX pixs, @Cast("l_int32") int wd, @Cast("l_int32") int hd );
 public static native PIX pixScaleBinary( PIX pixs, @Cast("l_float32") float scalex, @Cast("l_float32") float scaley );
+public static native PIX pixScaleBinaryWithShift( PIX pixs, @Cast("l_float32") float scalex, @Cast("l_float32") float scaley, @Cast("l_float32") float shiftx, @Cast("l_float32") float shifty );
 public static native PIX pixScaleToGray( PIX pixs, @Cast("l_float32") float scalefactor );
 public static native PIX pixScaleToGrayFast( PIX pixs, @Cast("l_float32") float scalefactor );
 public static native PIX pixScaleToGray2( PIX pixs );
@@ -8798,6 +8867,12 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 public static native @Cast("l_float32") float returnErrorFloat( String msg, String procname, @Cast("l_float32") float fval );
 public static native Pointer returnErrorPtr( @Cast("const char*") BytePointer msg, @Cast("const char*") BytePointer procname, Pointer pval );
 public static native Pointer returnErrorPtr( String msg, String procname, Pointer pval );
+public static native @Cast("l_int32") int returnErrorInt1( @Cast("const char*") BytePointer msg, @Cast("const char*") BytePointer arg, @Cast("const char*") BytePointer procname, @Cast("l_int32") int ival );
+public static native @Cast("l_int32") int returnErrorInt1( String msg, String arg, String procname, @Cast("l_int32") int ival );
+public static native @Cast("l_float32") float returnErrorFloat1( @Cast("const char*") BytePointer msg, @Cast("const char*") BytePointer arg, @Cast("const char*") BytePointer procname, @Cast("l_float32") float fval );
+public static native @Cast("l_float32") float returnErrorFloat1( String msg, String arg, String procname, @Cast("l_float32") float fval );
+public static native Pointer returnErrorPtr1( @Cast("const char*") BytePointer msg, @Cast("const char*") BytePointer arg, @Cast("const char*") BytePointer procname, Pointer pval );
+public static native Pointer returnErrorPtr1( String msg, String arg, String procname, Pointer pval );
 // Targeting ../Handler_BytePointer.java
 
 
@@ -8832,6 +8907,8 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 public static native @Cast("l_ok") int genRandomIntOnInterval( @Cast("l_int32") int start, @Cast("l_int32") int end, @Cast("l_int32") int seed, @Cast("l_int32*") IntBuffer pval );
 public static native @Cast("l_ok") int genRandomIntOnInterval( @Cast("l_int32") int start, @Cast("l_int32") int end, @Cast("l_int32") int seed, @Cast("l_int32*") int[] pval );
 public static native @Cast("l_int32") int lept_roundftoi( @Cast("l_float32") float fval );
+public static native @Cast("l_int32") int lept_floor( @Cast("l_float32") float fval );
+public static native @Cast("l_int32") int lept_ceiling( @Cast("l_float32") float fval );
 public static native @Cast("l_ok") int l_hashStringToUint64( @Cast("const char*") BytePointer str, @Cast("l_uint64*") LongPointer phash );
 public static native @Cast("l_ok") int l_hashStringToUint64( String str, @Cast("l_uint64*") LongBuffer phash );
 public static native @Cast("l_ok") int l_hashStringToUint64( @Cast("const char*") BytePointer str, @Cast("l_uint64*") long[] phash );
@@ -9127,6 +9204,8 @@ public class leptonica extends org.bytedeco.leptonica.presets.leptonica {
 public static native @Cast("l_int32") int pixChooseOutputFormat( PIX pix );
 public static native @Cast("l_int32") int getImpliedFileFormat( @Cast("const char*") BytePointer filename );
 public static native @Cast("l_int32") int getImpliedFileFormat( String filename );
+public static native @Cast("l_int32") int getFormatFromExtension( @Cast("const char*") BytePointer extension );
+public static native @Cast("l_int32") int getFormatFromExtension( String extension );
 public static native @Cast("l_ok") int pixGetAutoFormat( PIX pix, @Cast("l_int32*") IntPointer pformat );
 public static native @Cast("l_ok") int pixGetAutoFormat( PIX pix, @Cast("l_int32*") IntBuffer pformat );
 public static native @Cast("l_ok") int pixGetAutoFormat( PIX pix, @Cast("l_int32*") int[] pformat );
diff --git a/opencl/README.md b/opencl/README.md
index 801a1da9f07..493dad83950 100644
--- a/opencl/README.md
+++ b/opencl/README.md
@@ -9,7 +9,7 @@ Introduction
 ------------
 This directory contains the JavaCPP Presets module for:
 
- * OpenCL 3.0.14  https://www.khronos.org/registry/OpenCL/
+ * OpenCL 3.0.15  https://www.khronos.org/registry/OpenCL/
 
 Please refer to the parent README.md file for more detailed information about the JavaCPP Presets.
 
diff --git a/opencl/cppbuild.sh b/opencl/cppbuild.sh
index 112f135d1ab..db63e21e408 100755
--- a/opencl/cppbuild.sh
+++ b/opencl/cppbuild.sh
@@ -7,8 +7,8 @@ if [[ -z "$PLATFORM" ]]; then
     exit
 fi
 
-OPENCL_VERSION=2023.04.17
-CLHPP_VERSION=2023.04.17
+OPENCL_VERSION=2023.12.14
+CLHPP_VERSION=2023.12.14
 download https://github.com/KhronosGroup/OpenCL-Headers/archive/v$OPENCL_VERSION.tar.gz OpenCL-Headers-$OPENCL_VERSION.tar.gz
 download https://github.com/KhronosGroup/OpenCL-ICD-Loader/archive/v$OPENCL_VERSION.tar.gz OpenCL-ICD-Loader-$OPENCL_VERSION.tar.gz
 download https://github.com/KhronosGroup/OpenCL-CLHPP/archive/v$CLHPP_VERSION.tar.gz OpenCL-CLHPP-$CLHPP_VERSION.tar.gz
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_free_func__cl_command_queue_int_PointerPointer_Pointer.java b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_free_func__cl_command_queue_int_PointerPointer_Pointer.java
index 1b5e1fc8240..074ca100b61 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_free_func__cl_command_queue_int_PointerPointer_Pointer.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_free_func__cl_command_queue_int_PointerPointer_Pointer.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_free_func__cl_command_queue_int_Pointer_Pointer.java b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_free_func__cl_command_queue_int_Pointer_Pointer.java
index ed83ba71264..303e8587e1e 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_free_func__cl_command_queue_int_Pointer_Pointer.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_free_func__cl_command_queue_int_Pointer_Pointer.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify_BytePointer_Pointer_long_Pointer.java b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify_BytePointer_Pointer_long_Pointer.java
index 0ed096091e3..84e83fc30f5 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify_BytePointer_Pointer_long_Pointer.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify_BytePointer_Pointer_long_Pointer.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify_String_Pointer_long_Pointer.java b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify_String_Pointer_long_Pointer.java
index 008fde448ec..6c948a4a31c 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify_String_Pointer_long_Pointer.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify_String_Pointer_long_Pointer.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_context_Pointer.java b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_context_Pointer.java
index 1828c7d205c..9edd9adb449 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_context_Pointer.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_context_Pointer.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_event_int_Pointer.java b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_event_int_Pointer.java
index 21a1394aa31..1b5d30cb176 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_event_int_Pointer.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_event_int_Pointer.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_mem_Pointer.java b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_mem_Pointer.java
index 3eceacbf6c6..cc2625635c5 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_mem_Pointer.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_mem_Pointer.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_program_Pointer.java b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_program_Pointer.java
index 3ae6730e552..2607a1193ea 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_program_Pointer.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/Pfn_notify__cl_program_Pointer.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/User_func_Pointer.java b/opencl/src/gen/java/org/bytedeco/opencl/User_func_Pointer.java
index f697df0674f..5aaa44c4838 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/User_func_Pointer.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/User_func_Pointer.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/_cl_command_queue.java b/opencl/src/gen/java/org/bytedeco/opencl/_cl_command_queue.java
index d44162c82ef..70c54255ca8 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/_cl_command_queue.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/_cl_command_queue.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/_cl_context.java b/opencl/src/gen/java/org/bytedeco/opencl/_cl_context.java
index fd5c63a5a2a..426cc638130 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/_cl_context.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/_cl_context.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/_cl_device_id.java b/opencl/src/gen/java/org/bytedeco/opencl/_cl_device_id.java
index 2d7416a52de..19bc2aacdd6 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/_cl_device_id.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/_cl_device_id.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/_cl_event.java b/opencl/src/gen/java/org/bytedeco/opencl/_cl_event.java
index 6e80c911e56..6cf64e1715a 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/_cl_event.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/_cl_event.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/_cl_kernel.java b/opencl/src/gen/java/org/bytedeco/opencl/_cl_kernel.java
index 05d6b286504..8741bd7c1b4 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/_cl_kernel.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/_cl_kernel.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/_cl_mem.java b/opencl/src/gen/java/org/bytedeco/opencl/_cl_mem.java
index 3bc825fcacb..2f509f23863 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/_cl_mem.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/_cl_mem.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/_cl_platform_id.java b/opencl/src/gen/java/org/bytedeco/opencl/_cl_platform_id.java
index 5ebfa8acc2c..e6568eb3026 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/_cl_platform_id.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/_cl_platform_id.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/_cl_program.java b/opencl/src/gen/java/org/bytedeco/opencl/_cl_program.java
index 043cf72e404..2d3f7887333 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/_cl_program.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/_cl_program.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/_cl_sampler.java b/opencl/src/gen/java/org/bytedeco/opencl/_cl_sampler.java
index f8fdfb6e48e..5299f3b64b9 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/_cl_sampler.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/_cl_sampler.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_buffer_region.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_buffer_region.java
index b3209e0939a..eb5a4827fbc 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_buffer_region.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_buffer_region.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_char16.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_char16.java
index 05c1e0ee12a..1c3eda5a1e1 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_char16.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_char16.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_char2.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_char2.java
index dbe095f77a8..197418b068d 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_char2.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_char2.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_char4.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_char4.java
index 0236ec97ab4..f8730b91d52 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_char4.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_char4.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_char8.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_char8.java
index 7e01351b196..ce66f0b2f22 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_char8.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_char8.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_double16.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_double16.java
index 31270b7c1cd..cd60c665989 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_double16.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_double16.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_double2.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_double2.java
index eded0be0872..33dbd772453 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_double2.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_double2.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_double4.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_double4.java
index 1e448fb0356..51986a6e651 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_double4.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_double4.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_double8.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_double8.java
index de7b0ba6ff1..590c8b97a5d 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_double8.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_double8.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_float16.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_float16.java
index e730ca71547..76206c99c24 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_float16.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_float16.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_float2.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_float2.java
index 408a9d8a0b1..e2669d6a5bd 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_float2.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_float2.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_float4.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_float4.java
index 09c50ee9b9a..d5c51645264 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_float4.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_float4.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_float8.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_float8.java
index 0cb8835b1c6..13fb10a151d 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_float8.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_float8.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_half16.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_half16.java
index 2223934ec43..96cc13ee630 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_half16.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_half16.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_half2.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_half2.java
index 426cfa100ad..bd96a747613 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_half2.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_half2.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_half4.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_half4.java
index ef3b1059139..12980dc8ac6 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_half4.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_half4.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_half8.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_half8.java
index 3b3a346a339..2bd58285956 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_half8.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_half8.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_image_desc.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_image_desc.java
index 02059339d01..1a7feda79b5 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_image_desc.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_image_desc.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_image_format.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_image_format.java
index f03a7056e09..373d661475c 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_image_format.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_image_format.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_int16.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_int16.java
index e0e7d900d2c..e872adce4ea 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_int16.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_int16.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_int2.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_int2.java
index af525ead1f4..daaf96e2ccc 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_int2.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_int2.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_int4.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_int4.java
index 4d3ef395d3f..551a9fa2d8f 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_int4.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_int4.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_int8.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_int8.java
index ad6f81fe786..63a55b4c2bf 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_int8.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_int8.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_long16.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_long16.java
index 4895c6f94c1..c3ae477e33d 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_long16.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_long16.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_long2.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_long2.java
index 9c85340c0df..d1fab0638e7 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_long2.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_long2.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_long4.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_long4.java
index 3be39feb5e0..07bd8f801e2 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_long4.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_long4.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_long8.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_long8.java
index b865859e99d..923a32851a4 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_long8.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_long8.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_name_version.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_name_version.java
index 79f8d878da3..815873056b3 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_name_version.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_name_version.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_short16.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_short16.java
index 5249481538f..b37dccc62d4 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_short16.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_short16.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_short2.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_short2.java
index 9723f0b9555..16b9fb8a078 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_short2.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_short2.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_short4.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_short4.java
index 9c9ca7d9fed..bb4c4b488d4 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_short4.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_short4.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_short8.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_short8.java
index 1c639dd9a29..24f9df713d5 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_short8.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_short8.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar16.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar16.java
index 370e1573e5c..bf5ce56f2be 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar16.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar16.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar2.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar2.java
index 94f84e7d9ff..02b1848aa88 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar2.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar2.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar4.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar4.java
index 5b44e4d1378..b70aa54bf18 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar4.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar4.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar8.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar8.java
index 1ca29f9cb0e..8ef8325ac73 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar8.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_uchar8.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_uint16.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_uint16.java
index 2325a744336..c90e571f6eb 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_uint16.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_uint16.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_uint2.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_uint2.java
index 961004d0a95..eca1c66337b 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_uint2.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_uint2.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_uint4.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_uint4.java
index a62c2a2ba31..c410e5fb608 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_uint4.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_uint4.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_uint8.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_uint8.java
index 630b7b07b2e..8d917363a8d 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_uint8.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_uint8.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong16.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong16.java
index 8a67c9b2e8c..e3eee01b549 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong16.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong16.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong2.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong2.java
index 64b0662eb04..7a8ac58c216 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong2.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong2.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong4.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong4.java
index 51635c8c590..ff58d5f0262 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong4.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong4.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong8.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong8.java
index 14249d8f546..817666b8e48 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong8.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_ulong8.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort16.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort16.java
index 9e303ae2cb6..c2ca490df5a 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort16.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort16.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort2.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort2.java
index a5f601b2aa5..66d5783a4fe 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort2.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort2.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort4.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort4.java
index 124f2baf6d1..b8f79426bdb 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort4.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort4.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort8.java b/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort8.java
index 66b5de853ac..6ad0e5432cf 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort8.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/cl_ushort8.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl;
 
diff --git a/opencl/src/gen/java/org/bytedeco/opencl/global/OpenCL.java b/opencl/src/gen/java/org/bytedeco/opencl/global/OpenCL.java
index 26263069d6a..62af0ef928f 100644
--- a/opencl/src/gen/java/org/bytedeco/opencl/global/OpenCL.java
+++ b/opencl/src/gen/java/org/bytedeco/opencl/global/OpenCL.java
@@ -1,4 +1,4 @@
-// Targeted by JavaCPP version 1.5.9: DO NOT EDIT THIS FILE
+// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE
 
 package org.bytedeco.opencl.global;
 
@@ -1161,11 +1161,8 @@ public class OpenCL extends org.bytedeco.opencl.presets.OpenCL {
 public static final int CL_RGx =                                      0x10BB;
 public static final int CL_RGBx =                                     0x10BC;
 // #endif
-// #ifdef CL_VERSION_1_2
-public static final int CL_DEPTH =                                    0x10BD;
-public static final int CL_DEPTH_STENCIL =                            0x10BE;
-// #endif
 // #ifdef CL_VERSION_2_0
+public static final int CL_DEPTH =                                    0x10BD;
 public static final int CL_sRGB =                                     0x10BF;
 public static final int CL_sRGBx =                                    0x10C0;
 public static final int CL_sRGBA =                                    0x10C1;
@@ -1189,9 +1186,6 @@ public class OpenCL extends org.bytedeco.opencl.presets.OpenCL {
 public static final int CL_UNSIGNED_INT32 =                           0x10DC;
 public static final int CL_HALF_FLOAT =                               0x10DD;
 public static final int CL_FLOAT =                                    0x10DE;
-// #ifdef CL_VERSION_1_2
-public static final int CL_UNORM_INT24 =                              0x10DF;
-// #endif
 // #ifdef CL_VERSION_2_1
 public static final int CL_UNORM_INT_101010_2 =                       0x10E0;
 // #endif
diff --git a/opencv/README.md b/opencv/README.md
index 882c445080a..18c555f023b 100644
--- a/opencv/README.md
+++ b/opencv/README.md
@@ -9,7 +9,7 @@ Introduction
 ------------
 This directory contains the JavaCPP Presets module for:
 
- * OpenCV 4.8.1  http://opencv.org/
+ * OpenCV 4.9.0  http://opencv.org/
 
 Please refer to the parent README.md file for more detailed information about the JavaCPP Presets.
 
@@ -49,14 +49,14 @@ We can use [Maven 3](http://maven.apache.org/) to download and install automatic
         
             org.bytedeco
             opencv-platform
-            4.8.1-1.5.10-SNAPSHOT
+            4.9.0-1.5.10-SNAPSHOT
         
 
         
         
             org.bytedeco
             opencv-platform-gpu
-            4.8.1-1.5.10-SNAPSHOT
+            4.9.0-1.5.10-SNAPSHOT
         
 
         
diff --git a/opencv/cppbuild.sh b/opencv/cppbuild.sh
index 3ab5714ff05..bff28c23352 100755
--- a/opencv/cppbuild.sh
+++ b/opencv/cppbuild.sh
@@ -7,7 +7,7 @@ if [[ -z "$PLATFORM" ]]; then
     exit
 fi
 
-OPENCV_VERSION=4.8.1
+OPENCV_VERSION=4.9.0
 download https://github.com/opencv/opencv/archive/$OPENCV_VERSION.tar.gz opencv-$OPENCV_VERSION.tar.gz
 download https://github.com/opencv/opencv_contrib/archive/$OPENCV_VERSION.tar.gz opencv_contrib-$OPENCV_VERSION.tar.gz
 
@@ -79,8 +79,8 @@ patch -Np1 < ../../../opencv.patch
 patch -Np1 < ../../../opencv-linux-ppc64le.patch
 
 # work around the toolchain for Android not supporting Clang with libc++ properly
-sedinplace '/include_directories/d' platforms/android/android.toolchain.cmake
-sedinplace "s// ${ANDROID_LIBS:-}/g" platforms/android/android.toolchain.cmake
+#sedinplace '/include_directories/d' platforms/android/android.toolchain.cmake
+#sedinplace "s// ${ANDROID_LIBS:-}/g" platforms/android/android.toolchain.cmake
 
 # https://github.com/opencv/opencv/issues/19846
 sedinplace 's/dgeev_/OCV_LAPACK_FUNC(dgeev)/g' modules/calib3d/src/usac/dls_solver.cpp modules/calib3d/src/usac/essential_solver.cpp
@@ -455,7 +455,7 @@ fi
 cp -r modules/java_bindings_generator/gen/java ..
 cp -r modules/java_bindings_generator/gen/android/java ..
 # remove files that require the Android SDK to compile
-rm ../java/org/opencv/android/AsyncServiceHelper.java
+rm ../java/org/opencv/android/AsyncServiceHelper.java || true
 rm ../java/org/opencv/android/CameraActivity.java
 rm ../java/org/opencv/android/CameraBridgeViewBase.java
 rm ../java/org/opencv/android/JavaCameraView.java
diff --git a/opencv/opencv.patch b/opencv/opencv.patch
index 532163c390a..433bfeab42a 100644
--- a/opencv/opencv.patch
+++ b/opencv/opencv.patch
@@ -1,6 +1,6 @@
-diff -ruN opencv-4.8.0/3rdparty/libpng/pngpriv.h opencv-4.8.0-patch/3rdparty/libpng/pngpriv.h
---- opencv-4.8.0/3rdparty/libpng/pngpriv.h	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/3rdparty/libpng/pngpriv.h	2023-07-09 19:32:55.470047377 +0900
+diff -ruN opencv-4.9.0/3rdparty/libpng/pngpriv.h opencv-4.9.0-patch/3rdparty/libpng/pngpriv.h
+--- opencv-4.9.0/3rdparty/libpng/pngpriv.h	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/3rdparty/libpng/pngpriv.h	2023-12-31 10:47:15.699853334 +0900
 @@ -195,13 +195,13 @@
  #  endif
  #endif
@@ -22,12 +22,12 @@ diff -ruN opencv-4.8.0/3rdparty/libpng/pngpriv.h opencv-4.8.0-patch/3rdparty/lib
  
  #ifndef PNG_INTEL_SSE_OPT
  #   ifdef PNG_INTEL_SSE
-diff -ruN opencv-4.8.0/CMakeLists.txt opencv-4.8.0-patch/CMakeLists.txt
---- opencv-4.8.0/CMakeLists.txt	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/CMakeLists.txt	2023-07-09 19:36:48.460942084 +0900
-@@ -7,12 +7,12 @@
+diff -ruN opencv-4.9.0/CMakeLists.txt opencv-4.9.0-patch/CMakeLists.txt
+--- opencv-4.9.0/CMakeLists.txt	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/CMakeLists.txt	2023-12-31 10:47:54.236927735 +0900
+@@ -6,12 +6,12 @@
+ #
  # ----------------------------------------------------------------------------
- 
  # Disable in-source builds to prevent source tree corruption.
 -if(" ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}")
 -  message(FATAL_ERROR "
@@ -44,17 +44,17 @@ diff -ruN opencv-4.8.0/CMakeLists.txt opencv-4.8.0-patch/CMakeLists.txt
  
  
  include(cmake/OpenCVMinDepVersions.cmake)
-@@ -429,7 +429,6 @@
-   VISIBLE_IF UNIX AND NOT ANDROID AND NOT IOS
+@@ -439,7 +439,6 @@
+   VISIBLE_IF UNIX AND NOT ANDROID AND NOT IOS AND NOT XROS
    VERIFY HAVE_GPHOTO2)
  OCV_OPTION(WITH_LAPACK "Include Lapack library support" (NOT CV_DISABLE_OPTIMIZATION)
--  VISIBLE_IF NOT ANDROID AND NOT IOS
+-  VISIBLE_IF NOT ANDROID AND NOT IOS AND NOT XROS
    VERIFY HAVE_LAPACK)
  OCV_OPTION(WITH_ITT "Include Intel ITT support" ON
    VISIBLE_IF NOT APPLE_FRAMEWORK
-diff -ruN opencv-4.8.0/modules/core/include/opencv2/core/fast_math.hpp opencv-4.8.0-patch/modules/core/include/opencv2/core/fast_math.hpp
---- opencv-4.8.0/modules/core/include/opencv2/core/fast_math.hpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/core/include/opencv2/core/fast_math.hpp	2023-07-09 19:32:55.472047376 +0900
+diff -ruN opencv-4.9.0/modules/core/include/opencv2/core/fast_math.hpp opencv-4.9.0-patch/modules/core/include/opencv2/core/fast_math.hpp
+--- opencv-4.9.0/modules/core/include/opencv2/core/fast_math.hpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/core/include/opencv2/core/fast_math.hpp	2023-12-31 10:47:15.700853336 +0900
 @@ -89,7 +89,6 @@
      #define ARM_ROUND(_value, _asm_string) \
          int res; \
@@ -63,9 +63,9 @@ diff -ruN opencv-4.8.0/modules/core/include/opencv2/core/fast_math.hpp opencv-4.
          __asm__(_asm_string : [res] "=r" (res), [temp] "=w" (temp) : [value] "w" (_value)); \
          return res
      // 2. version for double
-diff -ruN opencv-4.8.0/modules/core/include/opencv2/core/utils/instrumentation.hpp opencv-4.8.0-patch/modules/core/include/opencv2/core/utils/instrumentation.hpp
---- opencv-4.8.0/modules/core/include/opencv2/core/utils/instrumentation.hpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/core/include/opencv2/core/utils/instrumentation.hpp	2023-07-09 19:32:55.472047376 +0900
+diff -ruN opencv-4.9.0/modules/core/include/opencv2/core/utils/instrumentation.hpp opencv-4.9.0-patch/modules/core/include/opencv2/core/utils/instrumentation.hpp
+--- opencv-4.9.0/modules/core/include/opencv2/core/utils/instrumentation.hpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/core/include/opencv2/core/utils/instrumentation.hpp	2023-12-31 10:47:15.700853336 +0900
 @@ -92,7 +92,7 @@
      double getTotalMs()   const { return ((double)m_ticksTotal / cv::getTickFrequency()) * 1000; }
      double getMeanMs()    const { return (((double)m_ticksTotal/m_counter) / cv::getTickFrequency()) * 1000; }
@@ -75,10 +75,10 @@ diff -ruN opencv-4.8.0/modules/core/include/opencv2/core/utils/instrumentation.h
  
  typedef Node InstrNode;
  
-diff -ruN opencv-4.8.0/modules/core/src/system.cpp opencv-4.8.0-patch/modules/core/src/system.cpp
---- opencv-4.8.0/modules/core/src/system.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/core/src/system.cpp	2023-07-09 19:32:55.473047376 +0900
-@@ -2440,7 +2440,7 @@
+diff -ruN opencv-4.9.0/modules/core/src/system.cpp opencv-4.9.0-patch/modules/core/src/system.cpp
+--- opencv-4.9.0/modules/core/src/system.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/core/src/system.cpp	2023-12-31 10:47:15.700853336 +0900
+@@ -2464,7 +2464,7 @@
  NodeData::~NodeData()
  {
  }
@@ -87,10 +87,10 @@ diff -ruN opencv-4.8.0/modules/core/src/system.cpp opencv-4.8.0-patch/modules/co
  {
      if(left.m_lineNum == right.m_lineNum && left.m_funName == right.m_funName && left.m_fileName == right.m_fileName)
      {
-diff -ruN opencv-4.8.0/modules/dnn/include/opencv2/dnn/dnn.hpp opencv-4.8.0-patch/modules/dnn/include/opencv2/dnn/dnn.hpp
---- opencv-4.8.0/modules/dnn/include/opencv2/dnn/dnn.hpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/dnn/include/opencv2/dnn/dnn.hpp	2023-07-09 19:32:55.474047376 +0900
-@@ -157,7 +157,7 @@
+diff -ruN opencv-4.9.0/modules/dnn/include/opencv2/dnn/dnn.hpp opencv-4.9.0-patch/modules/dnn/include/opencv2/dnn/dnn.hpp
+--- opencv-4.9.0/modules/dnn/include/opencv2/dnn/dnn.hpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/dnn/include/opencv2/dnn/dnn.hpp	2023-12-31 10:47:15.701853338 +0900
+@@ -155,7 +155,7 @@
     /**
      * @brief Derivatives of this class encapsulates functions of certain backends.
      */
@@ -99,7 +99,7 @@ diff -ruN opencv-4.8.0/modules/dnn/include/opencv2/dnn/dnn.hpp opencv-4.8.0-patc
      {
      public:
          explicit BackendNode(int backendId);
-@@ -382,7 +382,7 @@
+@@ -380,7 +380,7 @@
          * Layer don't use own Halide::Func members because we can have applied
          * layers fusing. In this way the fused function should be scheduled.
          */
@@ -108,7 +108,7 @@ diff -ruN opencv-4.8.0/modules/dnn/include/opencv2/dnn/dnn.hpp opencv-4.8.0-patc
                                            const std::vector &inputs,
                                            const std::vector &outputs,
                                            int targetId) const;
-@@ -411,7 +411,7 @@
+@@ -409,7 +409,7 @@
           * @param[in] top Next layer to be fused.
           * @returns True if fusion was performed.
           */
@@ -117,10 +117,10 @@ diff -ruN opencv-4.8.0/modules/dnn/include/opencv2/dnn/dnn.hpp opencv-4.8.0-patc
  
          /**
           * @brief Returns parameters of layers with channel-wise multiplication and addition.
-diff -ruN opencv-4.8.0/modules/dnn/src/int8layers/batch_norm_layer.cpp opencv-4.8.0-patch/modules/dnn/src/int8layers/batch_norm_layer.cpp
---- opencv-4.8.0/modules/dnn/src/int8layers/batch_norm_layer.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/dnn/src/int8layers/batch_norm_layer.cpp	2023-07-09 19:32:55.474047376 +0900
-@@ -58,7 +58,7 @@
+diff -ruN opencv-4.9.0/modules/dnn/src/int8layers/batch_norm_layer.cpp opencv-4.9.0-patch/modules/dnn/src/int8layers/batch_norm_layer.cpp
+--- opencv-4.9.0/modules/dnn/src/int8layers/batch_norm_layer.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/dnn/src/int8layers/batch_norm_layer.cpp	2023-12-31 10:47:15.701853338 +0900
+@@ -59,7 +59,7 @@
          zeropoint = output_zp;
      }
  
@@ -129,10 +129,10 @@ diff -ruN opencv-4.8.0/modules/dnn/src/int8layers/batch_norm_layer.cpp opencv-4.
      {
          Mat w_, b_;
          top->getScaleShift(w_, b_);
-diff -ruN opencv-4.8.0/modules/dnn/src/int8layers/convolution_layer.cpp opencv-4.8.0-patch/modules/dnn/src/int8layers/convolution_layer.cpp
---- opencv-4.8.0/modules/dnn/src/int8layers/convolution_layer.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/dnn/src/int8layers/convolution_layer.cpp	2023-07-09 19:32:55.475047375 +0900
-@@ -133,7 +133,7 @@
+diff -ruN opencv-4.9.0/modules/dnn/src/int8layers/convolution_layer.cpp opencv-4.9.0-patch/modules/dnn/src/int8layers/convolution_layer.cpp
+--- opencv-4.9.0/modules/dnn/src/int8layers/convolution_layer.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/dnn/src/int8layers/convolution_layer.cpp	2023-12-31 10:47:15.701853338 +0900
+@@ -134,7 +134,7 @@
                 (dilation.height == 1 && dilation.width == 1);
      }
  
@@ -141,7 +141,7 @@ diff -ruN opencv-4.8.0/modules/dnn/src/int8layers/convolution_layer.cpp opencv-4
      {
          Mat w, b;
          top->getScaleShift(w, b);
-@@ -290,7 +290,7 @@
+@@ -292,7 +292,7 @@
          return false;
      }
  
@@ -150,11 +150,11 @@ diff -ruN opencv-4.8.0/modules/dnn/src/int8layers/convolution_layer.cpp opencv-4
      {
          return BaseConvolutionLayerInt8Impl::tryFuse(top);
      }
-diff -ruN opencv-4.8.0/modules/dnn/src/int8layers/softmax_layer.cpp opencv-4.8.0-patch/modules/dnn/src/int8layers/softmax_layer.cpp
---- opencv-4.8.0/modules/dnn/src/int8layers/softmax_layer.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/dnn/src/int8layers/softmax_layer.cpp	2023-07-09 19:32:55.475047375 +0900
-@@ -93,7 +93,7 @@
-             (backendId == DNN_BACKEND_TIMVX && haveTimVX());
+diff -ruN opencv-4.9.0/modules/dnn/src/int8layers/softmax_layer.cpp opencv-4.9.0-patch/modules/dnn/src/int8layers/softmax_layer.cpp
+--- opencv-4.9.0/modules/dnn/src/int8layers/softmax_layer.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/dnn/src/int8layers/softmax_layer.cpp	2023-12-31 10:47:15.702853340 +0900
+@@ -95,7 +95,7 @@
+             backendId == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH;
      }
  
 -    virtual bool tryFuse(Ptr& top) CV_OVERRIDE
@@ -162,9 +162,9 @@ diff -ruN opencv-4.8.0/modules/dnn/src/int8layers/softmax_layer.cpp opencv-4.8.0
      {
          Ptr dequantize_layer = top.dynamicCast();
          return !dequantize_layer.empty() && preferableTarget != DNN_TARGET_OPENCL_FP16;
-diff -ruN opencv-4.8.0/modules/dnn/src/layer.cpp opencv-4.8.0-patch/modules/dnn/src/layer.cpp
---- opencv-4.8.0/modules/dnn/src/layer.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/dnn/src/layer.cpp	2023-07-09 19:32:55.476047375 +0900
+diff -ruN opencv-4.9.0/modules/dnn/src/layer.cpp opencv-4.9.0-patch/modules/dnn/src/layer.cpp
+--- opencv-4.9.0/modules/dnn/src/layer.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/dnn/src/layer.cpp	2023-12-31 10:47:15.702853340 +0900
 @@ -99,7 +99,7 @@
  }
  
@@ -174,9 +174,9 @@ diff -ruN opencv-4.8.0/modules/dnn/src/layer.cpp opencv-4.8.0-patch/modules/dnn/
  void Layer::getScaleShift(Mat& scale, Mat& shift) const
  {
      scale = Mat();
-diff -ruN opencv-4.8.0/modules/dnn/src/layers/batch_norm_layer.cpp opencv-4.8.0-patch/modules/dnn/src/layers/batch_norm_layer.cpp
---- opencv-4.8.0/modules/dnn/src/layers/batch_norm_layer.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/dnn/src/layers/batch_norm_layer.cpp	2023-07-09 19:32:55.476047375 +0900
+diff -ruN opencv-4.9.0/modules/dnn/src/layers/batch_norm_layer.cpp opencv-4.9.0-patch/modules/dnn/src/layers/batch_norm_layer.cpp
+--- opencv-4.9.0/modules/dnn/src/layers/batch_norm_layer.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/dnn/src/layers/batch_norm_layer.cpp	2023-12-31 10:47:15.702853340 +0900
 @@ -121,7 +121,7 @@
          shift = bias_;
      }
@@ -186,10 +186,10 @@ diff -ruN opencv-4.8.0/modules/dnn/src/layers/batch_norm_layer.cpp opencv-4.8.0-
      {
          Mat w, b;
          top->getScaleShift(w, b);
-diff -ruN opencv-4.8.0/modules/dnn/src/layers/convolution_layer.cpp opencv-4.8.0-patch/modules/dnn/src/layers/convolution_layer.cpp
---- opencv-4.8.0/modules/dnn/src/layers/convolution_layer.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/dnn/src/layers/convolution_layer.cpp	2023-07-09 19:32:55.477047374 +0900
-@@ -180,7 +180,7 @@
+diff -ruN opencv-4.9.0/modules/dnn/src/layers/convolution_layer.cpp opencv-4.9.0-patch/modules/dnn/src/layers/convolution_layer.cpp
+--- opencv-4.9.0/modules/dnn/src/layers/convolution_layer.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/dnn/src/layers/convolution_layer.cpp	2023-12-31 10:47:15.702853340 +0900
+@@ -177,7 +177,7 @@
                 (dilation.height == 1 && dilation.width == 1);
      }
  
@@ -198,7 +198,7 @@ diff -ruN opencv-4.8.0/modules/dnn/src/layers/convolution_layer.cpp opencv-4.8.0
      {
          if (fusedAdd)   // If the Conv layer has fused Add layer, it cannot fuse other layers.
              return false;
-@@ -203,7 +203,7 @@
+@@ -200,7 +200,7 @@
  
      virtual void fuseWeights(const Mat& w_, const Mat& b_) = 0;
  
@@ -207,7 +207,7 @@ diff -ruN opencv-4.8.0/modules/dnn/src/layers/convolution_layer.cpp opencv-4.8.0
                                        const std::vector &inputs,
                                        const std::vector &outputs,
                                        int targetId) const CV_OVERRIDE
-@@ -593,7 +593,7 @@
+@@ -565,7 +565,7 @@
          return fusedActivation;
      }
  
@@ -216,9 +216,9 @@ diff -ruN opencv-4.8.0/modules/dnn/src/layers/convolution_layer.cpp opencv-4.8.0
      {
          if (fusedAdd)   // If the Conv layer has fused Add layer, it cannot fuse other layers.
              return false;
-diff -ruN opencv-4.8.0/modules/dnn/src/layers/elementwise_layers.cpp opencv-4.8.0-patch/modules/dnn/src/layers/elementwise_layers.cpp
---- opencv-4.8.0/modules/dnn/src/layers/elementwise_layers.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/dnn/src/layers/elementwise_layers.cpp	2023-07-09 19:32:55.479047373 +0900
+diff -ruN opencv-4.9.0/modules/dnn/src/layers/elementwise_layers.cpp opencv-4.9.0-patch/modules/dnn/src/layers/elementwise_layers.cpp
+--- opencv-4.9.0/modules/dnn/src/layers/elementwise_layers.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/dnn/src/layers/elementwise_layers.cpp	2023-12-31 10:47:15.703853341 +0900
 @@ -217,7 +217,7 @@
  #endif
  
@@ -237,7 +237,7 @@ diff -ruN opencv-4.8.0/modules/dnn/src/layers/elementwise_layers.cpp opencv-4.8.
  
      void getScaleShift(Mat&, Mat&) const {}
  
-@@ -2346,7 +2346,7 @@
+@@ -2371,7 +2371,7 @@
      }
  #endif
  
@@ -246,9 +246,9 @@ diff -ruN opencv-4.8.0/modules/dnn/src/layers/elementwise_layers.cpp opencv-4.8.
      {
          if (power != 1.0f && shift != 0.0f)
              return false;
-diff -ruN opencv-4.8.0/modules/dnn/src/layers/lrn_layer.cpp opencv-4.8.0-patch/modules/dnn/src/layers/lrn_layer.cpp
---- opencv-4.8.0/modules/dnn/src/layers/lrn_layer.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/dnn/src/layers/lrn_layer.cpp	2023-07-09 19:32:55.479047373 +0900
+diff -ruN opencv-4.9.0/modules/dnn/src/layers/lrn_layer.cpp opencv-4.9.0-patch/modules/dnn/src/layers/lrn_layer.cpp
+--- opencv-4.9.0/modules/dnn/src/layers/lrn_layer.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/dnn/src/layers/lrn_layer.cpp	2023-12-31 10:47:15.703853341 +0900
 @@ -402,7 +402,7 @@
          return Ptr();
      }
@@ -258,9 +258,9 @@ diff -ruN opencv-4.8.0/modules/dnn/src/layers/lrn_layer.cpp opencv-4.8.0-patch/m
                                        const std::vector &inputs,
                                        const std::vector &outputs,
                                        int targetId) const CV_OVERRIDE
-diff -ruN opencv-4.8.0/modules/dnn/src/layers/not_implemented_layer.cpp opencv-4.8.0-patch/modules/dnn/src/layers/not_implemented_layer.cpp
---- opencv-4.8.0/modules/dnn/src/layers/not_implemented_layer.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/dnn/src/layers/not_implemented_layer.cpp	2023-07-09 19:32:55.480047373 +0900
+diff -ruN opencv-4.9.0/modules/dnn/src/layers/not_implemented_layer.cpp opencv-4.9.0-patch/modules/dnn/src/layers/not_implemented_layer.cpp
+--- opencv-4.9.0/modules/dnn/src/layers/not_implemented_layer.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/dnn/src/layers/not_implemented_layer.cpp	2023-12-31 10:47:15.703853341 +0900
 @@ -108,7 +108,7 @@
          CV_Error(Error::StsNotImplemented, msg);
      }
@@ -279,10 +279,10 @@ diff -ruN opencv-4.8.0/modules/dnn/src/layers/not_implemented_layer.cpp opencv-4
      {
          CV_Error(Error::StsNotImplemented, msg);
      }
-diff -ruN opencv-4.8.0/modules/dnn/src/layers/pooling_layer.cpp opencv-4.8.0-patch/modules/dnn/src/layers/pooling_layer.cpp
---- opencv-4.8.0/modules/dnn/src/layers/pooling_layer.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/dnn/src/layers/pooling_layer.cpp	2023-07-09 19:32:55.480047373 +0900
-@@ -1268,7 +1268,7 @@
+diff -ruN opencv-4.9.0/modules/dnn/src/layers/pooling_layer.cpp opencv-4.9.0-patch/modules/dnn/src/layers/pooling_layer.cpp
+--- opencv-4.9.0/modules/dnn/src/layers/pooling_layer.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/dnn/src/layers/pooling_layer.cpp	2023-12-31 10:47:15.704853343 +0900
+@@ -1281,7 +1281,7 @@
          return Ptr();
      }
  
@@ -291,10 +291,10 @@ diff -ruN opencv-4.8.0/modules/dnn/src/layers/pooling_layer.cpp opencv-4.8.0-pat
                                        const std::vector &inputs,
                                        const std::vector &outputs,
                                        int targetId) const CV_OVERRIDE
-diff -ruN opencv-4.8.0/modules/dnn/src/op_halide.cpp opencv-4.8.0-patch/modules/dnn/src/op_halide.cpp
---- opencv-4.8.0/modules/dnn/src/op_halide.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/dnn/src/op_halide.cpp	2023-07-09 19:32:55.481047372 +0900
-@@ -350,7 +350,7 @@
+diff -ruN opencv-4.9.0/modules/dnn/src/op_halide.cpp opencv-4.9.0-patch/modules/dnn/src/op_halide.cpp
+--- opencv-4.9.0/modules/dnn/src/op_halide.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/dnn/src/op_halide.cpp	2023-12-31 10:47:15.704853343 +0900
+@@ -351,7 +351,7 @@
  CV__DNN_INLINE_NS_BEGIN
  
  
@@ -303,9 +303,9 @@ diff -ruN opencv-4.8.0/modules/dnn/src/op_halide.cpp opencv-4.8.0-patch/modules/
                                   const std::vector &outputs, int targetId) const
  {
  #ifndef HAVE_HALIDE
-diff -ruN opencv-4.8.0/modules/flann/include/opencv2/flann/miniflann.hpp opencv-4.8.0-patch/modules/flann/include/opencv2/flann/miniflann.hpp
---- opencv-4.8.0/modules/flann/include/opencv2/flann/miniflann.hpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/flann/include/opencv2/flann/miniflann.hpp	2023-07-09 19:32:55.481047372 +0900
+diff -ruN opencv-4.9.0/modules/flann/include/opencv2/flann/miniflann.hpp opencv-4.9.0-patch/modules/flann/include/opencv2/flann/miniflann.hpp
+--- opencv-4.9.0/modules/flann/include/opencv2/flann/miniflann.hpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/flann/include/opencv2/flann/miniflann.hpp	2023-12-31 10:47:15.704853343 +0900
 @@ -91,10 +91,6 @@
                  std::vector& numValues) const;
  
@@ -317,9 +317,9 @@ diff -ruN opencv-4.8.0/modules/flann/include/opencv2/flann/miniflann.hpp opencv-
  };
  
  struct CV_EXPORTS KDTreeIndexParams : public IndexParams
-diff -ruN opencv-4.8.0/modules/imgproc/src/resize.cpp opencv-4.8.0-patch/modules/imgproc/src/resize.cpp
---- opencv-4.8.0/modules/imgproc/src/resize.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/imgproc/src/resize.cpp	2023-07-09 19:32:55.482047372 +0900
+diff -ruN opencv-4.9.0/modules/imgproc/src/resize.cpp opencv-4.9.0-patch/modules/imgproc/src/resize.cpp
+--- opencv-4.9.0/modules/imgproc/src/resize.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/imgproc/src/resize.cpp	2023-12-31 10:47:15.705853345 +0900
 @@ -858,11 +858,11 @@
      void(*hResize)(ET* src, int cn, int *ofst, fixedpoint* m, fixedpoint* dst, int dst_min, int dst_max, int dst_width);
      switch (cn)
@@ -337,9 +337,9 @@ diff -ruN opencv-4.8.0/modules/imgproc/src/resize.cpp opencv-4.8.0-patch/modules
      }
  
      interpolation interp_x(inv_scale_x, src_width, dst_width);
-diff -ruN opencv-4.8.0/modules/java/CMakeLists.txt opencv-4.8.0-patch/modules/java/CMakeLists.txt
---- opencv-4.8.0/modules/java/CMakeLists.txt	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/java/CMakeLists.txt	2023-07-09 19:33:43.666025596 +0900
+diff -ruN opencv-4.9.0/modules/java/CMakeLists.txt opencv-4.9.0-patch/modules/java/CMakeLists.txt
+--- opencv-4.9.0/modules/java/CMakeLists.txt	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/java/CMakeLists.txt	2023-12-31 10:47:15.705853345 +0900
 @@ -3,15 +3,6 @@
    add_subdirectory(generator)
  endif()
@@ -368,9 +368,9 @@ diff -ruN opencv-4.8.0/modules/java/CMakeLists.txt opencv-4.8.0-patch/modules/ja
  
  if(BUILD_TESTS)
    if(ANDROID)
-diff -ruN opencv-4.8.0/modules/java/common.cmake opencv-4.8.0-patch/modules/java/common.cmake
---- opencv-4.8.0/modules/java/common.cmake	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/java/common.cmake	2023-07-09 19:33:01.024044867 +0900
+diff -ruN opencv-4.9.0/modules/java/common.cmake opencv-4.9.0-patch/modules/java/common.cmake
+--- opencv-4.9.0/modules/java/common.cmake	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/java/common.cmake	2023-12-31 10:47:15.705853345 +0900
 @@ -1,10 +1,3 @@
 -if(ANDROID)
 -  ocv_update(OPENCV_JAVA_LIB_NAME_SUFFIX "${OPENCV_VERSION_MAJOR}")
@@ -382,9 +382,9 @@ diff -ruN opencv-4.8.0/modules/java/common.cmake opencv-4.8.0-patch/modules/java
  if(MSVC)
    ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4996)
  else()
-diff -ruN opencv-4.8.0/modules/java/generator/CMakeLists.txt opencv-4.8.0-patch/modules/java/generator/CMakeLists.txt
---- opencv-4.8.0/modules/java/generator/CMakeLists.txt	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/java/generator/CMakeLists.txt	2023-07-09 19:33:01.024044867 +0900
+diff -ruN opencv-4.9.0/modules/java/generator/CMakeLists.txt opencv-4.9.0-patch/modules/java/generator/CMakeLists.txt
+--- opencv-4.9.0/modules/java/generator/CMakeLists.txt	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/java/generator/CMakeLists.txt	2023-12-31 10:47:15.705853345 +0900
 @@ -5,9 +5,6 @@
  set(OPENCV_JAVA_SIGNATURES_FILE "${CMAKE_CURRENT_BINARY_DIR}/opencv_java_signatures.json" CACHE INTERNAL "")
  set(OPENCV_JAVA_BINDINGS_DIR "${CMAKE_CURRENT_BINARY_DIR}" CACHE INTERNAL "")
@@ -403,9 +403,9 @@ diff -ruN opencv-4.8.0/modules/java/generator/CMakeLists.txt opencv-4.8.0-patch/
  endif()
  unset(__config_str)
  
-diff -ruN opencv-4.8.0/modules/java/jni/CMakeLists.txt opencv-4.8.0-patch/modules/java/jni/CMakeLists.txt
---- opencv-4.8.0/modules/java/jni/CMakeLists.txt	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/java/jni/CMakeLists.txt	2023-07-09 19:33:01.025044867 +0900
+diff -ruN opencv-4.9.0/modules/java/jni/CMakeLists.txt opencv-4.9.0-patch/modules/java/jni/CMakeLists.txt
+--- opencv-4.9.0/modules/java/jni/CMakeLists.txt	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/java/jni/CMakeLists.txt	2023-12-31 10:47:15.705853345 +0900
 @@ -25,6 +25,9 @@
  elseif(APPLE)
    set(CMAKE_SHARED_MODULE_SUFFIX ".dylib")  # Java is not able to load .so files
@@ -425,9 +425,9 @@ diff -ruN opencv-4.8.0/modules/java/jni/CMakeLists.txt opencv-4.8.0-patch/module
  # Additional target properties
  set_target_properties(${the_module} PROPERTIES
      OUTPUT_NAME "${the_module}${OPENCV_JAVA_LIB_NAME_SUFFIX}"
-diff -ruN opencv-4.8.0/modules/stitching/include/opencv2/stitching.hpp opencv-4.8.0-patch/modules/stitching/include/opencv2/stitching.hpp
---- opencv-4.8.0/modules/stitching/include/opencv2/stitching.hpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/stitching/include/opencv2/stitching.hpp	2023-07-09 19:33:01.025044867 +0900
+diff -ruN opencv-4.9.0/modules/stitching/include/opencv2/stitching.hpp opencv-4.9.0-patch/modules/stitching/include/opencv2/stitching.hpp
+--- opencv-4.9.0/modules/stitching/include/opencv2/stitching.hpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/stitching/include/opencv2/stitching.hpp	2023-12-31 10:47:15.706853347 +0900
 @@ -351,12 +351,12 @@
  /**
   * @deprecated use Stitcher::create
@@ -443,9 +443,9 @@ diff -ruN opencv-4.8.0/modules/stitching/include/opencv2/stitching.hpp opencv-4.
  
  //! @} stitching
  
-diff -ruN opencv-4.8.0/modules/stitching/src/stitcher.cpp opencv-4.8.0-patch/modules/stitching/src/stitcher.cpp
---- opencv-4.8.0/modules/stitching/src/stitcher.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/stitching/src/stitcher.cpp	2023-07-09 19:33:01.025044867 +0900
+diff -ruN opencv-4.9.0/modules/stitching/src/stitcher.cpp opencv-4.9.0-patch/modules/stitching/src/stitcher.cpp
+--- opencv-4.9.0/modules/stitching/src/stitcher.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/stitching/src/stitcher.cpp	2023-12-31 10:47:15.706853347 +0900
 @@ -638,14 +638,14 @@
  }
  
@@ -463,9 +463,9 @@ diff -ruN opencv-4.8.0/modules/stitching/src/stitcher.cpp opencv-4.8.0-patch/mod
  {
      CV_INSTRUMENT_REGION();
  
-diff -ruN opencv-4.8.0/modules/video/src/tracking/detail/tracker_mil_state.hpp opencv-4.8.0-patch/modules/video/src/tracking/detail/tracker_mil_state.hpp
---- opencv-4.8.0/modules/video/src/tracking/detail/tracker_mil_state.hpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/video/src/tracking/detail/tracker_mil_state.hpp	2023-07-09 19:33:01.026044866 +0900
+diff -ruN opencv-4.9.0/modules/video/src/tracking/detail/tracker_mil_state.hpp opencv-4.9.0-patch/modules/video/src/tracking/detail/tracker_mil_state.hpp
+--- opencv-4.9.0/modules/video/src/tracking/detail/tracker_mil_state.hpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/video/src/tracking/detail/tracker_mil_state.hpp	2023-12-31 10:47:15.706853347 +0900
 @@ -20,7 +20,7 @@
      /**
      * Implementation of the target state for TrackerStateEstimatorMILBoosting
@@ -475,9 +475,9 @@ diff -ruN opencv-4.8.0/modules/video/src/tracking/detail/tracker_mil_state.hpp o
      {
  
      public:
-diff -ruN opencv-4.8.0/modules/video/src/tracking/detail/tracking_online_mil.cpp opencv-4.8.0-patch/modules/video/src/tracking/detail/tracking_online_mil.cpp
---- opencv-4.8.0/modules/video/src/tracking/detail/tracking_online_mil.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/video/src/tracking/detail/tracking_online_mil.cpp	2023-07-09 19:33:01.026044866 +0900
+diff -ruN opencv-4.9.0/modules/video/src/tracking/detail/tracking_online_mil.cpp opencv-4.9.0-patch/modules/video/src/tracking/detail/tracking_online_mil.cpp
+--- opencv-4.9.0/modules/video/src/tracking/detail/tracking_online_mil.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/video/src/tracking/detail/tracking_online_mil.cpp	2023-12-31 10:47:15.706853347 +0900
 @@ -339,7 +339,7 @@
      return float(log_p1 - log_p0);
  }
@@ -487,9 +487,9 @@ diff -ruN opencv-4.8.0/modules/video/src/tracking/detail/tracking_online_mil.cpp
  {
      std::vector res(x.rows);
  
-diff -ruN opencv-4.8.0/modules/video/src/tracking/detail/tracking_online_mil.hpp opencv-4.8.0-patch/modules/video/src/tracking/detail/tracking_online_mil.hpp
---- opencv-4.8.0/modules/video/src/tracking/detail/tracking_online_mil.hpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/video/src/tracking/detail/tracking_online_mil.hpp	2023-07-09 19:33:01.026044866 +0900
+diff -ruN opencv-4.9.0/modules/video/src/tracking/detail/tracking_online_mil.hpp opencv-4.9.0-patch/modules/video/src/tracking/detail/tracking_online_mil.hpp
+--- opencv-4.9.0/modules/video/src/tracking/detail/tracking_online_mil.hpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/video/src/tracking/detail/tracking_online_mil.hpp	2023-12-31 10:47:15.706853347 +0900
 @@ -49,7 +49,7 @@
      uint _counter;
  };
@@ -499,10 +499,10 @@ diff -ruN opencv-4.8.0/modules/video/src/tracking/detail/tracking_online_mil.hpp
  {
  public:
      float _mu0, _mu1, _sig0, _sig1;
-diff -ruN opencv-4.8.0/modules/videoio/src/cap_v4l.cpp opencv-4.8.0-patch/modules/videoio/src/cap_v4l.cpp
---- opencv-4.8.0/modules/videoio/src/cap_v4l.cpp	2023-06-28 20:53:33.000000000 +0900
-+++ opencv-4.8.0-patch/modules/videoio/src/cap_v4l.cpp	2023-07-09 19:33:01.027044866 +0900
-@@ -1912,8 +1912,6 @@
+diff -ruN opencv-4.9.0/modules/videoio/src/cap_v4l.cpp opencv-4.9.0-patch/modules/videoio/src/cap_v4l.cpp
+--- opencv-4.9.0/modules/videoio/src/cap_v4l.cpp	2023-12-28 01:46:55.000000000 +0900
++++ opencv-4.9.0-patch/modules/videoio/src/cap_v4l.cpp	2023-12-31 10:47:15.707853349 +0900
+@@ -1944,8 +1944,6 @@
          return V4L2_CID_FOCUS_ABSOLUTE;
      case cv::CAP_PROP_GUID:
          return -1;
@@ -511,7 +511,7 @@ diff -ruN opencv-4.8.0/modules/videoio/src/cap_v4l.cpp opencv-4.8.0-patch/module
      case cv::CAP_PROP_BACKLIGHT:
          return V4L2_CID_BACKLIGHT_COMPENSATION;
      case cv::CAP_PROP_PAN:
-@@ -1930,10 +1928,6 @@
+@@ -1962,10 +1960,6 @@
          return -1;
      case cv::CAP_PROP_AUTOFOCUS:
          return V4L2_CID_FOCUS_AUTO;
diff --git a/opencv/platform/gpu/pom.xml b/opencv/platform/gpu/pom.xml
index 93de3e48906..9796930ea25 100644
--- a/opencv/platform/gpu/pom.xml
+++ b/opencv/platform/gpu/pom.xml
@@ -12,7 +12,7 @@
 
   org.bytedeco
   opencv-platform-gpu
-  4.8.1-${project.parent.version}
+  4.9.0-${project.parent.version}
   JavaCPP Presets Platform GPU for OpenCV
 
   
diff --git a/opencv/platform/pom.xml b/opencv/platform/pom.xml
index 89e72423809..f74cb9c0f23 100644
--- a/opencv/platform/pom.xml
+++ b/opencv/platform/pom.xml
@@ -12,7 +12,7 @@
 
   org.bytedeco
   opencv-platform
-  4.8.1-${project.parent.version}
+  4.9.0-${project.parent.version}
   JavaCPP Presets Platform for OpenCV
 
   
diff --git a/opencv/pom.xml b/opencv/pom.xml
index d347c407844..5c16539f9bf 100644
--- a/opencv/pom.xml
+++ b/opencv/pom.xml
@@ -11,7 +11,7 @@
 
   org.bytedeco
   opencv
-  4.8.1-${project.parent.version}
+  4.9.0-${project.parent.version}
   JavaCPP Presets for OpenCV
 
   
diff --git a/opencv/samples/pom.xml b/opencv/samples/pom.xml
index 2cf99a9a5d7..dd62746c1e7 100644
--- a/opencv/samples/pom.xml
+++ b/opencv/samples/pom.xml
@@ -12,14 +12,14 @@
         
             org.bytedeco
             opencv-platform
-            4.8.1-1.5.10-SNAPSHOT
+            4.9.0-1.5.10-SNAPSHOT
         
 
         
         
             org.bytedeco
             opencv-platform-gpu
-            4.8.1-1.5.10-SNAPSHOT
+            4.9.0-1.5.10-SNAPSHOT
         
 
         
diff --git a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_calib3d.java b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_calib3d.java
index 4cd37569178..6475b6b50b0 100644
--- a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_calib3d.java
+++ b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_calib3d.java
@@ -656,7 +656,8 @@ and pincushion distortion ({@code  1 + k_1 r^2 + k_2 r^4 + k_3 r^6 } monotonical
        CALIB_CB_EXHAUSTIVE      = 16,
        CALIB_CB_ACCURACY        = 32,
        CALIB_CB_LARGER          = 64,
-       CALIB_CB_MARKER          = 128;
+       CALIB_CB_MARKER          = 128,
+       CALIB_CB_PLAIN           = 256;
 
 /** enum cv:: */
 public static final int CALIB_CB_SYMMETRIC_GRID  = 1,
@@ -898,7 +899,7 @@ noise is rather small, use the default method (method=0).
 It optionally returns three rotation matrices, one for each axis, and the three Euler angles in
 degrees (as the return value) that could be used in OpenGL. Note, there is always more than one
 sequence of rotations about the three principal axes that results in the same orientation of an
-object, e.g. see \cite Slabaugh . Returned tree rotation matrices and corresponding three Euler angles
+object, e.g. see \cite Slabaugh . Returned three rotation matrices and corresponding three Euler angles
 are only one of the possible solutions.
  */
 @Namespace("cv") public static native @ByVal @Cast("cv::Vec3d*") Point3d RQDecomp3x3( @ByVal Mat src, @ByVal Mat mtxR, @ByVal Mat mtxQ,
@@ -935,7 +936,7 @@ noise is rather small, use the default method (method=0).
 It optionally returns three rotation matrices, one for each axis, and three Euler angles that could
 be used in OpenGL. Note, there is always more than one sequence of rotations about the three
 principal axes that results in the same orientation of an object, e.g. see \cite Slabaugh . Returned
-tree rotation matrices and corresponding three Euler angles are only one of the possible solutions.
+three rotation matrices and corresponding three Euler angles are only one of the possible solutions.
 

The function is based on #RQDecomp3x3 . */ @@ -1649,6 +1650,10 @@ and white, rather than a fixed threshold level (computed from the average image - \ref CALIB_CB_FAST_CHECK Run a fast check on the image that looks for chessboard corners, and shortcut the call if none is found. This can drastically speed up the call in the degenerate condition when no chessboard is observed. +- \ref CALIB_CB_PLAIN All other flags are ignored. The input image is taken as is. +No image processing is done to improve to find the checkerboard. This has the effect of speeding up the +execution of the function but could lead to not recognizing the checkerboard if the image +is not previously binarized in the appropriate manner.

The function attempts to determine whether the input image is a view of the chessboard pattern and locate the internal chessboard corners. The function returns a non-zero value if all of the corners @@ -2044,6 +2049,10 @@ the projected (using the current estimates for camera parameters and the poses) {@code f_y} (ratios of 10:1 or more)), then you are probably using patternSize=cvSize(rows,cols) instead of using patternSize=cvSize(cols,rows) in \ref findChessboardCorners.

+\note + The function may throw exceptions, if unsupported combination of parameters is provided or + the system is underconstrained. +

@see calibrateCameraRO, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort diff --git a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_core.java b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_core.java index 554230bb0eb..e43f27d8669 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_core.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_core.java @@ -539,6 +539,8 @@ public class opencv_core extends org.bytedeco.opencv.helper.opencv_core { public static final int CV_CPU_NEON = 100; public static final int CV_CPU_NEON_DOTPROD = 101; +public static final int CV_CPU_NEON_FP16 = 102; +public static final int CV_CPU_NEON_BF16 = 103; public static final int CV_CPU_MSA = 150; @@ -549,7 +551,8 @@ public class opencv_core extends org.bytedeco.opencv.helper.opencv_core { public static final int CV_CPU_RVV = 210; -public static final int CV_CPU_LASX = 230; +public static final int CV_CPU_LSX = 230; +public static final int CV_CPU_LASX = 231; // CPU features groups public static final int CV_CPU_AVX512_SKX = 256; @@ -599,6 +602,8 @@ public class opencv_core extends org.bytedeco.opencv.helper.opencv_core { CPU_NEON = 100, CPU_NEON_DOTPROD = 101, + CPU_NEON_FP16 = 102, + CPU_NEON_BF16 = 103, CPU_MSA = 150, @@ -609,7 +614,8 @@ public class opencv_core extends org.bytedeco.opencv.helper.opencv_core { CPU_RVV = 210, - CPU_LASX = 230, + CPU_LSX = 230, + CPU_LASX = 231, /** Skylake-X with AVX-512F/CD/BW/DQ/VL */ CPU_AVX512_SKX = 256, @@ -1673,7 +1679,7 @@ public class opencv_core extends org.bytedeco.opencv.helper.opencv_core { // nothing, intrinsics/asm code is not supported // #else // #if ((defined _MSC_VER && defined _M_X64) -// || (defined __GNUC__ && defined __x86_64__ && defined __SSE2__)) +// || (defined __GNUC__ && defined __SSE2__)) // && !defined(OPENCV_SKIP_INCLUDE_EMMINTRIN_H) // #include // #endif @@ -2007,8 +2013,8 @@ public class opencv_core extends org.bytedeco.opencv.helper.opencv_core { // #define OPENCV_VERSION_HPP public static final int CV_VERSION_MAJOR = 4; -public static final int CV_VERSION_MINOR = 8; -public static final int CV_VERSION_REVISION = 1; +public static final int CV_VERSION_MINOR = 9; +public static final int CV_VERSION_REVISION = 0; public static final String CV_VERSION_STATUS = ""; // #define CVAUX_STR_EXP(__A) #__A @@ -7268,8 +7274,8 @@ CV_CALL macro calls CV (or IPL) function, checks error status and /** \brief Finds out if there is any intersection between two rectangles * * mainly useful for language bindings - * @param rect1 First rectangle - * @param rect2 Second rectangle + * @param a First rectangle + * @param b Second rectangle * @return the area of the intersection */ @Namespace("cv") public static native double rectangleIntersectionArea(@Const @ByRef Rect2d a, @Const @ByRef Rect2d b); @@ -7728,6 +7734,9 @@ pixels. This is not what filtering functions based on it do (they extrapolate pi array, be it src1, src2 or both. \note Saturation is not applied when the output array has the depth CV_32S. You may even get result of an incorrect sign in the case of overflow. +\note (Python) Be careful to difference behaviour between src1/src2 are single number and they are tuple/array. +{@code add(src,X)} means {@code add(src,(X,X,X,X))}. +{@code add(src,(X,))} means {@code add(src,(X,0,0,0))}. @param src1 first input array or a scalar. @param src2 second input array or a scalar. @param dst output array that has the same size and number of channels as the input array(s); the @@ -7776,6 +7785,9 @@ pixels. This is not what filtering functions based on it do (they extrapolate pi case the output array will have the same depth as the input array, be it src1, src2 or both. \note Saturation is not applied when the output array has the depth CV_32S. You may even get result of an incorrect sign in the case of overflow. +\note (Python) Be careful to difference behaviour between src1/src2 are single number and they are tuple/array. +{@code subtract(src,X)} means {@code subtract(src,(X,X,X,X))}. +{@code subtract(src,(X,))} means {@code subtract(src,(X,0,0,0))}. @param src1 first input array or a scalar. @param src2 second input array or a scalar. @param dst output array of the same size and the same number of channels as the input array. @@ -7808,6 +7820,9 @@ pixels. This is not what filtering functions based on it do (they extrapolate pi \note Saturation is not applied when the output array has the depth CV_32S. You may even get result of an incorrect sign in the case of overflow. +\note (Python) Be careful to difference behaviour between src1/src2 are single number and they are tuple/array. +{@code multiply(src,X)} means {@code multiply(src,(X,X,X,X))}. +{@code multiply(src,(X,))} means {@code multiply(src,(X,0,0,0))}. @param src1 first input array. @param src2 second input array of the same size and the same type as src1. @param dst output array of the same size and type as src1. @@ -7846,6 +7861,9 @@ For integer types when src2(I) is zero, dst(I) will also be zero.

\note Saturation is not applied when the output array has the depth CV_32S. You may even get result of an incorrect sign in the case of overflow. +\note (Python) Be careful to difference behaviour between src1/src2 are single number and they are tuple/array. +{@code divide(src,X)} means {@code divide(src,(X,X,X,X))}. +{@code divide(src,(X,))} means {@code divide(src,(X,0,0,0))}. @param src1 first input array. @param src2 second input array of the same size and type as src1. @param scale scalar factor. @@ -8742,6 +8760,15 @@ otherwise, its type will be CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), src.channels()). @Namespace("cv") public static native void flipND(@ByVal UMat src, @ByVal UMat dst, int axis); @Namespace("cv") public static native void flipND(@ByVal GpuMat src, @ByVal GpuMat dst, int axis); +/** \brief Broadcast the given Mat to the given shape. + * @param src input array + * @param shape target shape. Should be a list of CV_32S numbers. Note that negative values are not supported. + * @param dst output array that has the given shape + */ +@Namespace("cv") public static native void broadcast(@ByVal Mat src, @ByVal Mat shape, @ByVal Mat dst); +@Namespace("cv") public static native void broadcast(@ByVal UMat src, @ByVal UMat shape, @ByVal UMat dst); +@Namespace("cv") public static native void broadcast(@ByVal GpuMat src, @ByVal GpuMat shape, @ByVal GpuMat dst); + /** enum cv::RotateFlags */ public static final int /**Rotate 90 degrees clockwise */ @@ -9097,6 +9124,9 @@ otherwise, its type will be CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), src.channels()). multi-channel arrays, each channel is processed independently. \note Saturation is not applied when the arrays have the depth CV_32S. You may even get a negative value in the case of overflow. +\note (Python) Be careful to difference behaviour between src1/src2 are single number and they are tuple/array. +{@code absdiff(src,X)} means {@code absdiff(src,(X,X,X,X))}. +{@code absdiff(src,(X,))} means {@code absdiff(src,(X,0,0,0))}. @param src1 first input array or a scalar. @param src2 second input array or a scalar. @param dst output array that has the same size and type as input arrays. @@ -9423,7 +9453,7 @@ function either returns false (when quiet=true) or throws an exception. double minVal/*=-DBL_MAX*/, double maxVal/*=DBL_MAX*/); @Namespace("cv") public static native @Cast("bool") boolean checkRange(@ByVal GpuMat a); -/** \brief converts NaNs to the given number +/** \brief Replaces NaNs by given number @param a input/output matrix (CV_32F type). @param val value to convert the NaNs */ diff --git a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_dnn.java b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_dnn.java index b677fa56c99..cb95971dd32 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_dnn.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_dnn.java @@ -126,7 +126,7 @@ Functionality of this module is designed only for forward pass computations (i.e // #define OPENCV_DNN_VERSION_HPP /** Use with major OpenCV version only. */ -public static final int OPENCV_DNN_API_VERSION = 20230620; +public static final int OPENCV_DNN_API_VERSION = 20231225; // #if !defined CV_DOXYGEN && !defined CV_STATIC_ANALYSIS && !defined CV_DNN_DONT_ADD_INLINE_NS // #define CV__DNN_INLINE_NS __CV_CAT(dnn4_v, OPENCV_DNN_API_VERSION) @@ -267,6 +267,9 @@ Functionality of this module is designed only for forward pass computations (i.e // Targeting ../opencv_dnn/RNNLayer.java +// Targeting ../opencv_dnn/EinsumLayer.java + + // Targeting ../opencv_dnn/BaseConvolutionLayer.java @@ -288,6 +291,9 @@ Functionality of this module is designed only for forward pass computations (i.e // Targeting ../opencv_dnn/GatherLayer.java +// Targeting ../opencv_dnn/GatherElementsLayer.java + + // Targeting ../opencv_dnn/PoolingLayer.java @@ -567,6 +573,21 @@ Functionality of this module is designed only for forward pass computations (i.e // Targeting ../opencv_dnn/LayerNormLayer.java +// Targeting ../opencv_dnn/GemmLayer.java + + +// Targeting ../opencv_dnn/MatMulLayer.java + + +// Targeting ../opencv_dnn/ExpandLayer.java + + +// Targeting ../opencv_dnn/InstanceNormLayer.java + + +// Targeting ../opencv_dnn/AttentionLayer.java + + /** \} * \} */ @@ -642,9 +663,7 @@ Functionality of this module is designed only for forward pass computations (i.e */ /** enum cv::dnn::Backend */ public static final int - /** DNN_BACKEND_DEFAULT equals to DNN_BACKEND_INFERENCE_ENGINE if - * OpenCV is built with Intel OpenVINO or - * DNN_BACKEND_OPENCV otherwise. */ + /** DNN_BACKEND_DEFAULT equals to OPENCV_DNN_BACKEND_DEFAULT, which can be defined using CMake or a configuration parameter */ DNN_BACKEND_DEFAULT = 0, DNN_BACKEND_HALIDE = 1, /** Intel OpenVINO computational backend @@ -907,14 +926,14 @@ Functionality of this module is designed only for forward pass computations (i.e * * {@code *.pb} (TensorFlow, https://www.tensorflow.org/) * * {@code *.t7} | {@code *.net} (Torch, http://torch.ch/) * * {@code *.weights} (Darknet, https://pjreddie.com/darknet/) - * * {@code *.bin} (DLDT, https://software.intel.com/openvino-toolkit) + * * {@code *.bin} | {@code *.onnx} (OpenVINO, https://software.intel.com/openvino-toolkit) * * {@code *.onnx} (ONNX, https://onnx.ai/) * @param config [in] Text file contains network configuration. It could be a * file with the following extensions: * * {@code *.prototxt} (Caffe, http://caffe.berkeleyvision.org/) * * {@code *.pbtxt} (TensorFlow, https://www.tensorflow.org/) * * {@code *.cfg} (Darknet, https://pjreddie.com/darknet/) - * * {@code *.xml} (DLDT, https://software.intel.com/openvino-toolkit) + * * {@code *.xml} (OpenVINO, https://software.intel.com/openvino-toolkit) * @param framework [in] Explicit framework name tag to determine a format. * @return Net object. * @@ -969,8 +988,10 @@ Functionality of this module is designed only for forward pass computations (i.e * Networks imported from Intel's Model Optimizer are launched in Intel's Inference Engine * backend. */ - @Namespace("cv::dnn") public static native @ByVal Net readNetFromModelOptimizer(@Str BytePointer xml, @Str BytePointer bin); - @Namespace("cv::dnn") public static native @ByVal Net readNetFromModelOptimizer(@Str String xml, @Str String bin); + @Namespace("cv::dnn") public static native @ByVal Net readNetFromModelOptimizer(@Str BytePointer xml, @Str BytePointer bin/*=""*/); + @Namespace("cv::dnn") public static native @ByVal Net readNetFromModelOptimizer(@Str BytePointer xml); + @Namespace("cv::dnn") public static native @ByVal Net readNetFromModelOptimizer(@Str String xml, @Str String bin/*=""*/); + @Namespace("cv::dnn") public static native @ByVal Net readNetFromModelOptimizer(@Str String xml); /** \brief Load a network from Intel's Model Optimizer intermediate representation. * @param bufferModelConfig [in] Buffer contains XML configuration with network's topology. diff --git a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_highgui.java b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_highgui.java index 86385a6ac44..3b332b4268d 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_highgui.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_highgui.java @@ -726,9 +726,7 @@ int main(int argc, char *argv[]) memory usage. For a simple program, you do not really have to call these functions because all the resources and windows of the application are closed automatically by the operating system upon exit.

-\note -

-Qt backend supports additional flags: +\note Qt backend supports additional flags: - **WINDOW_NORMAL or WINDOW_AUTOSIZE:** WINDOW_NORMAL enables you to resize the window, whereas WINDOW_AUTOSIZE adjusts automatically the window size to fit the displayed image (see imshow ), and you cannot change the window size manually. @@ -765,9 +763,7 @@ displayed image (see imshow ), and you cannot change the window size manually. /** \brief Similar to #waitKey, but returns full key code.

-\note -

-Key code is implementation specific and depends on used backend: QT/GTK/Win32/etc +\note Key code is implementation specific and depends on used backend: QT/GTK/Win32/etc

*/ @Namespace("cv") public static native int waitKeyEx(int delay/*=0*/); @@ -836,11 +832,7 @@ If you need to show an image that is bigger than the screen resolution, you will for image display). **waitKey(25)** will display a frame and wait approximately 25 ms for a key press (suitable for displaying a video frame-by-frame). To remove the window, use cv::destroyWindow.

-\note -

-[__Windows Backend Only__] Pressing Ctrl+C will copy the image to the clipboard. -

-[__Windows Backend Only__] Pressing Ctrl+S will show a dialog to save the image. +\note [__Windows Backend Only__] Pressing Ctrl+C will copy the image to the clipboard. Pressing Ctrl+S will show a dialog to save the image.

@param winname Name of the window. @param mat Image to be shown. @@ -854,10 +846,8 @@ If you need to show an image that is bigger than the screen resolution, you will /** \brief Resizes the window to the specified size

-\note -

-- The specified window size is for the image area. Toolbars are not counted. -- Only windows created without cv::WINDOW_AUTOSIZE flag can be resized. +\note The specified window size is for the image area. Toolbars are not counted. +Only windows created without cv::WINDOW_AUTOSIZE flag can be resized.

@param winname Window name. @param width The new window width. @@ -949,9 +939,7 @@ This program demonstrates using mouse events and how to make and use a mask imag respectively. For cv::EVENT_MOUSEHWHEEL, where available, positive and negative values mean right and left scrolling, respectively.

-\note -

-Mouse-wheel events are currently supported only on Windows and Cocoa +\note Mouse-wheel events are currently supported only on Windows and Cocoa.

@param flags The mouse callback flags parameter. */ @@ -1044,9 +1032,7 @@ The function createTrackbar creates a trackbar (a slider or range control) with the callback function onChange to be called on the trackbar position change. The created trackbar is displayed in the specified window winname.

-\note -

-[__Qt Backend Only__] winname can be empty if the trackbar should be attached to the +\note [__Qt Backend Only__] winname can be empty if the trackbar should be attached to the control panel.

Clicking the label of each trackbar enables editing the trackbar values manually. @@ -1104,9 +1090,7 @@ position and the second parameter is the user data (see the next parameter). If

The function returns the current position of the specified trackbar.

-\note -

-[__Qt Backend Only__] winname can be empty if the trackbar is attached to the control +\note [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control panel.

@param trackbarname Name of the trackbar. @@ -1119,9 +1103,7 @@ position and the second parameter is the user data (see the next parameter). If

The function sets the position of the specified trackbar in the specified window.

-\note -

-[__Qt Backend Only__] winname can be empty if the trackbar is attached to the control +\note [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control panel.

@param trackbarname Name of the trackbar. @@ -1135,9 +1117,7 @@ position and the second parameter is the user data (see the next parameter). If

The function sets the maximum position of the specified trackbar in the specified window.

-\note -

-[__Qt Backend Only__] winname can be empty if the trackbar is attached to the control +\note [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control panel.

@param trackbarname Name of the trackbar. @@ -1151,9 +1131,7 @@ position and the second parameter is the user data (see the next parameter). If

The function sets the minimum position of the specified trackbar in the specified window.

-\note -

-[__Qt Backend Only__] winname can be empty if the trackbar is attached to the control +\note [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control panel.

@param trackbarname Name of the trackbar. diff --git a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_imgcodecs.java b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_imgcodecs.java index 2a01340f9b6..1baf613c5eb 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_imgcodecs.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_imgcodecs.java @@ -140,15 +140,15 @@ public class opencv_imgcodecs extends org.bytedeco.opencv.helper.opencv_imgcodec /** For PPM, PGM, or PBM, it can be a binary format flag, 0 or 1. Default value is 1. */ IMWRITE_PXM_BINARY = 32, /** override EXR storage type (FLOAT (FP32) is default) */ - IMWRITE_EXR_TYPE = (3 << 4) + 0, /* 48 */ + IMWRITE_EXR_TYPE = (3 << 4) + 0, /** override EXR compression type (ZIP_COMPRESSION = 3 is default) */ - IMWRITE_EXR_COMPRESSION = (3 << 4) + 1, /* 49 */ + IMWRITE_EXR_COMPRESSION = (3 << 4) + 1, /** override EXR DWA compression level (45 is default) */ - IMWRITE_EXR_DWA_COMPRESSION_LEVEL = (3 << 4) + 2, /* 50 */ + IMWRITE_EXR_DWA_COMPRESSION_LEVEL = (3 << 4) + 2, /** For WEBP, it can be a quality from 1 to 100 (the higher is the better). By default (without any parameter) and for quality above 100 the lossless compression is used. */ IMWRITE_WEBP_QUALITY = 64, /** specify HDR compression */ - IMWRITE_HDR_COMPRESSION = (5 << 4) + 0, /* 80 */ + IMWRITE_HDR_COMPRESSION = (5 << 4) + 0, /** For PAM, sets the TUPLETYPE field to the corresponding string value that is defined for the format */ IMWRITE_PAM_TUPLETYPE = 128, /** For TIFF, use to specify which DPI resolution unit to set; see libtiff documentation for valid values */ @@ -464,8 +464,8 @@ contains invalid data, the function returns an empty matrix ( Mat::data==NULL ). @Namespace("cv") public static native @ByVal Mat imdecode( @ByVal GpuMat buf, int flags ); /** \overload -@param buf -@param flags +@param buf Input array or vector of bytes. +@param flags The same flags as in cv::imread, see cv::ImreadModes. @param dst The optional output placeholder for the decoded matrix. It can save the image reallocations when the function is called repeatedly for images of the same size. */ @@ -484,9 +484,13 @@ contains invalid data, the function returns an empty matrix ( Mat::data==NULL ). @param buf Input array or vector of bytes. @param flags The same flags as in cv::imread, see cv::ImreadModes. @param mats A vector of Mat objects holding each page, if more than one. +@param range A continuous selection of pages. */ +@Namespace("cv") public static native @Cast("bool") boolean imdecodemulti(@ByVal Mat buf, int flags, @ByRef MatVector mats, @Const @ByRef(nullValue = "cv::Range::all()") Range range); @Namespace("cv") public static native @Cast("bool") boolean imdecodemulti(@ByVal Mat buf, int flags, @ByRef MatVector mats); +@Namespace("cv") public static native @Cast("bool") boolean imdecodemulti(@ByVal UMat buf, int flags, @ByRef MatVector mats, @Const @ByRef(nullValue = "cv::Range::all()") Range range); @Namespace("cv") public static native @Cast("bool") boolean imdecodemulti(@ByVal UMat buf, int flags, @ByRef MatVector mats); +@Namespace("cv") public static native @Cast("bool") boolean imdecodemulti(@ByVal GpuMat buf, int flags, @ByRef MatVector mats, @Const @ByRef(nullValue = "cv::Range::all()") Range range); @Namespace("cv") public static native @Cast("bool") boolean imdecodemulti(@ByVal GpuMat buf, int flags, @ByRef MatVector mats); /** \brief Encodes an image into a memory buffer. diff --git a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_imgproc.java b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_imgproc.java index 1eb422d85a5..bc82b4e3fab 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_imgproc.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_imgproc.java @@ -853,6 +853,10 @@ public static native void cvResize( @Const CvArr src, CvArr dst, int interpolation/*=CV_INTER_LINEAR*/); public static native void cvResize( @Const CvArr src, CvArr dst); +// #ifdef _MSC_VER +// #pragma warning( push ) +// #pragma warning( disable: 5054 ) +// #endif /** \brief Warps image with affine transform \note ::cvGetQuadrangleSubPix is similar to ::cvWarpAffine, but the outliers are extrapolated using replication border mode. @@ -961,6 +965,10 @@ public static native void cvLinearPolar( @Const CvArr src, CvArr dst, public static native void cvLinearPolar( @Const CvArr src, CvArr dst, @ByVal @Cast("CvPoint2D32f*") float[] center, double maxRadius); +// #ifdef _MSC_VER +// #pragma warning( pop ) +// #endif + /** \brief Returns a structuring element of the specified size and shape for morphological operations.

\note the created structuring element IplConvKernel\* element must be released in the end using @@ -3201,7 +3209,41 @@ represented by starting and ending points, and the matrix must be (the created s /** equivalent to GBRG Bayer pattern */ COLOR_BayerGR2RGBA = COLOR_BayerGB2BGRA, - COLOR_COLORCVT_MAX = 143; + /** RGB to YUV 4:2:2 family */ + + COLOR_RGB2YUV_UYVY = 143, + COLOR_BGR2YUV_UYVY = 144, + COLOR_RGB2YUV_Y422 = COLOR_RGB2YUV_UYVY, + COLOR_BGR2YUV_Y422 = COLOR_BGR2YUV_UYVY, + COLOR_RGB2YUV_UYNV = COLOR_RGB2YUV_UYVY, + COLOR_BGR2YUV_UYNV = COLOR_BGR2YUV_UYVY, + + COLOR_RGBA2YUV_UYVY = 145, + COLOR_BGRA2YUV_UYVY = 146, + COLOR_RGBA2YUV_Y422 = COLOR_RGBA2YUV_UYVY, + COLOR_BGRA2YUV_Y422 = COLOR_BGRA2YUV_UYVY, + COLOR_RGBA2YUV_UYNV = COLOR_RGBA2YUV_UYVY, + COLOR_BGRA2YUV_UYNV = COLOR_BGRA2YUV_UYVY, + + COLOR_RGB2YUV_YUY2 = 147, + COLOR_BGR2YUV_YUY2 = 148, + COLOR_RGB2YUV_YVYU = 149, + COLOR_BGR2YUV_YVYU = 150, + COLOR_RGB2YUV_YUYV = COLOR_RGB2YUV_YUY2, + COLOR_BGR2YUV_YUYV = COLOR_BGR2YUV_YUY2, + COLOR_RGB2YUV_YUNV = COLOR_RGB2YUV_YUY2, + COLOR_BGR2YUV_YUNV = COLOR_BGR2YUV_YUY2, + + COLOR_RGBA2YUV_YUY2 = 151, + COLOR_BGRA2YUV_YUY2 = 152, + COLOR_RGBA2YUV_YVYU = 153, + COLOR_BGRA2YUV_YVYU = 154, + COLOR_RGBA2YUV_YUYV = COLOR_RGBA2YUV_YUY2, + COLOR_BGRA2YUV_YUYV = COLOR_BGRA2YUV_YUY2, + COLOR_RGBA2YUV_YUNV = COLOR_RGBA2YUV_YUY2, + COLOR_BGRA2YUV_YUNV = COLOR_BGRA2YUV_YUY2, + + COLOR_COLORCVT_MAX = 155; /** \addtogroup imgproc_shape * \{ @@ -4454,7 +4496,7 @@ radii. You can assist to the function by specifying the radius range ( minRadius @param param1 First method-specific parameter. In case of #HOUGH_GRADIENT and #HOUGH_GRADIENT_ALT, it is the higher threshold of the two passed to the Canny edge detector (the lower one is twice smaller). Note that #HOUGH_GRADIENT_ALT uses #Scharr algorithm to compute image derivatives, so the threshold value -shough normally be higher, such as 300 or normally exposed and contrasty images. +should normally be higher, such as 300 or normally exposed and contrasty images. @param param2 Second method-specific parameter. In case of #HOUGH_GRADIENT, it is the accumulator threshold for the circle centers at the detection stage. The smaller it is, the more false circles may be detected. Circles, corresponding to the larger accumulator values, will be @@ -6741,10 +6783,10 @@ sixth bytes would then be the second pixel (Blue, then Green, then Red), and so

This function only supports YUV420 to RGB conversion as of now.

-@param src1: 8-bit image (#CV_8U) of the Y plane. -@param src2: image containing interleaved U/V plane. -@param dst: output image. -@param code: Specifies the type of conversion. It can take any of the following values: +@param src1 8-bit image (#CV_8U) of the Y plane. +@param src2 image containing interleaved U/V plane. +@param dst output image. +@param code Specifies the type of conversion. It can take any of the following values: - #COLOR_YUV2BGR_NV12 - #COLOR_YUV2RGB_NV12 - #COLOR_YUV2BGRA_NV12 diff --git a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_video.java b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_video.java index d442db20d02..6c10f9e73f4 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_video.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_video.java @@ -326,7 +326,7 @@ optical flow equations (this matrix is called a spatial gradient matrix in \cite The function implements a sparse iterative version of the Lucas-Kanade optical flow in pyramids. See \cite Bouguet00 . The function is parallelized with the TBB library.

-\note +\note Some examples:

- An example using the Lucas-Kanade optical flow algorithm can be found at opencv_source_code/samples/cpp/lkdemo.cpp @@ -394,7 +394,7 @@ optical flow equations (this matrix is called a spatial gradient matrix in \cite

{@code \[\texttt{prev} (y,x)  \sim \texttt{next} ( y + \texttt{flow} (y,x)[1],  x + \texttt{flow} (y,x)[0])\]}

-\note +\note Some examples:

- An example using the optical flow algorithm described by Gunnar Farneback can be found at opencv_source_code/samples/cpp/fback.cpp @@ -623,6 +623,9 @@ to the flow in the horizontal direction (u), second - vertical (v). // Targeting ../opencv_video/TrackerNano.java +// Targeting ../opencv_video/TrackerVit.java + + /** \} video_track */ diff --git a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_videoio.java b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_videoio.java index ad50adb8ff3..d689f79094a 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_videoio.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/global/opencv_videoio.java @@ -127,7 +127,7 @@ public class opencv_videoio extends org.bytedeco.opencv.presets.opencv_videoio { CAP_OPENNI = 900, /** OpenNI (for Asus Xtion) */ CAP_OPENNI_ASUS = 910, - /** Android - not used */ + /** MediaNDK (API Level 21+) and NDK Camera (API level 24+) for Android */ CAP_ANDROID = 1000, /** XIMEA Camera API */ CAP_XIAPI = 1100, @@ -167,7 +167,7 @@ public class opencv_videoio extends org.bytedeco.opencv.presets.opencv_videoio { CAP_XINE = 2400, /** uEye Camera API */ CAP_UEYE = 2500, - /** For Orbbec 3D-Sensor device/module (Astra+, Femto) */ + /** For Orbbec 3D-Sensor device/module (Astra+, Femto, Astra2, Gemini2, Gemini2L, Gemini2XL, Femto Mega) attention: Astra2, Gemini2, and Gemini2L cameras currently only support Windows and Linux kernel versions no higher than 4.15, and higher versions of Linux kernel may have exceptions. */ CAP_OBSENSOR = 2600; @@ -181,7 +181,7 @@ public class opencv_videoio extends org.bytedeco.opencv.presets.opencv_videoio { public static final int /** Current position of the video file in milliseconds. */ CAP_PROP_POS_MSEC = 0, - /** 0-based index of the frame to be decoded/captured next. */ + /** 0-based index of the frame to be decoded/captured next. When the index i is set in RAW mode (CAP_PROP_FORMAT == -1) this will seek to the key frame k, where k <= i. */ CAP_PROP_POS_FRAMES = 1, /** Relative position of the video file: 0=start of the film, 1=end of the film. */ CAP_PROP_POS_AVI_RATIO = 2, @@ -271,7 +271,8 @@ public class opencv_videoio extends org.bytedeco.opencv.presets.opencv_videoio { CAP_PROP_OPEN_TIMEOUT_MSEC = 53, /** (**open-only**) timeout in milliseconds for reading from a video capture (applicable for FFmpeg and GStreamer back-ends only) */ CAP_PROP_READ_TIMEOUT_MSEC = 54, - CAP_PROP_STREAM_OPEN_TIME_USEC = 55, // ¶ms) or afterwards by setting the \ref VIDEOWRITER_PROP_KEY_FLAG with \ref VideoWriter::set() before writing each frame. FFMpeg backend only. */ + VIDEOWRITER_PROP_RAW_VIDEO = 9, + /** (**open-only**) Set the key frame interval using raw video encapsulation (\ref VIDEOWRITER_PROP_RAW_VIDEO != 0). Defaults to 1 when not set. FFMpeg backend only. */ + VIDEOWRITER_PROP_KEY_INTERVAL = 10, + /** Set to non-zero to signal that the following frames are key frames or zero if not, when encapsulating raw video (\ref VIDEOWRITER_PROP_RAW_VIDEO != 0). FFMpeg backend only. */ + VIDEOWRITER_PROP_KEY_FLAG = 11, // #ifndef CV_DOXYGEN - CV__VIDEOWRITER_PROP_LATEST = 9; + CV__VIDEOWRITER_PROP_LATEST = 12; // #endif /** \} videoio_flags_base @@ -419,6 +426,10 @@ public class opencv_videoio extends org.bytedeco.opencv.presets.opencv_videoio { CAP_PROP_OPENNI2_SYNC = 110, CAP_PROP_OPENNI2_MIRROR = 111; +// #ifdef _MSC_VER +// #pragma warning( push ) +// #pragma warning( disable: 5054 ) +// #endif /** OpenNI shortcuts */ /** enum cv:: */ public static final int CAP_OPENNI_IMAGE_GENERATOR_PRESENT = CAP_OPENNI_IMAGE_GENERATOR + CAP_PROP_OPENNI_GENERATOR_PRESENT, @@ -429,6 +440,9 @@ public class opencv_videoio extends org.bytedeco.opencv.presets.opencv_videoio { CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION = CAP_OPENNI_DEPTH_GENERATOR + CAP_PROP_OPENNI_REGISTRATION, CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION_ON = CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION, CAP_OPENNI_IR_GENERATOR_PRESENT = CAP_OPENNI_IR_GENERATOR + CAP_PROP_OPENNI_GENERATOR_PRESENT; +// #ifdef _MSC_VER +// #pragma warning( pop ) +// #endif /** OpenNI data given from depth generator */ /** enum cv:: */ diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/Complexd.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/Complexd.java index 97cbef88790..d9c0b0b4242 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/Complexd.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/Complexd.java @@ -31,6 +31,7 @@ public class Complexd extends DoublePointer { /** conjugation */ public native @ByVal Complexd conj(); + /** the real and the imaginary parts */ public native double re(); public native Complexd re(double setter); - public native double im(); public native Complexd im(double setter); //< the real and the imaginary parts + public native double im(); public native Complexd im(double setter); } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/Complexf.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/Complexf.java index b72c32bb73f..843fc9ba5a8 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/Complexf.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/Complexf.java @@ -43,6 +43,7 @@ public class Complexf extends FloatPointer { /** conjugation */ public native @ByVal Complexf conj(); + /** the real and the imaginary parts */ public native float re(); public native Complexf re(float setter); - public native float im(); public native Complexf im(float setter); //< the real and the imaginary parts + public native float im(); public native Complexf im(float setter); } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/GpuMat.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/GpuMat.java index 48fa145e7a4..2dedcc644ee 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/GpuMat.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/GpuMat.java @@ -203,21 +203,25 @@ public static class Allocator extends Pointer { public native void copyTo(@ByVal Mat dst); public native void copyTo(@ByVal UMat dst); public native void copyTo(@ByVal GpuMat dst); + /** bindings overload which copies the GpuMat content to device memory (Blocking call) */ /** copies the GpuMat content to device memory (Non-Blocking call) */ public native void copyTo(@ByVal Mat dst, @ByRef Stream stream); public native void copyTo(@ByVal UMat dst, @ByRef Stream stream); public native void copyTo(@ByVal GpuMat dst, @ByRef Stream stream); + /** bindings overload which copies the GpuMat content to device memory (Non-Blocking call) */ /** copies those GpuMat elements to "m" that are marked with non-zero mask elements (Blocking call) */ public native void copyTo(@ByVal Mat dst, @ByVal Mat mask); public native void copyTo(@ByVal UMat dst, @ByVal UMat mask); public native void copyTo(@ByVal GpuMat dst, @ByVal GpuMat mask); + /** bindings overload which copies those GpuMat elements to "m" that are marked with non-zero mask elements (Blocking call) */ /** copies those GpuMat elements to "m" that are marked with non-zero mask elements (Non-Blocking call) */ public native void copyTo(@ByVal Mat dst, @ByVal Mat mask, @ByRef Stream stream); public native void copyTo(@ByVal UMat dst, @ByVal UMat mask, @ByRef Stream stream); public native void copyTo(@ByVal GpuMat dst, @ByVal GpuMat mask, @ByRef Stream stream); + /** bindings overload which copies those GpuMat elements to "m" that are marked with non-zero mask elements (Non-Blocking call) */ /** sets some of the GpuMat elements to s (Blocking call) */ public native @ByRef GpuMat setTo(@ByVal Scalar s); @@ -244,6 +248,7 @@ public static class Allocator extends Pointer { public native void convertTo(@ByVal Mat dst, int rtype, @ByRef Stream stream); public native void convertTo(@ByVal UMat dst, int rtype, @ByRef Stream stream); public native void convertTo(@ByVal GpuMat dst, int rtype, @ByRef Stream stream); + /** bindings overload which converts GpuMat to another datatype (Non-Blocking call) */ /** converts GpuMat to another datatype with scaling (Blocking call) */ public native void convertTo(@ByVal Mat dst, int rtype, double alpha, double beta/*=0.0*/); @@ -252,6 +257,7 @@ public static class Allocator extends Pointer { public native void convertTo(@ByVal UMat dst, int rtype, double alpha); public native void convertTo(@ByVal GpuMat dst, int rtype, double alpha, double beta/*=0.0*/); public native void convertTo(@ByVal GpuMat dst, int rtype, double alpha); + /** bindings overload which converts GpuMat to another datatype with scaling(Blocking call) */ /** converts GpuMat to another datatype with scaling (Non-Blocking call) */ public native void convertTo(@ByVal Mat dst, int rtype, double alpha, @ByRef Stream stream); @@ -262,6 +268,7 @@ public static class Allocator extends Pointer { public native void convertTo(@ByVal Mat dst, int rtype, double alpha, double beta, @ByRef Stream stream); public native void convertTo(@ByVal UMat dst, int rtype, double alpha, double beta, @ByRef Stream stream); public native void convertTo(@ByVal GpuMat dst, int rtype, double alpha, double beta, @ByRef Stream stream); + /** bindings overload which converts GpuMat to another datatype with scaling (Non-Blocking call) */ public native void assignTo(@ByRef GpuMat m, int type/*=-1*/); public native void assignTo(@ByRef GpuMat m); diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/Timer.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/Timer.java index 4aae94cbace..1097bb1b1e0 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/Timer.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_core/Timer.java @@ -24,5 +24,6 @@ public class Timer extends Pointer { public native void start(); public native void stop(); + /** duration in nanoseconds */ public native @Cast("uint64") long durationNS(); } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/AttentionLayer.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/AttentionLayer.java new file mode 100644 index 00000000000..d26dfe6d002 --- /dev/null +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/AttentionLayer.java @@ -0,0 +1,39 @@ +// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE + +package org.bytedeco.opencv.opencv_dnn; + +import java.nio.*; +import org.bytedeco.javacpp.*; +import org.bytedeco.javacpp.annotation.*; + +import static org.bytedeco.javacpp.presets.javacpp.*; +import static org.bytedeco.openblas.global.openblas_nolapack.*; +import static org.bytedeco.openblas.global.openblas.*; +import org.bytedeco.opencv.opencv_core.*; +import static org.bytedeco.opencv.global.opencv_core.*; +import org.bytedeco.opencv.opencv_imgproc.*; +import static org.bytedeco.opencv.global.opencv_imgproc.*; + +import static org.bytedeco.opencv.global.opencv_dnn.*; + + + @Namespace("cv::dnn") @Properties(inherit = org.bytedeco.opencv.presets.opencv_dnn.class) +public class AttentionLayer extends Layer { + static { Loader.load(); } + /** Default native constructor. */ + public AttentionLayer() { super((Pointer)null); allocate(); } + /** Native array allocator. Access with {@link Pointer#position(long)}. */ + public AttentionLayer(long size) { super((Pointer)null); allocateArray(size); } + /** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */ + public AttentionLayer(Pointer p) { super(p); } + private native void allocate(); + private native void allocateArray(long size); + @Override public AttentionLayer position(long position) { + return (AttentionLayer)super.position(position); + } + @Override public AttentionLayer getPointer(long i) { + return new AttentionLayer((Pointer)this).offsetAddress(i); + } + + public static native @Ptr AttentionLayer create(@Const @ByRef LayerParams params); + } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/EinsumLayer.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/EinsumLayer.java new file mode 100644 index 00000000000..e6e3b766b95 --- /dev/null +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/EinsumLayer.java @@ -0,0 +1,66 @@ +// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE + +package org.bytedeco.opencv.opencv_dnn; + +import java.nio.*; +import org.bytedeco.javacpp.*; +import org.bytedeco.javacpp.annotation.*; + +import static org.bytedeco.javacpp.presets.javacpp.*; +import static org.bytedeco.openblas.global.openblas_nolapack.*; +import static org.bytedeco.openblas.global.openblas.*; +import org.bytedeco.opencv.opencv_core.*; +import static org.bytedeco.opencv.global.opencv_core.*; +import org.bytedeco.opencv.opencv_imgproc.*; +import static org.bytedeco.opencv.global.opencv_imgproc.*; + +import static org.bytedeco.opencv.global.opencv_dnn.*; + + + /** \brief This function performs array summation based + * on the Einstein summation convention. The function + * allows for concise expressions of various mathematical + * operations using subscripts. + * + * By default, the labels are placed in alphabetical + * order at the end of the output. + * For example: + * if {@code c = einsum("i,j", a, b)}, then {@code c[i,j] == a[i]*b[j]}. + * However, if {@code c = einsum("j,i", a, b)}, then {@code c[i,j] = a[j]*b[i]}. + * Alternatively, you can control the output order or prevent + * an axis from being summed/force an axis to be summed + * by providing indices for the output. + * For example: + * {@code diag(a)} -> {@code einsum("ii->i", a)} + * {@code sum(a, axis=0)} -> {@code einsum("i...->", a)} + * Subscripts at the beginning and end may be specified + * by putting an ellipsis "..." in the middle. + * For instance, the function {@code einsum("i...i", a)} takes + * the diagonal of the first and last dimensions of + * the operand, and {@code einsum("ij...,jk...->ik...")} performs + * the matrix product using the first two indices + * of each operand instead of the last two. + * When there is only one operand, no axes being summed, + * and no output parameter, this function returns + * a view into the operand instead of creating a copy. + */ + @Namespace("cv::dnn") @Properties(inherit = org.bytedeco.opencv.presets.opencv_dnn.class) +public class EinsumLayer extends Layer { + static { Loader.load(); } + /** Default native constructor. */ + public EinsumLayer() { super((Pointer)null); allocate(); } + /** Native array allocator. Access with {@link Pointer#position(long)}. */ + public EinsumLayer(long size) { super((Pointer)null); allocateArray(size); } + /** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */ + public EinsumLayer(Pointer p) { super(p); } + private native void allocate(); + private native void allocateArray(long size); + @Override public EinsumLayer position(long position) { + return (EinsumLayer)super.position(position); + } + @Override public EinsumLayer getPointer(long i) { + return new EinsumLayer((Pointer)this).offsetAddress(i); + } + + public static native @Ptr EinsumLayer create(@Const @ByRef LayerParams params); + } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/ExpandLayer.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/ExpandLayer.java new file mode 100644 index 00000000000..dfa524b84c5 --- /dev/null +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/ExpandLayer.java @@ -0,0 +1,39 @@ +// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE + +package org.bytedeco.opencv.opencv_dnn; + +import java.nio.*; +import org.bytedeco.javacpp.*; +import org.bytedeco.javacpp.annotation.*; + +import static org.bytedeco.javacpp.presets.javacpp.*; +import static org.bytedeco.openblas.global.openblas_nolapack.*; +import static org.bytedeco.openblas.global.openblas.*; +import org.bytedeco.opencv.opencv_core.*; +import static org.bytedeco.opencv.global.opencv_core.*; +import org.bytedeco.opencv.opencv_imgproc.*; +import static org.bytedeco.opencv.global.opencv_imgproc.*; + +import static org.bytedeco.opencv.global.opencv_dnn.*; + + + @Namespace("cv::dnn") @Properties(inherit = org.bytedeco.opencv.presets.opencv_dnn.class) +public class ExpandLayer extends Layer { + static { Loader.load(); } + /** Default native constructor. */ + public ExpandLayer() { super((Pointer)null); allocate(); } + /** Native array allocator. Access with {@link Pointer#position(long)}. */ + public ExpandLayer(long size) { super((Pointer)null); allocateArray(size); } + /** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */ + public ExpandLayer(Pointer p) { super(p); } + private native void allocate(); + private native void allocateArray(long size); + @Override public ExpandLayer position(long position) { + return (ExpandLayer)super.position(position); + } + @Override public ExpandLayer getPointer(long i) { + return new ExpandLayer((Pointer)this).offsetAddress(i); + } + + public static native @Ptr ExpandLayer create(@Const @ByRef LayerParams params); + } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/GatherElementsLayer.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/GatherElementsLayer.java new file mode 100644 index 00000000000..96bf09746ce --- /dev/null +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/GatherElementsLayer.java @@ -0,0 +1,49 @@ +// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE + +package org.bytedeco.opencv.opencv_dnn; + +import java.nio.*; +import org.bytedeco.javacpp.*; +import org.bytedeco.javacpp.annotation.*; + +import static org.bytedeco.javacpp.presets.javacpp.*; +import static org.bytedeco.openblas.global.openblas_nolapack.*; +import static org.bytedeco.openblas.global.openblas.*; +import org.bytedeco.opencv.opencv_core.*; +import static org.bytedeco.opencv.global.opencv_core.*; +import org.bytedeco.opencv.opencv_imgproc.*; +import static org.bytedeco.opencv.global.opencv_imgproc.*; + +import static org.bytedeco.opencv.global.opencv_dnn.*; + + + /** \brief GatherElements layer + * GatherElements takes two inputs data and indices of the same rank r >= 1 and an optional attribute axis and works such that: + * output[i][j][k] = data[index[i][j][k]][j][k] if axis = 0 and r = 3 + * output[i][j][k] = data[i][index[i][j][k]][k] if axis = 1 and r = 3 + * output[i][j][k] = data[i][j][index[i][j][k]] if axis = 2 and r = 3 + * + * Gather, on the other hand, takes a data tensor of rank r >= 1, and indices tensor of rank q, and works such that: + * it gathers the enteries along axis dimension of the input data indexed by indices and concatenates them in an output tensor of rank q + (r - 1) + * e.g. If axis = 0, let k = indices[i_{0}, ..., i_{q-1}] then output[i_{0}, ..., i_{q-1}, j_{0}, ..., j_{r-2}] = input[k , j_{0}, ..., j_{r-2}]: + **/ + @Namespace("cv::dnn") @Properties(inherit = org.bytedeco.opencv.presets.opencv_dnn.class) +public class GatherElementsLayer extends Layer { + static { Loader.load(); } + /** Default native constructor. */ + public GatherElementsLayer() { super((Pointer)null); allocate(); } + /** Native array allocator. Access with {@link Pointer#position(long)}. */ + public GatherElementsLayer(long size) { super((Pointer)null); allocateArray(size); } + /** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */ + public GatherElementsLayer(Pointer p) { super(p); } + private native void allocate(); + private native void allocateArray(long size); + @Override public GatherElementsLayer position(long position) { + return (GatherElementsLayer)super.position(position); + } + @Override public GatherElementsLayer getPointer(long i) { + return new GatherElementsLayer((Pointer)this).offsetAddress(i); + } + + public static native @Ptr GatherElementsLayer create(@Const @ByRef LayerParams params); + } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/GemmLayer.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/GemmLayer.java new file mode 100644 index 00000000000..27a3591b10b --- /dev/null +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/GemmLayer.java @@ -0,0 +1,44 @@ +// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE + +package org.bytedeco.opencv.opencv_dnn; + +import java.nio.*; +import org.bytedeco.javacpp.*; +import org.bytedeco.javacpp.annotation.*; + +import static org.bytedeco.javacpp.presets.javacpp.*; +import static org.bytedeco.openblas.global.openblas_nolapack.*; +import static org.bytedeco.openblas.global.openblas.*; +import org.bytedeco.opencv.opencv_core.*; +import static org.bytedeco.opencv.global.opencv_core.*; +import org.bytedeco.opencv.opencv_imgproc.*; +import static org.bytedeco.opencv.global.opencv_imgproc.*; + +import static org.bytedeco.opencv.global.opencv_dnn.*; + + + @Namespace("cv::dnn") @NoOffset @Properties(inherit = org.bytedeco.opencv.presets.opencv_dnn.class) +public class GemmLayer extends Layer { + static { Loader.load(); } + /** Default native constructor. */ + public GemmLayer() { super((Pointer)null); allocate(); } + /** Native array allocator. Access with {@link Pointer#position(long)}. */ + public GemmLayer(long size) { super((Pointer)null); allocateArray(size); } + /** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */ + public GemmLayer(Pointer p) { super(p); } + private native void allocate(); + private native void allocateArray(long size); + @Override public GemmLayer position(long position) { + return (GemmLayer)super.position(position); + } + @Override public GemmLayer getPointer(long i) { + return new GemmLayer((Pointer)this).offsetAddress(i); + } + + public native @Cast("bool") boolean trans_a(); public native GemmLayer trans_a(boolean setter); + public native @Cast("bool") boolean trans_b(); public native GemmLayer trans_b(boolean setter); + public native float alpha(); public native GemmLayer alpha(float setter); + public native float beta(); public native GemmLayer beta(float setter); + + public static native @Ptr GemmLayer create(@Const @ByRef LayerParams params); + } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/Image2BlobParams.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/Image2BlobParams.java index aabf3bd8432..9ac3f61f800 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/Image2BlobParams.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/Image2BlobParams.java @@ -47,10 +47,10 @@ public class Image2BlobParams extends Pointer { private native void allocate(); public Image2BlobParams(@Const @ByRef Scalar scalefactor, @Const @ByRef(nullValue = "cv::Size()") Size size, @Const @ByRef(nullValue = "cv::Scalar()") Scalar mean, @Cast("bool") boolean swapRB/*=false*/, int ddepth/*=CV_32F*/, @Cast("cv::dnn::DataLayout") int datalayout/*=cv::dnn::DNN_LAYOUT_NCHW*/, - @Cast("cv::dnn::ImagePaddingMode") int mode/*=cv::dnn::DNN_PMODE_NULL*/) { super((Pointer)null); allocate(scalefactor, size, mean, swapRB, ddepth, datalayout, mode); } + @Cast("cv::dnn::ImagePaddingMode") int mode/*=cv::dnn::DNN_PMODE_NULL*/, @ByVal(nullValue = "cv::Scalar(0.0)") Scalar borderValue) { super((Pointer)null); allocate(scalefactor, size, mean, swapRB, ddepth, datalayout, mode, borderValue); } private native void allocate(@Const @ByRef Scalar scalefactor, @Const @ByRef(nullValue = "cv::Size()") Size size, @Const @ByRef(nullValue = "cv::Scalar()") Scalar mean, @Cast("bool") boolean swapRB/*=false*/, int ddepth/*=CV_32F*/, @Cast("cv::dnn::DataLayout") int datalayout/*=cv::dnn::DNN_LAYOUT_NCHW*/, - @Cast("cv::dnn::ImagePaddingMode") int mode/*=cv::dnn::DNN_PMODE_NULL*/); + @Cast("cv::dnn::ImagePaddingMode") int mode/*=cv::dnn::DNN_PMODE_NULL*/, @ByVal(nullValue = "cv::Scalar(0.0)") Scalar borderValue); public Image2BlobParams(@Const @ByRef Scalar scalefactor) { super((Pointer)null); allocate(scalefactor); } private native void allocate(@Const @ByRef Scalar scalefactor); @@ -68,4 +68,20 @@ private native void allocate(@Const @ByRef Scalar scalefactor, @Const @ByRef(nul public native @Cast("cv::dnn::DataLayout") int datalayout(); public native Image2BlobParams datalayout(int setter); /** Image padding mode. @see ImagePaddingMode. */ public native @Cast("cv::dnn::ImagePaddingMode") int paddingmode(); public native Image2BlobParams paddingmode(int setter); + /** Value used in padding mode for padding. */ + public native @ByRef Scalar borderValue(); public native Image2BlobParams borderValue(Scalar setter); + + /** \brief Get rectangle coordinates in original image system from rectangle in blob coordinates. + * @param rBlob rect in blob coordinates. + * @param size original input image size. + * @return rectangle in original image coordinates. + */ + public native @ByVal Rect blobRectToImageRect(@Const @ByRef Rect rBlob, @Const @ByRef Size size); + + /** \brief Get rectangle coordinates in original image system from rectangle in blob coordinates. + * @param rBlob rect in blob coordinates. + * @param rImg result rect in image coordinates. + * @param size original input image size. + */ + public native void blobRectsToImageRects(@Const @ByRef RectVector rBlob, @ByRef RectVector rImg, @Const @ByRef Size size); } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/InstanceNormLayer.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/InstanceNormLayer.java new file mode 100644 index 00000000000..b494c8734e1 --- /dev/null +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/InstanceNormLayer.java @@ -0,0 +1,41 @@ +// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE + +package org.bytedeco.opencv.opencv_dnn; + +import java.nio.*; +import org.bytedeco.javacpp.*; +import org.bytedeco.javacpp.annotation.*; + +import static org.bytedeco.javacpp.presets.javacpp.*; +import static org.bytedeco.openblas.global.openblas_nolapack.*; +import static org.bytedeco.openblas.global.openblas.*; +import org.bytedeco.opencv.opencv_core.*; +import static org.bytedeco.opencv.global.opencv_core.*; +import org.bytedeco.opencv.opencv_imgproc.*; +import static org.bytedeco.opencv.global.opencv_imgproc.*; + +import static org.bytedeco.opencv.global.opencv_dnn.*; + + + @Namespace("cv::dnn") @NoOffset @Properties(inherit = org.bytedeco.opencv.presets.opencv_dnn.class) +public class InstanceNormLayer extends Layer { + static { Loader.load(); } + /** Default native constructor. */ + public InstanceNormLayer() { super((Pointer)null); allocate(); } + /** Native array allocator. Access with {@link Pointer#position(long)}. */ + public InstanceNormLayer(long size) { super((Pointer)null); allocateArray(size); } + /** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */ + public InstanceNormLayer(Pointer p) { super(p); } + private native void allocate(); + private native void allocateArray(long size); + @Override public InstanceNormLayer position(long position) { + return (InstanceNormLayer)super.position(position); + } + @Override public InstanceNormLayer getPointer(long i) { + return new InstanceNormLayer((Pointer)this).offsetAddress(i); + } + + public native float epsilon(); public native InstanceNormLayer epsilon(float setter); + + public static native @Ptr InstanceNormLayer create(@Const @ByRef LayerParams params); + } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/LayerNormLayer.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/LayerNormLayer.java index e11abe3f2b0..028dd3fe243 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/LayerNormLayer.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/LayerNormLayer.java @@ -35,7 +35,7 @@ public class LayerNormLayer extends Layer { return new LayerNormLayer((Pointer)this).offsetAddress(i); } - public native @Cast("bool") boolean hasBias(); public native LayerNormLayer hasBias(boolean setter); + public native @Cast("bool") @Deprecated boolean hasBias(); public native LayerNormLayer hasBias(boolean setter); // Deprecated, preserve for compatibility public native int axis(); public native LayerNormLayer axis(int setter); public native float epsilon(); public native LayerNormLayer epsilon(float setter); diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/MatMulLayer.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/MatMulLayer.java new file mode 100644 index 00000000000..374cc843b76 --- /dev/null +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/MatMulLayer.java @@ -0,0 +1,39 @@ +// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE + +package org.bytedeco.opencv.opencv_dnn; + +import java.nio.*; +import org.bytedeco.javacpp.*; +import org.bytedeco.javacpp.annotation.*; + +import static org.bytedeco.javacpp.presets.javacpp.*; +import static org.bytedeco.openblas.global.openblas_nolapack.*; +import static org.bytedeco.openblas.global.openblas.*; +import org.bytedeco.opencv.opencv_core.*; +import static org.bytedeco.opencv.global.opencv_core.*; +import org.bytedeco.opencv.opencv_imgproc.*; +import static org.bytedeco.opencv.global.opencv_imgproc.*; + +import static org.bytedeco.opencv.global.opencv_dnn.*; + + + @Namespace("cv::dnn") @Properties(inherit = org.bytedeco.opencv.presets.opencv_dnn.class) +public class MatMulLayer extends Layer { + static { Loader.load(); } + /** Default native constructor. */ + public MatMulLayer() { super((Pointer)null); allocate(); } + /** Native array allocator. Access with {@link Pointer#position(long)}. */ + public MatMulLayer(long size) { super((Pointer)null); allocateArray(size); } + /** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */ + public MatMulLayer(Pointer p) { super(p); } + private native void allocate(); + private native void allocateArray(long size); + @Override public MatMulLayer position(long position) { + return (MatMulLayer)super.position(position); + } + @Override public MatMulLayer getPointer(long i) { + return new MatMulLayer((Pointer)this).offsetAddress(i); + } + + public static native @Ptr MatMulLayer create(@Const @ByRef LayerParams params); + } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/Model.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/Model.java index b61d192f83c..138bbe81601 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/Model.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/Model.java @@ -138,6 +138,9 @@ public native void setInputParams(double scale/*=1.0*/, @Const @ByRef(nullValue /** @see Net::setPreferableTarget */ public native @ByRef Model setPreferableTarget(@Cast("cv::dnn::Target") int targetId); + /** @see Net::enableWinograd */ + public native @ByRef Model enableWinograd(@Cast("bool") boolean useWinograd); + public native @Deprecated @ByRef @Name("operator cv::dnn::Net&") Net asNet(); //protected: - internal/tests usage only diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/Net.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/Net.java index dc7ec01f3b2..8e627951693 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/Net.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_dnn/Net.java @@ -293,9 +293,6 @@ public native void forward(@ByVal GpuMatVector outputBlobs, * \brief Ask network to use specific computation backend where it supported. * @param backendId [in] backend identifier. * @see Backend - * - * If OpenCV is compiled with Intel's Inference Engine library, DNN_BACKEND_DEFAULT - * means DNN_BACKEND_INFERENCE_ENGINE. Otherwise it equals to DNN_BACKEND_OPENCV. */ public native void setPreferableBackend(int backendId); diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_features2d/AKAZE.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_features2d/AKAZE.java index d09fdf3ff63..bca793f50bf 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_features2d/AKAZE.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_features2d/AKAZE.java @@ -67,11 +67,15 @@ public class AKAZE extends Feature2D { @param nOctaveLayers Default number of sublevels per scale level @param diffusivity Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or DIFF_CHARBONNIER + @param max_points Maximum amount of returned points. In case if image contains + more features, then the features with highest response are returned. + Negative value means no limitation. */ public static native @Ptr AKAZE create(@Cast("cv::AKAZE::DescriptorType") int descriptor_type/*=cv::AKAZE::DESCRIPTOR_MLDB*/, int descriptor_size/*=0*/, int descriptor_channels/*=3*/, float threshold/*=0.001f*/, int nOctaves/*=4*/, - int nOctaveLayers/*=4*/, @Cast("cv::KAZE::DiffusivityType") int diffusivity/*=cv::KAZE::DIFF_PM_G2*/); + int nOctaveLayers/*=4*/, @Cast("cv::KAZE::DiffusivityType") int diffusivity/*=cv::KAZE::DIFF_PM_G2*/, + int max_points/*=-1*/); public static native @Ptr AKAZE create(); public native void setDescriptorType(@Cast("cv::AKAZE::DescriptorType") int dtype); @@ -95,4 +99,7 @@ public class AKAZE extends Feature2D { public native void setDiffusivity(@Cast("cv::KAZE::DiffusivityType") int diff); public native @Cast("cv::KAZE::DiffusivityType") int getDiffusivity(); public native @Str @Override BytePointer getDefaultName(); + + public native void setMaxPoints(int max_points); + public native int getMaxPoints(); } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_features2d/BOWImgDescriptorExtractor.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_features2d/BOWImgDescriptorExtractor.java index 76e6d70ed80..f84cf1809b0 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_features2d/BOWImgDescriptorExtractor.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_features2d/BOWImgDescriptorExtractor.java @@ -47,10 +47,10 @@ public class BOWImgDescriptorExtractor extends Pointer { @param dmatcher Descriptor matcher that is used to find the nearest word of the trained vocabulary for each keypoint descriptor of the image. */ - public BOWImgDescriptorExtractor( @Cast("cv::DescriptorExtractor*") @Ptr Feature2D dextractor, - @Ptr DescriptorMatcher dmatcher ) { super((Pointer)null); allocate(dextractor, dmatcher); } - private native void allocate( @Cast("cv::DescriptorExtractor*") @Ptr Feature2D dextractor, - @Ptr DescriptorMatcher dmatcher ); + public BOWImgDescriptorExtractor( @Ptr Feature2D dextractor, + @Ptr DescriptorMatcher dmatcher ) { super((Pointer)null); allocate(dextractor, dmatcher); } + private native void allocate( @Ptr Feature2D dextractor, + @Ptr DescriptorMatcher dmatcher ); /** \overload */ public BOWImgDescriptorExtractor( @Ptr DescriptorMatcher dmatcher ) { super((Pointer)null); allocate(dmatcher); } private native void allocate( @Ptr DescriptorMatcher dmatcher ); diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/CharucoBoard.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/CharucoBoard.java index 8da2569e4fe..cc62f4c9b12 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/CharucoBoard.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/CharucoBoard.java @@ -97,11 +97,11 @@ private native void allocate(@Const @ByRef Size size, float squareLength, float */ public native @ByVal @Cast("std::vector*") Point3fVector getChessboardCorners(); - /** \brief get CharucoBoard::nearestMarkerIdx + /** \brief get CharucoBoard::nearestMarkerIdx, for each charuco corner, nearest marker index in ids array */ public native @ByVal IntVectorVector getNearestMarkerIdx(); - /** \brief get CharucoBoard::nearestMarkerCorners + /** \brief get CharucoBoard::nearestMarkerCorners, for each charuco corner, nearest marker corner id of each marker */ public native @ByVal IntVectorVector getNearestMarkerCorners(); diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/DetectorParameters.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/DetectorParameters.java index c79d69a7777..fb8cd21cae5 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/DetectorParameters.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/DetectorParameters.java @@ -93,18 +93,50 @@ public class DetectorParameters extends Pointer { /** minimum distance of any corner to the image border for detected markers (in pixels) (default 3) */ public native int minDistanceToBorder(); public native DetectorParameters minDistanceToBorder(int setter); - /** \brief minimum mean distance beetween two marker corners to be considered imilar, so that the smaller one is removed. + /** \brief minimum average distance between the corners of the two markers to be grouped (default 0.125). * - * The rate is relative to the smaller perimeter of the two markers (default 0.05). + * The rate is relative to the smaller perimeter of the two markers. + * Two markers are grouped if average distance between the corners of the two markers is less than + * min(MarkerPerimeter1, MarkerPerimeter2)*minMarkerDistanceRate. + * + * default value is 0.125 because 0.125*MarkerPerimeter = (MarkerPerimeter / 4) * 0.5 = half the side of the marker. + * + * \note default value was changed from 0.05 after 4.8.1 release, because the filtering algorithm has been changed. + * Now a few candidates from the same group can be added to the list of candidates if they are far from each other. + * @see minGroupDistance. */ public native double minMarkerDistanceRate(); public native DetectorParameters minMarkerDistanceRate(double setter); + /** \brief minimum average distance between the corners of the two markers in group to add them to the list of candidates + * + * The average distance between the corners of the two markers is calculated relative to its module size (default 0.21). + */ + public native float minGroupDistance(); public native DetectorParameters minGroupDistance(float setter); + /** \brief default value CORNER_REFINE_NONE */ public native int cornerRefinementMethod(); public native DetectorParameters cornerRefinementMethod(int setter); - /** window size for the corner refinement process (in pixels) (default 5). */ + /** \brief maximum window size for the corner refinement process (in pixels) (default 5). + * + * The window size may decrease if the ArUco marker is too small, check relativeCornerRefinmentWinSize. + * The final window size is calculated as: + * min(cornerRefinementWinSize, averageArucoModuleSize*relativeCornerRefinmentWinSize), + * where averageArucoModuleSize is average module size of ArUco marker in pixels. + * (ArUco marker is composed of black and white modules) + */ public native int cornerRefinementWinSize(); public native DetectorParameters cornerRefinementWinSize(int setter); + /** \brief Dynamic window size for corner refinement relative to Aruco module size (default 0.3). + * + * The final window size is calculated as: + * min(cornerRefinementWinSize, averageArucoModuleSize*relativeCornerRefinmentWinSize), + * where averageArucoModuleSize is average module size of ArUco marker in pixels. + * (ArUco marker is composed of black and white modules) + * In the case of markers located far from each other, it may be useful to increase the value of the parameter to 0.4-0.5. + * In the case of markers located close to each other, it may be useful to decrease the parameter value to 0.1-0.2. + */ + public native float relativeCornerRefinmentWinSize(); public native DetectorParameters relativeCornerRefinmentWinSize(float setter); + /** maximum number of iterations for stop criteria of the corner refinement process (default 30). */ public native int cornerRefinementMaxIterations(); public native DetectorParameters cornerRefinementMaxIterations(int setter); diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/Dictionary.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/Dictionary.java index 721acfd3a37..30f67b17845 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/Dictionary.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/Dictionary.java @@ -34,14 +34,18 @@ * \{

-/** \brief Dictionary/Set of markers, it contains the inner codification +/** \brief Dictionary is a set of unique ArUco markers of the same size * - * BytesList contains the marker codewords where: + * {@code bytesList} storing as 2-dimensions Mat with 4-th channels (CV_8UC4 type was used) and contains the marker codewords where: * - bytesList.rows is the dictionary size - * - each marker is encoded using {@code nbytes = ceil(markerSize*markerSize/8.)} + * - each marker is encoded using {@code nbytes = ceil(markerSize*markerSize/8.)} bytes * - each row contains all 4 rotations of the marker, so its length is {@code 4*nbytes} - * - * {@code bytesList.ptr(i)[k*nbytes + j]} is then the j-th byte of i-th marker, in its k-th rotation. + * - the byte order in the bytesList[i] row: + * {@code //bytes without rotation/bytes with rotation 1/bytes with rotation 2/bytes with rotation 3//} + * So {@code bytesList.ptr(i)[k*nbytes + j]} is the j-th byte of i-th marker, in its k-th rotation. + * \note Python bindings generate matrix with shape of bytesList {@code dictionary_size x nbytes x 4}, + * but it should be indexed like C++ version. Python example for j-th byte of i-th marker, in its k-th rotation: + * {@code aruco_dict.bytesList[id].ravel()[k*nbytes + j]} */ @Namespace("cv::aruco") @NoOffset @Properties(inherit = org.bytedeco.opencv.presets.opencv_objdetect.class) public class Dictionary extends Pointer { @@ -58,24 +62,30 @@ public class Dictionary extends Pointer { return new Dictionary((Pointer)this).offsetAddress(i); } - public native @ByRef Mat bytesList(); public native Dictionary bytesList(Mat setter); // marker code information - public native int markerSize(); public native Dictionary markerSize(int setter); // number of bits per dimension - public native int maxCorrectionBits(); public native Dictionary maxCorrectionBits(int setter); // maximum number of bits that can be corrected - + /** marker code information. See class description for more details */ + public native @ByRef Mat bytesList(); public native Dictionary bytesList(Mat setter); + /** number of bits per dimension */ + public native int markerSize(); public native Dictionary markerSize(int setter); + /** maximum number of bits that can be corrected */ + public native int maxCorrectionBits(); public native Dictionary maxCorrectionBits(int setter); public Dictionary() { super((Pointer)null); allocate(); } private native void allocate(); + /** \brief Basic ArUco dictionary constructor + * + * @param bytesList bits for all ArUco markers in dictionary see memory layout in the class description + * @param _markerSize ArUco marker size in units + * @param maxcorr maximum number of bits that can be corrected + */ public Dictionary(@Const @ByRef Mat bytesList, int _markerSize, int maxcorr/*=0*/) { super((Pointer)null); allocate(bytesList, _markerSize, maxcorr); } private native void allocate(@Const @ByRef Mat bytesList, int _markerSize, int maxcorr/*=0*/); public Dictionary(@Const @ByRef Mat bytesList, int _markerSize) { super((Pointer)null); allocate(bytesList, _markerSize); } private native void allocate(@Const @ByRef Mat bytesList, int _markerSize); - - /** \brief Read a new dictionary from FileNode. * - * Dictionary format:\n + * Dictionary example in YAML format:\n * nmarkers: 35\n * markersize: 6\n * maxCorrectionBits: 5\n @@ -93,15 +103,15 @@ public class Dictionary extends Pointer { /** \brief Given a matrix of bits. Returns whether if marker is identified or not. * - * It returns by reference the correct id (if any) and the correct rotation + * Returns reference to the marker id in the dictionary (if any) and its rotation. */ public native @Cast("bool") boolean identify(@Const @ByRef Mat onlyBits, @ByRef IntPointer idx, @ByRef IntPointer rotation, double maxCorrectionRate); public native @Cast("bool") boolean identify(@Const @ByRef Mat onlyBits, @ByRef IntBuffer idx, @ByRef IntBuffer rotation, double maxCorrectionRate); public native @Cast("bool") boolean identify(@Const @ByRef Mat onlyBits, @ByRef int[] idx, @ByRef int[] rotation, double maxCorrectionRate); - /** \brief Returns the distance of the input bits to the specific id. + /** \brief Returns Hamming distance of the input bits to the specific id. * - * If allRotations is true, the four posible bits rotation are considered + * If {@code allRotations} flag is set, the four posible marker rotations are considered */ public native int getDistanceToId(@ByVal Mat bits, int id, @Cast("bool") boolean allRotations/*=true*/); public native int getDistanceToId(@ByVal Mat bits, int id); @@ -121,7 +131,7 @@ public class Dictionary extends Pointer { public native void generateImageMarker(int id, int sidePixels, @ByVal GpuMat _img); - /** \brief Transform matrix of bits to list of bytes in the 4 rotations + /** \brief Transform matrix of bits to list of bytes with 4 marker rotations */ public static native @ByVal Mat getByteListFromBits(@Const @ByRef Mat bits); diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/FaceDetectorYN.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/FaceDetectorYN.java index 9c5819fba43..7dc370faa09 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/FaceDetectorYN.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/FaceDetectorYN.java @@ -95,7 +95,7 @@ public class FaceDetectorYN extends Pointer { public native int detect(@ByVal UMat image, @ByVal UMat faces); public native int detect(@ByVal GpuMat image, @ByVal GpuMat faces); - /** \brief Creates an instance of this class with given parameters + /** \brief Creates an instance of face detector class with given parameters * * @param model the path to the requested model * @param config the path to the config file for compability, which is not requested for ONNX models @@ -128,4 +128,96 @@ public class FaceDetectorYN extends Pointer { public static native @Ptr FaceDetectorYN create(@Str String model, @Str String config, @Const @ByRef Size input_size); + + /** \overload + * + * @param framework Name of origin framework + * @param bufferModel A buffer with a content of binary file with weights + * @param bufferConfig A buffer with a content of text file contains network configuration + * @param input_size the size of the input image + * @param score_threshold the threshold to filter out bounding boxes of score smaller than the given value + * @param nms_threshold the threshold to suppress bounding boxes of IoU bigger than the given value + * @param top_k keep top K bboxes before NMS + * @param backend_id the id of backend + * @param target_id the id of target device + */ + public static native @Ptr FaceDetectorYN create(@Str BytePointer framework, + @Cast("uchar*") @StdVector BytePointer bufferModel, + @Cast("uchar*") @StdVector BytePointer bufferConfig, + @Const @ByRef Size input_size, + float score_threshold/*=0.9f*/, + float nms_threshold/*=0.3f*/, + int top_k/*=5000*/, + int backend_id/*=0*/, + int target_id/*=0*/); + public static native @Ptr FaceDetectorYN create(@Str BytePointer framework, + @Cast("uchar*") @StdVector BytePointer bufferModel, + @Cast("uchar*") @StdVector BytePointer bufferConfig, + @Const @ByRef Size input_size); + public static native @Ptr FaceDetectorYN create(@Str String framework, + @Cast("uchar*") @StdVector ByteBuffer bufferModel, + @Cast("uchar*") @StdVector ByteBuffer bufferConfig, + @Const @ByRef Size input_size, + float score_threshold/*=0.9f*/, + float nms_threshold/*=0.3f*/, + int top_k/*=5000*/, + int backend_id/*=0*/, + int target_id/*=0*/); + public static native @Ptr FaceDetectorYN create(@Str String framework, + @Cast("uchar*") @StdVector ByteBuffer bufferModel, + @Cast("uchar*") @StdVector ByteBuffer bufferConfig, + @Const @ByRef Size input_size); + public static native @Ptr FaceDetectorYN create(@Str BytePointer framework, + @Cast("uchar*") @StdVector byte[] bufferModel, + @Cast("uchar*") @StdVector byte[] bufferConfig, + @Const @ByRef Size input_size, + float score_threshold/*=0.9f*/, + float nms_threshold/*=0.3f*/, + int top_k/*=5000*/, + int backend_id/*=0*/, + int target_id/*=0*/); + public static native @Ptr FaceDetectorYN create(@Str BytePointer framework, + @Cast("uchar*") @StdVector byte[] bufferModel, + @Cast("uchar*") @StdVector byte[] bufferConfig, + @Const @ByRef Size input_size); + public static native @Ptr FaceDetectorYN create(@Str String framework, + @Cast("uchar*") @StdVector BytePointer bufferModel, + @Cast("uchar*") @StdVector BytePointer bufferConfig, + @Const @ByRef Size input_size, + float score_threshold/*=0.9f*/, + float nms_threshold/*=0.3f*/, + int top_k/*=5000*/, + int backend_id/*=0*/, + int target_id/*=0*/); + public static native @Ptr FaceDetectorYN create(@Str String framework, + @Cast("uchar*") @StdVector BytePointer bufferModel, + @Cast("uchar*") @StdVector BytePointer bufferConfig, + @Const @ByRef Size input_size); + public static native @Ptr FaceDetectorYN create(@Str BytePointer framework, + @Cast("uchar*") @StdVector ByteBuffer bufferModel, + @Cast("uchar*") @StdVector ByteBuffer bufferConfig, + @Const @ByRef Size input_size, + float score_threshold/*=0.9f*/, + float nms_threshold/*=0.3f*/, + int top_k/*=5000*/, + int backend_id/*=0*/, + int target_id/*=0*/); + public static native @Ptr FaceDetectorYN create(@Str BytePointer framework, + @Cast("uchar*") @StdVector ByteBuffer bufferModel, + @Cast("uchar*") @StdVector ByteBuffer bufferConfig, + @Const @ByRef Size input_size); + public static native @Ptr FaceDetectorYN create(@Str String framework, + @Cast("uchar*") @StdVector byte[] bufferModel, + @Cast("uchar*") @StdVector byte[] bufferConfig, + @Const @ByRef Size input_size, + float score_threshold/*=0.9f*/, + float nms_threshold/*=0.3f*/, + int top_k/*=5000*/, + int backend_id/*=0*/, + int target_id/*=0*/); + public static native @Ptr FaceDetectorYN create(@Str String framework, + @Cast("uchar*") @StdVector byte[] bufferModel, + @Cast("uchar*") @StdVector byte[] bufferConfig, + @Const @ByRef Size input_size); + } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/QRCodeEncoder.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/QRCodeEncoder.java index c8a2a83d611..c67be625aad 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/QRCodeEncoder.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_objdetect/QRCodeEncoder.java @@ -62,13 +62,7 @@ public class QRCodeEncoder extends Pointer { public static final int ECI_UTF8 = 26; - /** \brief QR code encoder parameters. - @param version The optional version of QR code (by default - maximum possible depending on - the length of the string). - @param correction_level The optional level of error correction (by default - the lowest). - @param mode The optional encoding mode - Numeric, Alphanumeric, Byte, Kanji, ECI or Structured Append. - @param structure_number The optional number of QR codes to generate in Structured Append mode. - */ + /** \brief QR code encoder parameters. */ @NoOffset public static class Params extends Pointer { static { Loader.load(); } /** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */ @@ -85,9 +79,17 @@ public class QRCodeEncoder extends Pointer { public Params() { super((Pointer)null); allocate(); } private native void allocate(); + + /** The optional version of QR code (by default - maximum possible depending on the length of the string). */ public native int version(); public native Params version(int setter); + + /** The optional level of error correction (by default - the lowest). */ public native @Cast("cv::QRCodeEncoder::CorrectionLevel") int correction_level(); public native Params correction_level(int setter); + + /** The optional encoding mode - Numeric, Alphanumeric, Byte, Kanji, ECI or Structured Append. */ public native @Cast("cv::QRCodeEncoder::EncodeMode") int mode(); public native Params mode(int setter); + + /** The optional number of QR codes to generate in Structured Append mode. */ public native int structure_number(); public native Params structure_number(int setter); } diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_video/TrackerVit.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_video/TrackerVit.java new file mode 100644 index 00000000000..7a4fa8dd94d --- /dev/null +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_video/TrackerVit.java @@ -0,0 +1,81 @@ +// Targeted by JavaCPP version 1.5.10-SNAPSHOT: DO NOT EDIT THIS FILE + +package org.bytedeco.opencv.opencv_video; + +import java.nio.*; +import org.bytedeco.javacpp.*; +import org.bytedeco.javacpp.annotation.*; + +import static org.bytedeco.javacpp.presets.javacpp.*; +import static org.bytedeco.openblas.global.openblas_nolapack.*; +import static org.bytedeco.openblas.global.openblas.*; +import org.bytedeco.opencv.opencv_core.*; +import static org.bytedeco.opencv.global.opencv_core.*; +import org.bytedeco.opencv.opencv_imgproc.*; +import static org.bytedeco.opencv.global.opencv_imgproc.*; +import static org.bytedeco.opencv.global.opencv_imgcodecs.*; +import org.bytedeco.opencv.opencv_videoio.*; +import static org.bytedeco.opencv.global.opencv_videoio.*; +import org.bytedeco.opencv.opencv_highgui.*; +import static org.bytedeco.opencv.global.opencv_highgui.*; +import org.bytedeco.opencv.opencv_flann.*; +import static org.bytedeco.opencv.global.opencv_flann.*; +import org.bytedeco.opencv.opencv_features2d.*; +import static org.bytedeco.opencv.global.opencv_features2d.*; +import org.bytedeco.opencv.opencv_calib3d.*; +import static org.bytedeco.opencv.global.opencv_calib3d.*; +import org.bytedeco.opencv.opencv_dnn.*; +import static org.bytedeco.opencv.global.opencv_dnn.*; + +import static org.bytedeco.opencv.global.opencv_video.*; + + +/** \brief the VIT tracker is a super lightweight dnn-based general object tracking. + * + * VIT tracker is much faster and extremely lightweight due to special model structure, the model file is about 767KB. + * Model download link: https://github.com/opencv/opencv_zoo/tree/main/models/object_tracking_vittrack + * Author: PengyuLiu, 1872918507\qq.com + */ +@Namespace("cv") @Properties(inherit = org.bytedeco.opencv.presets.opencv_video.class) +public class TrackerVit extends Tracker { + static { Loader.load(); } + /** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */ + public TrackerVit(Pointer p) { super(p); } + + + @NoOffset public static class Params extends Pointer { + static { Loader.load(); } + /** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */ + public Params(Pointer p) { super(p); } + /** Native array allocator. Access with {@link Pointer#position(long)}. */ + public Params(long size) { super((Pointer)null); allocateArray(size); } + private native void allocateArray(long size); + @Override public Params position(long position) { + return (Params)super.position(position); + } + @Override public Params getPointer(long i) { + return new Params((Pointer)this).offsetAddress(i); + } + + public Params() { super((Pointer)null); allocate(); } + private native void allocate(); + public native @StdString BytePointer net(); public native Params net(BytePointer setter); + public native int backend(); public native Params backend(int setter); + public native int target(); public native Params target(int setter); + public native @ByRef Scalar meanvalue(); public native Params meanvalue(Scalar setter); + public native @ByRef Scalar stdvalue(); public native Params stdvalue(Scalar setter); + } + + /** \brief Constructor + @param parameters vit tracker parameters TrackerVit::Params + */ + public static native @Ptr TrackerVit create(@Const @ByRef(nullValue = "cv::TrackerVit::Params()") Params parameters); + public static native @Ptr TrackerVit create(); + + /** \brief Return tracking score + */ + public native float getTrackingScore(); + + // void init(InputArray image, const Rect& boundingBox) CV_OVERRIDE; + // bool update(InputArray image, CV_OUT Rect& boundingBox) CV_OVERRIDE; +} diff --git a/opencv/src/gen/java/org/bytedeco/opencv/opencv_videoio/VideoWriter.java b/opencv/src/gen/java/org/bytedeco/opencv/opencv_videoio/VideoWriter.java index 7681b3823c9..a285945b9c0 100644 --- a/opencv/src/gen/java/org/bytedeco/opencv/opencv_videoio/VideoWriter.java +++ b/opencv/src/gen/java/org/bytedeco/opencv/opencv_videoio/VideoWriter.java @@ -61,7 +61,7 @@ public class VideoWriter extends Pointer { VideoWriter::fourcc('P','I','M','1') is a MPEG-1 codec, VideoWriter::fourcc('M','J','P','G') is a motion-jpeg codec etc. List of codes can be obtained at [MSDN](https://docs.microsoft.com/en-us/windows/win32/medfound/video-fourccs) page - or with this [archived page](https://web.archive.org/web/20220316062600/http://www.fourcc.org/codecs.php) + or with this [page](https://fourcc.org/codecs.php) of the fourcc site for a more complete list). FFMPEG backend with MP4 container natively uses other values as fourcc code: see [ObjectType](http://mp4ra.org/#/codecs), so you may receive a warning message from OpenCV about fourcc code conversion. @@ -77,6 +77,9 @@ public class VideoWriter extends Pointer { - Most codecs are lossy. If you want lossless video file you need to use a lossless codecs (eg. FFMPEG FFV1, Huffman HFYU, Lagarith LAGS, etc...) - If FFMPEG is enabled, using {@code codec=0; fps=0;} you can create an uncompressed (raw) video file. + - If FFMPEG is used, we allow frames of odd width or height, but in this case we truncate + the rightmost column/the bottom row. Probably, this should be handled more elegantly, + but some internal functions inside FFMPEG swscale require even width/height. */ public VideoWriter(@Str BytePointer filename, int fourcc, double fps, @ByVal Size frameSize, @Cast("bool") boolean isColor/*=true*/) { super((Pointer)null); allocate(filename, fourcc, fps, frameSize, isColor); } diff --git a/platform/pom.xml b/platform/pom.xml index cd3f53027ed..c05e8673e99 100644 --- a/platform/pom.xml +++ b/platform/pom.xml @@ -87,7 +87,7 @@ org.bytedeco opencv-platform - 4.8.1-${project.version} + 4.9.0-${project.version} org.bytedeco @@ -252,7 +252,7 @@ org.bytedeco leptonica-platform - 1.83.1-${project.version} + 1.84.0-${project.version} org.bytedeco @@ -317,7 +317,7 @@ org.bytedeco tritonserver-platform - 2.38-${project.version} + 2.41-${project.version} diff --git a/tesseract/platform/pom.xml b/tesseract/platform/pom.xml index d44038c4929..8003efcc48e 100644 --- a/tesseract/platform/pom.xml +++ b/tesseract/platform/pom.xml @@ -23,7 +23,7 @@ org.bytedeco leptonica-platform - 1.83.1-${project.parent.version} + 1.84.0-${project.parent.version} ${project.groupId} diff --git a/tesseract/pom.xml b/tesseract/pom.xml index ccd218e6f57..f0cc477107e 100644 --- a/tesseract/pom.xml +++ b/tesseract/pom.xml @@ -18,7 +18,7 @@ org.bytedeco leptonica - 1.83.1-${project.parent.version} + 1.84.0-${project.parent.version} org.bytedeco @@ -41,12 +41,12 @@ org.bytedeco leptonica - 1.83.1-${project.parent.version} + 1.84.0-${project.parent.version} org.bytedeco leptonica - 1.83.1-${project.parent.version} + 1.84.0-${project.parent.version} ${javacpp.platform} diff --git a/tesseract/src/main/java/org/bytedeco/tesseract/presets/tesseract.java b/tesseract/src/main/java/org/bytedeco/tesseract/presets/tesseract.java index 33e8d021469..19591bb59c2 100644 --- a/tesseract/src/main/java/org/bytedeco/tesseract/presets/tesseract.java +++ b/tesseract/src/main/java/org/bytedeco/tesseract/presets/tesseract.java @@ -42,7 +42,7 @@ @Platform(define = "TESS_CAPI_INCLUDE_BASEAPI", include = {"tesseract/export.h", /*"tesseract/osdetect.h",*/ "tesseract/unichar.h", "tesseract/version.h", "tesseract/publictypes.h", "tesseract/pageiterator.h", "tesseract/ocrclass.h", "tesseract/ltrresultiterator.h", "tesseract/renderer.h", "tesseract/resultiterator.h", "tesseract/baseapi.h", "tesseract/capi.h", "locale.h"}, - compiler = "cpp11", link = "tesseract@.5.3.1"/*, resource = {"include", "lib"}*/), + compiler = "cpp11", link = "tesseract@.5.3.3"/*, resource = {"include", "lib"}*/), @Platform(value = "android", link = "tesseract"), @Platform(value = "windows", link = "tesseract53", preload = "libtesseract53") }) public class tesseract implements InfoMapper { diff --git a/tritonserver/README.md b/tritonserver/README.md index 6e5c79c6777..2964ad4a30c 100644 --- a/tritonserver/README.md +++ b/tritonserver/README.md @@ -23,7 +23,7 @@ Introduction ------------ This directory contains the JavaCPP Presets module for: - * Triton Inference Server 2.38.0 https://github.com/triton-inference-server/server + * Triton Inference Server 2.41.0 https://github.com/triton-inference-server/server Please refer to the parent README.md file for more detailed information about the JavaCPP Presets. @@ -51,9 +51,9 @@ This sample intends to show how to call the Java-mapped C API of Triton to execu 1. Get the source code of Triton Inference Server to prepare the model repository: ```bash - $ wget https://github.com/triton-inference-server/server/archive/refs/tags/v2.38.0.tar.gz - $ tar zxvf v2.38.0.tar.gz - $ cd server-2.38.0/docs/examples/model_repository + $ wget https://github.com/triton-inference-server/server/archive/refs/tags/v2.41.0.tar.gz + $ tar zxvf v2.41.0.tar.gz + $ cd server-2.41.0/docs/examples/model_repository $ mkdir models $ cd models; cp -a ../simple . ``` @@ -61,7 +61,7 @@ Now, this `models` directory will be our model repository. 2. Start the Docker container to run the sample (assuming we are under the `models` directory created above): ```bash - $ docker run -it --gpus=all -v $(pwd):/workspace nvcr.io/nvidia/tritonserver:23.09-py3 bash + $ docker run -it --gpus=all -v $(pwd):/workspace nvcr.io/nvidia/tritonserver:23.12-py3 bash $ apt update $ apt install -y openjdk-11-jdk $ wget https://archive.apache.org/dist/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz diff --git a/tritonserver/cppbuild.sh b/tritonserver/cppbuild.sh index b763b154511..02e9a5fa949 100755 --- a/tritonserver/cppbuild.sh +++ b/tritonserver/cppbuild.sh @@ -11,9 +11,9 @@ INCLUDE_DEVELOPER_TOOLS_SERVER=${INCLUDE_DEVELOPER_TOOLS_SERVER:=1} if [[ ! -f "/opt/tritonserver/include/triton/developer_tools/generic_server_wrapper.h" ]] && [[ ! -f "/opt/tritonserver/lib/libtritondevelopertoolsserver.so" ]] && [[ ${INCLUDE_DEVELOPER_TOOLS_SERVER} -ne 0 ]]; then TOOLS_BRANCH=${TOOLS_BRANCH:="https://github.com/triton-inference-server/developer_tools.git"} - TOOLS_BRANCH_TAG=${TOOLS_BRANCH_TAG:="r23.09"} + TOOLS_BRANCH_TAG=${TOOLS_BRANCH_TAG:="r23.12"} TRITON_CORE_REPO=${TRITON_CORE_REPO:="https://github.com/triton-inference-server/core.git"} - TRITON_CORE_REPO_TAG=${TRITON_CORE_REPO_TAG="r23.09"} + TRITON_CORE_REPO_TAG=${TRITON_CORE_REPO_TAG="r23.12"} TRITON_HOME="/opt/tritonserver" BUILD_HOME="$PWD"/tritonbuild mkdir -p ${BUILD_HOME} && cd ${BUILD_HOME} diff --git a/tritonserver/platform/pom.xml b/tritonserver/platform/pom.xml index 786f800fe42..c1aa26eb78f 100644 --- a/tritonserver/platform/pom.xml +++ b/tritonserver/platform/pom.xml @@ -12,7 +12,7 @@ org.bytedeco tritonserver-platform - 2.38-${project.parent.version} + 2.41-${project.parent.version} JavaCPP Presets Platform for Triton Inference Server diff --git a/tritonserver/platform/redist/pom.xml b/tritonserver/platform/redist/pom.xml index b98f2993993..29cf8c40efd 100644 --- a/tritonserver/platform/redist/pom.xml +++ b/tritonserver/platform/redist/pom.xml @@ -12,7 +12,7 @@ org.bytedeco tritonserver-platform-redist - 2.38-${project.parent.version} + 2.41-${project.parent.version} JavaCPP Presets Platform Redist for Triton Inference Server diff --git a/tritonserver/pom.xml b/tritonserver/pom.xml index 88e4f37e2f0..d5e1769954c 100644 --- a/tritonserver/pom.xml +++ b/tritonserver/pom.xml @@ -11,7 +11,7 @@ org.bytedeco tritonserver - 2.38-${project.parent.version} + 2.41-${project.parent.version} JavaCPP Presets for Triton Inference Server diff --git a/tritonserver/samples/simple/pom.xml b/tritonserver/samples/simple/pom.xml index 3a9b12e480b..6b4e115681f 100644 --- a/tritonserver/samples/simple/pom.xml +++ b/tritonserver/samples/simple/pom.xml @@ -12,7 +12,7 @@ org.bytedeco tritonserver-platform - 2.38-1.5.10-SNAPSHOT + 2.41-1.5.10-SNAPSHOT shaded diff --git a/tritonserver/samples/simplecpp/pom.xml b/tritonserver/samples/simplecpp/pom.xml index b6c7b77bbd1..d7ee49b1b75 100644 --- a/tritonserver/samples/simplecpp/pom.xml +++ b/tritonserver/samples/simplecpp/pom.xml @@ -12,7 +12,7 @@ org.bytedeco tritonserver-platform - 2.38-1.5.10-SNAPSHOT + 2.41-1.5.10-SNAPSHOT shaded diff --git a/tritonserver/samples/unsupported/pom.xml b/tritonserver/samples/unsupported/pom.xml index 283edef403b..50673c4538d 100644 --- a/tritonserver/samples/unsupported/pom.xml +++ b/tritonserver/samples/unsupported/pom.xml @@ -23,7 +23,7 @@ org.bytedeco tritonserver-platform - 2.38-1.5.10-SNAPSHOT + 2.41-1.5.10-SNAPSHOT shaded