[sikuli] 99/385: switch to OpenCV 2.4.8
Gilles Filippini
pini at moszumanska.debian.org
Sun Jun 29 19:25:54 UTC 2014
This is an automated email from the git hooks/post-receive script.
pini pushed a commit to tag upstream/1.1.0_beta1
in repository sikuli.
commit 6d8cee4c3f38b0bf3d38fbe356886b325d21ddb2
Author: Raimund Hocke <info at its-me-raiman.de>
Date: Fri Jan 3 15:33:20 2014 +0100
switch to OpenCV 2.4.8
---
API/src/main/java/org/sikuli/script/Image.java | 72 +-
.../java/org/sikuli/basics/ResourceLoader.java | 10 +-
.../src/main/java/org/sikuli/basics/Settings.java | 19 +-
Libs/build/mac/runBuildVisionProxy.sh | 2 +-
.../libs/mac/libs64/libMacHotkeyManager.dylib | Bin 18476 -> 17088 bytes
.../META-INF/libs/mac/libs64/libMacUtil.dylib | Bin 15428 -> 14740 bytes
.../META-INF/libs/mac/libs64/libVisionProxy.dylib | Bin 411992 -> 435168 bytes
.../libs/mac/libs64/libopencv_java247.dylib | Bin 6386804 -> 0 bytes
.../libs/mac/libs64/libopencv_java248.dylib | Bin 0 -> 6947956 bytes
.../java/org/sikuli/natives/DebugCategories.java | 2 +-
.../main/java/org/sikuli/natives/FindInput.java | 2 +-
.../main/java/org/sikuli/natives/FindResult.java | 2 +-
.../main/java/org/sikuli/natives/FindResults.java | 2 +-
Natives/src/main/java/org/sikuli/natives/Mat.java | 2 +-
Natives/src/main/java/org/sikuli/natives/OCR.java | 2 +-
.../src/main/java/org/sikuli/natives/OCRChar.java | 2 +-
.../src/main/java/org/sikuli/natives/OCRChars.java | 2 +-
.../src/main/java/org/sikuli/natives/OCRLine.java | 2 +-
.../src/main/java/org/sikuli/natives/OCRLines.java | 2 +-
.../main/java/org/sikuli/natives/OCRParagraph.java | 2 +-
.../java/org/sikuli/natives/OCRParagraphs.java | 2 +-
.../src/main/java/org/sikuli/natives/OCRRect.java | 2 +-
.../src/main/java/org/sikuli/natives/OCRText.java | 2 +-
.../src/main/java/org/sikuli/natives/OCRWord.java | 2 +-
.../src/main/java/org/sikuli/natives/OCRWords.java | 2 +-
.../main/java/org/sikuli/natives/TARGET_TYPE.java | 2 +-
.../src/main/java/org/sikuli/natives/Vision.java | 2 +-
.../main/java/org/sikuli/natives/VisionProxy.java | 2 +-
.../java/org/sikuli/natives/VisionProxyJNI.java | 2 +-
Natives/src/main/native/Vision/visionJAVA_wrap.cxx | 2 +-
.../src/main/resources/org/opencv/core/Core.class | Bin 44102 -> 44102 bytes
.../src/main/resources/org/opencv/core/Core.java | 10 +-
.../opencv/features2d/DescriptorExtractor.class | Bin 0 -> 3539 bytes
.../org/opencv/features2d/DescriptorExtractor.java | 279 +++++++
.../org/opencv/features2d/DescriptorMatcher.class | Bin 0 -> 7843 bytes
.../org/opencv/features2d/DescriptorMatcher.java | 750 ++++++++++++++++++
.../org/opencv/features2d/FeatureDetector.class | Bin 0 -> 4620 bytes
.../org/opencv/features2d/FeatureDetector.java | 303 ++++++++
.../org/opencv/features2d/Features2d.class | Bin 0 -> 4994 bytes
.../org/opencv/features2d/Features2d.java | 402 ++++++++++
.../features2d/GenericDescriptorMatcher.class | Bin 0 -> 10691 bytes
.../features2d/GenericDescriptorMatcher.java | 861 +++++++++++++++++++++
.../resources/org/opencv/features2d/KeyPoint.class | Bin 1881 -> 1881 bytes
.../resources/org/opencv/features2d/KeyPoint.java | 85 ++
.../main/resources/org/opencv/gpu/DeviceInfo.class | Bin 0 -> 2464 bytes
.../main/resources/org/opencv/gpu/DeviceInfo.java | 231 ++++++
OpenCV/src/main/resources/org/opencv/gpu/Gpu.class | Bin 0 -> 1739 bytes
OpenCV/src/main/resources/org/opencv/gpu/Gpu.java | 121 +++
.../resources/org/opencv/gpu/TargetArchs.class | Bin 0 -> 1664 bytes
.../main/resources/org/opencv/gpu/TargetArchs.java | 132 ++++
.../resources/org/opencv/highgui/Highgui.class | Bin 8296 -> 8762 bytes
.../main/resources/org/opencv/highgui/Highgui.java | 7 +
.../main/resources/org/opencv/imgproc/Imgproc.java | 4 +-
53 files changed, 3251 insertions(+), 79 deletions(-)
diff --git a/API/src/main/java/org/sikuli/script/Image.java b/API/src/main/java/org/sikuli/script/Image.java
index 40b292a..b0d8fdb 100644
--- a/API/src/main/java/org/sikuli/script/Image.java
+++ b/API/src/main/java/org/sikuli/script/Image.java
@@ -54,9 +54,9 @@ import org.sikuli.natives.Vision;
*
*/
public class Image {
-
+
static {
-// FileManager.loadLibrary("opencv_java247");
+// FileManager.loadLibrary(Settings.libOpenCV);
}
private static String me = "Image";
@@ -100,13 +100,13 @@ public class Image {
private int rowHd = 0;
private int colWd = 0;
-
+
@Override
public String toString() {
return String.format(
(imageName != null ? imageName : "__UNKNOWN__") + ": (%dx%d)", bwidth, bheight)
- + (lastSeen == null ? "" :
+ + (lastSeen == null ? "" :
String.format(" seen at (%d, %d) with %.2f", lastSeen.x, lastSeen.y, lastScore));
}
@@ -131,7 +131,7 @@ public class Image {
* file ending .png is added if missing <br />
* filename: ...url-path.../name[.png] is loaded from the url and and cached <br />
* already loaded image with same url is reused (reference) and taken from cache
- *
+ *
* @param imgName
* @return the image
*/
@@ -146,8 +146,8 @@ public class Image {
/**
* create a new image from a buffered image<br />
* can only be reused with the object reference
- *
- * @param img
+ *
+ * @param img
*/
public Image(BufferedImage img) {
this(img, null);
@@ -157,7 +157,7 @@ public class Image {
* create a new image from a buffered image<br />
* giving it a descriptive name for printout and logging <br />
* can only be reused with the object reference
- *
+ *
* @param img
* @param name descriptive name
*/
@@ -176,8 +176,8 @@ public class Image {
/**
* create a new image from a Sikuli ScreenImage (captured)<br />
* can only be reused with the object reference
- *
- * @param img
+ *
+ * @param img
*/
public Image(ScreenImage img) {
this(img.getImage(), null);
@@ -187,7 +187,7 @@ public class Image {
* create a new image from a Sikuli ScreenImage (captured)<br />
* giving it a descriptive name for printout and logging <br />
* can only be reused with the object reference
- *
+ *
* @param img
* @param name descriptive name
*/
@@ -339,7 +339,7 @@ public class Image {
/**
* Internal Use: IDE: to get rid of cache entries at script close or save as
- *
+ *
* @param bundlePath
*/
public static void purge(String bundlePath) {
@@ -445,7 +445,7 @@ public class Image {
}
/**
- * Get the image's descriptive name
+ * Get the image's descriptive name
*
*/
public String getName() {
@@ -487,12 +487,12 @@ public class Image {
/**
* if the image was already found before
- * @return the similarity score
+ * @return the similarity score
*/
public double getLastSeenScore() {
return lastScore;
}
-
+
/**
* Internal Use: set the last seen info after a find
* @param lastSeen
@@ -505,7 +505,7 @@ public class Image {
group.addImageFacts(this, lastSeen, sim);
}
}
-
+
/**
* create a sub image from this image
* @param x
@@ -521,7 +521,7 @@ public class Image {
g.dispose();
return new Image(bi);
}
-
+
/**
* create a sub image from this image
* @param part (the constants Region.XXX as used with region.get())
@@ -531,7 +531,7 @@ public class Image {
Rectangle r = Region.getRectangle(0, 0, getSize().width, getSize().height, part);
return getSub(r.x, r.y, r.width, r.height);
}
-
+
/**
* store info: this image is divided vertically into n even rows <br />
* a preparation for using getRow()
@@ -541,7 +541,7 @@ public class Image {
public Image setRows(int n) {
return setRaster(n, 0);
}
-
+
/**
* store info: this image is divided horizontally into n even columns <br />
* a preparation for using getCol()
@@ -549,9 +549,9 @@ public class Image {
* @return the leftmost column
*/
public Image setCols(int n) {
- return setRaster(0, n);
+ return setRaster(0, n);
}
-
+
/**
*
* @return number of eventually defined rows in this image or 0
@@ -559,7 +559,7 @@ public class Image {
public int getRows() {
return rows;
}
-
+
/**
*
* @return height of eventually defined rows in this image or 0
@@ -567,7 +567,7 @@ public class Image {
public int getRowH() {
return rowH;
}
-
+
/**
*
* @return number of eventually defined columns in this image or 0
@@ -575,7 +575,7 @@ public class Image {
public int getCols() {
return cols;
}
-
+
/**
*
* @return width of eventually defined columns in this image or 0
@@ -583,11 +583,11 @@ public class Image {
public int getColW() {
return colW;
}
-
+
/**
* store info: this image is divided into a raster of even cells <br />
* a preparation for using getCell()
- * @param r
+ * @param r
* @param c
* @return the top left cell
*/
@@ -604,7 +604,7 @@ public class Image {
}
return getCell(0, 0);
}
-
+
/**
* get the specified row counting from 0, if rows or raster are setup
* negative counts reverse from the end (last = -1)
@@ -623,7 +623,7 @@ public class Image {
r = Math.min(r, rows-1);
return getSub(0, r * rowH, getSize().width, rowH);
}
-
+
/**
* get the specified column counting from 0, if columns or raster are setup
* negative counts reverse from the end (last = -1)
@@ -640,9 +640,9 @@ public class Image {
}
c = Math.max(0, c);
c = Math.min(c, cols-1);
- return getSub(c * colW, 0, colW, getSize().height);
+ return getSub(c * colW, 0, colW, getSize().height);
}
-
+
/**
* get the specified cell counting from (0, 0), if a raster is setup <br />
* negative counts reverse from the end (last = -1)
@@ -666,18 +666,18 @@ public class Image {
r = Math.min(r, rows-1);
c = Math.max(0, c);
c = Math.min(c, cols-1);
- return getSub(c * colW, r * rowH, colW, rowH);
+ return getSub(c * colW, r * rowH, colW, rowH);
}
-
+
/**
* get the OpenCV Mat version of the image's BufferedImage
- *
+ *
* @return OpenCV Mat
*/
public Mat getMat() {
return createMat(get());
}
-
+
protected static Mat createMat(BufferedImage img) {
if (img != null) {
Debug timer = Debug.startTimer("Mat create\t (%d x %d) from \n%s", img.getWidth(), img.getHeight(), img);
@@ -711,7 +711,7 @@ public class Image {
/**
* to get old style OpenCV Mat for FindInput
- *
+ *
* @return SWIG interfaced OpenCV Mat
* @deprecated
*/
@@ -728,7 +728,7 @@ public class Image {
return null;
}
}
-
+
protected static byte[] convertBufferedImageToByteArray(BufferedImage img) {
if (img != null) {
BufferedImage cvImg = createBufferedImage(img.getWidth(), img.getHeight());
diff --git a/Basics/src/main/java/org/sikuli/basics/ResourceLoader.java b/Basics/src/main/java/org/sikuli/basics/ResourceLoader.java
index 6595276..4dedc7a 100755
--- a/Basics/src/main/java/org/sikuli/basics/ResourceLoader.java
+++ b/Basics/src/main/java/org/sikuli/basics/ResourceLoader.java
@@ -39,7 +39,7 @@ public class ResourceLoader implements IResourceLoader {
Debug.logx(level, "", me + ": " + message, args);
}
//</editor-fold>
-
+
private String loaderName = "basic";
private static final String NL = String.format("%n");
private static final String cmdRegCheck = "reg QUERY HKCU";
@@ -91,7 +91,7 @@ public class ResourceLoader implements IResourceLoader {
private static String libSource32 = libSourcebase + "%s/libs32/";
private static String libSource64 = libSourcebase + "%s/libs64/";
private String libSource;
-
+
private String osarch;
private String javahome;
@@ -200,7 +200,7 @@ public class ResourceLoader implements IResourceLoader {
}
}
- // Mac specific
+ // Mac specific
if (Settings.isMac()) {
if (!osarch.contains("64")) {
log(-1, "Mac: only 64-Bit supported");
@@ -215,7 +215,7 @@ public class ResourceLoader implements IResourceLoader {
// }
}
- // Windows specific
+ // Windows specific
if (Settings.isWindows()) {
if (osarch.contains("64")) {
libSource = String.format(libSource64, "windows");
@@ -882,7 +882,7 @@ public class ResourceLoader implements IResourceLoader {
}
} else {
String p = FileManager.slashify(jar.getPath(), false);
- //TODO hack: to get folder Commands and Lib from Basics
+ //TODO hack: to get folder Commands and Lib from Basics
if (path.startsWith("Commands/") || path.startsWith("Lib/")) {
p = p.replace("Natives", "Basics");
}
diff --git a/Basics/src/main/java/org/sikuli/basics/Settings.java b/Basics/src/main/java/org/sikuli/basics/Settings.java
index 09278d0..36d5d2e 100644
--- a/Basics/src/main/java/org/sikuli/basics/Settings.java
+++ b/Basics/src/main/java/org/sikuli/basics/Settings.java
@@ -26,12 +26,12 @@ public class Settings {
Debug.logx(level, level < 0 ? "error" : "debug",
me + ": " + message, args);
}
-
+
public static int breakPoint = 0;
public static boolean handlesMacBundles = true;
public static boolean runningSetup = false;
private static final PreferencesUser prefs = PreferencesUser.getInstance();
-
+
/**
* location of folder Tessdata
*/
@@ -75,22 +75,23 @@ public class Settings {
public static String SikuliVersionIDE;
public static String SikuliVersionScript;
public static final String versionMonth = "January 2014";
-
-
+ public static final String libOpenCV = "libopencv_java248";
+
+
/**
* Resource types to be used with IResourceLoader implementations
*/
public static final String SIKULI_LIB = "*sikuli_lib";
public static String BaseTempPath;
public static String UserName = "UnKnown";
-
+
public static String proxyName = prefs.get("ProxyName", null);
public static String proxyIP = prefs.get("ProxyIP", null);
public static InetAddress proxyAddress = null;
public static String proxyPort = prefs.get("ProxyPort", null);
public static boolean proxyChecked = false;
public static Proxy proxy = null;
-
+
private static Preferences options = Preferences.userNodeForPackage(SikuliX.class);
static {
@@ -116,7 +117,7 @@ public class Settings {
SikuliVersionScript = SikuliVersionDefaultScript;
}
}
-
+
public static final int ISWINDOWS = 0;
public static final int ISMAC = 1;
public static final int ISLINUX = 2;
@@ -171,7 +172,7 @@ public class Settings {
public static float SlowMotionDelay = 2.0f; // in seconds
public static float MoveMouseDelay = 0.5f; // in seconds
private static float MoveMouseDelaySaved = MoveMouseDelay;
-
+
/**
* true = highlight every match (default: false) (show red rectangle around) for
* DefaultHighlightTime seconds (default: 2)
@@ -263,7 +264,7 @@ public class Settings {
public static boolean isLinux() {
return getOS() == ISLINUX;
}
-
+
public static boolean isMac() {
return getOS() == ISMAC;
}
diff --git a/Libs/build/mac/runBuildVisionProxy.sh b/Libs/build/mac/runBuildVisionProxy.sh
index 4cc5462..0600ac7 100644
--- a/Libs/build/mac/runBuildVisionProxy.sh
+++ b/Libs/build/mac/runBuildVisionProxy.sh
@@ -19,7 +19,7 @@ ijava=/System/Library/Frameworks/JavaVM.framework/Headers
# modules the linker should know (have to be checked/adapted on your system)
lnkTess=$DEVLIBS/libtesseract.3.dylib
-lnkCVall=$DEVLIBS/libopencv_java247.dylib
+lnkCVall=$DEVLIBS/libopencv_java248.dylib
# the compile steps
echo -- cvgui
diff --git a/Libs/src/main/resources/META-INF/libs/mac/libs64/libMacHotkeyManager.dylib b/Libs/src/main/resources/META-INF/libs/mac/libs64/libMacHotkeyManager.dylib
index 1c714de..b11b5c5 100755
Binary files a/Libs/src/main/resources/META-INF/libs/mac/libs64/libMacHotkeyManager.dylib and b/Libs/src/main/resources/META-INF/libs/mac/libs64/libMacHotkeyManager.dylib differ
diff --git a/Libs/src/main/resources/META-INF/libs/mac/libs64/libMacUtil.dylib b/Libs/src/main/resources/META-INF/libs/mac/libs64/libMacUtil.dylib
index 09639ae..20881e5 100755
Binary files a/Libs/src/main/resources/META-INF/libs/mac/libs64/libMacUtil.dylib and b/Libs/src/main/resources/META-INF/libs/mac/libs64/libMacUtil.dylib differ
diff --git a/Libs/src/main/resources/META-INF/libs/mac/libs64/libVisionProxy.dylib b/Libs/src/main/resources/META-INF/libs/mac/libs64/libVisionProxy.dylib
index bbbcd59..0b9ee18 100755
Binary files a/Libs/src/main/resources/META-INF/libs/mac/libs64/libVisionProxy.dylib and b/Libs/src/main/resources/META-INF/libs/mac/libs64/libVisionProxy.dylib differ
diff --git a/Libs/src/main/resources/META-INF/libs/mac/libs64/libopencv_java247.dylib b/Libs/src/main/resources/META-INF/libs/mac/libs64/libopencv_java247.dylib
deleted file mode 100755
index 25a3944..0000000
Binary files a/Libs/src/main/resources/META-INF/libs/mac/libs64/libopencv_java247.dylib and /dev/null differ
diff --git a/Libs/src/main/resources/META-INF/libs/mac/libs64/libopencv_java248.dylib b/Libs/src/main/resources/META-INF/libs/mac/libs64/libopencv_java248.dylib
new file mode 100755
index 0000000..9fe86ee
Binary files /dev/null and b/Libs/src/main/resources/META-INF/libs/mac/libs64/libopencv_java248.dylib differ
diff --git a/Natives/src/main/java/org/sikuli/natives/DebugCategories.java b/Natives/src/main/java/org/sikuli/natives/DebugCategories.java
index 727dbc5..66cd350 100644
--- a/Natives/src/main/java/org/sikuli/natives/DebugCategories.java
+++ b/Natives/src/main/java/org/sikuli/natives/DebugCategories.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/FindInput.java b/Natives/src/main/java/org/sikuli/natives/FindInput.java
index 739baa0..6f62269 100644
--- a/Natives/src/main/java/org/sikuli/natives/FindInput.java
+++ b/Natives/src/main/java/org/sikuli/natives/FindInput.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/FindResult.java b/Natives/src/main/java/org/sikuli/natives/FindResult.java
index 3f5df63..a713cf0 100644
--- a/Natives/src/main/java/org/sikuli/natives/FindResult.java
+++ b/Natives/src/main/java/org/sikuli/natives/FindResult.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/FindResults.java b/Natives/src/main/java/org/sikuli/natives/FindResults.java
index 4177904..d1e62dc 100644
--- a/Natives/src/main/java/org/sikuli/natives/FindResults.java
+++ b/Natives/src/main/java/org/sikuli/natives/FindResults.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/Mat.java b/Natives/src/main/java/org/sikuli/natives/Mat.java
index b4bc2e2..4e572c2 100644
--- a/Natives/src/main/java/org/sikuli/natives/Mat.java
+++ b/Natives/src/main/java/org/sikuli/natives/Mat.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/OCR.java b/Natives/src/main/java/org/sikuli/natives/OCR.java
index 6b4fbe0..7eab2a4 100644
--- a/Natives/src/main/java/org/sikuli/natives/OCR.java
+++ b/Natives/src/main/java/org/sikuli/natives/OCR.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/OCRChar.java b/Natives/src/main/java/org/sikuli/natives/OCRChar.java
index d3289bf..dcb90db 100644
--- a/Natives/src/main/java/org/sikuli/natives/OCRChar.java
+++ b/Natives/src/main/java/org/sikuli/natives/OCRChar.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/OCRChars.java b/Natives/src/main/java/org/sikuli/natives/OCRChars.java
index e1d0810..f2e3d63 100644
--- a/Natives/src/main/java/org/sikuli/natives/OCRChars.java
+++ b/Natives/src/main/java/org/sikuli/natives/OCRChars.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/OCRLine.java b/Natives/src/main/java/org/sikuli/natives/OCRLine.java
index 55b119a..108488d 100644
--- a/Natives/src/main/java/org/sikuli/natives/OCRLine.java
+++ b/Natives/src/main/java/org/sikuli/natives/OCRLine.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/OCRLines.java b/Natives/src/main/java/org/sikuli/natives/OCRLines.java
index ef81c54..1e22ecb 100644
--- a/Natives/src/main/java/org/sikuli/natives/OCRLines.java
+++ b/Natives/src/main/java/org/sikuli/natives/OCRLines.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/OCRParagraph.java b/Natives/src/main/java/org/sikuli/natives/OCRParagraph.java
index d0ac51c..30156b8 100644
--- a/Natives/src/main/java/org/sikuli/natives/OCRParagraph.java
+++ b/Natives/src/main/java/org/sikuli/natives/OCRParagraph.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/OCRParagraphs.java b/Natives/src/main/java/org/sikuli/natives/OCRParagraphs.java
index d52cb41..2cbcdd5 100644
--- a/Natives/src/main/java/org/sikuli/natives/OCRParagraphs.java
+++ b/Natives/src/main/java/org/sikuli/natives/OCRParagraphs.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/OCRRect.java b/Natives/src/main/java/org/sikuli/natives/OCRRect.java
index 414c2e9..5bd7082 100644
--- a/Natives/src/main/java/org/sikuli/natives/OCRRect.java
+++ b/Natives/src/main/java/org/sikuli/natives/OCRRect.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/OCRText.java b/Natives/src/main/java/org/sikuli/natives/OCRText.java
index b5e1244..fa2ab49 100644
--- a/Natives/src/main/java/org/sikuli/natives/OCRText.java
+++ b/Natives/src/main/java/org/sikuli/natives/OCRText.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/OCRWord.java b/Natives/src/main/java/org/sikuli/natives/OCRWord.java
index 3a2f1b7..8202dba 100644
--- a/Natives/src/main/java/org/sikuli/natives/OCRWord.java
+++ b/Natives/src/main/java/org/sikuli/natives/OCRWord.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/OCRWords.java b/Natives/src/main/java/org/sikuli/natives/OCRWords.java
index 5bfa271..0354d8a 100644
--- a/Natives/src/main/java/org/sikuli/natives/OCRWords.java
+++ b/Natives/src/main/java/org/sikuli/natives/OCRWords.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/TARGET_TYPE.java b/Natives/src/main/java/org/sikuli/natives/TARGET_TYPE.java
index 4eb56ec..58450c1 100644
--- a/Natives/src/main/java/org/sikuli/natives/TARGET_TYPE.java
+++ b/Natives/src/main/java/org/sikuli/natives/TARGET_TYPE.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/Vision.java b/Natives/src/main/java/org/sikuli/natives/Vision.java
index 91ea42a..055cc81 100644
--- a/Natives/src/main/java/org/sikuli/natives/Vision.java
+++ b/Natives/src/main/java/org/sikuli/natives/Vision.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/VisionProxy.java b/Natives/src/main/java/org/sikuli/natives/VisionProxy.java
index 14390a1..e797a19 100644
--- a/Natives/src/main/java/org/sikuli/natives/VisionProxy.java
+++ b/Natives/src/main/java/org/sikuli/natives/VisionProxy.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/java/org/sikuli/natives/VisionProxyJNI.java b/Natives/src/main/java/org/sikuli/natives/VisionProxyJNI.java
index fb02fe3..1130de2 100644
--- a/Natives/src/main/java/org/sikuli/natives/VisionProxyJNI.java
+++ b/Natives/src/main/java/org/sikuli/natives/VisionProxyJNI.java
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
diff --git a/Natives/src/main/native/Vision/visionJAVA_wrap.cxx b/Natives/src/main/native/Vision/visionJAVA_wrap.cxx
index 77fa65d..a289a5e 100755
--- a/Natives/src/main/native/Vision/visionJAVA_wrap.cxx
+++ b/Natives/src/main/native/Vision/visionJAVA_wrap.cxx
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.10
+ * Version 2.0.7
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make
diff --git a/OpenCV/src/main/resources/org/opencv/core/Core.class b/OpenCV/src/main/resources/org/opencv/core/Core.class
index 23289b8..7a7128b 100644
Binary files a/OpenCV/src/main/resources/org/opencv/core/Core.class and b/OpenCV/src/main/resources/org/opencv/core/Core.class differ
diff --git a/OpenCV/src/main/resources/org/opencv/core/Core.java b/OpenCV/src/main/resources/org/opencv/core/Core.java
index 3438102..c522a79 100644
--- a/OpenCV/src/main/resources/org/opencv/core/Core.java
+++ b/OpenCV/src/main/resources/org/opencv/core/Core.java
@@ -12,11 +12,11 @@ import org.opencv.utils.Converters;
public class Core {
// these constants are wrapped inside functions to prevent inlining
- private static String getVersion() { return "2.4.7.0"; }
- private static String getNativeLibraryName() { return "opencv_java247"; }
+ private static String getVersion() { return "2.4.8.0"; }
+ private static String getNativeLibraryName() { return "opencv_java248"; }
private static int getVersionEpoch() { return 2; }
private static int getVersionMajor() { return 4; }
- private static int getVersionMinor() { return 7; }
+ private static int getVersionMinor() { return 8; }
private static int getVersionRevision() { return 0; }
public static final String VERSION = getVersion();
@@ -2372,7 +2372,7 @@ public class Core {
* matrix of the same size as input. In case of 2D transform, it uses the packed
* format as shown above. In case of a single 1D transform, it looks like the
* first row of the matrix above. In case of multiple 1D transforms (when using
- * the <code>DCT_ROWS</code> flag), each row of the output matrix looks like the
+ * the <code>DFT_ROWS</code> flag), each row of the output matrix looks like the
* first row of the matrix above.
* <li> If the input array is complex and either <code>DFT_INVERSE</code> or
* <code>DFT_REAL_OUTPUT</code> are not set, the output is a complex array of
@@ -2635,7 +2635,7 @@ public class Core {
* matrix of the same size as input. In case of 2D transform, it uses the packed
* format as shown above. In case of a single 1D transform, it looks like the
* first row of the matrix above. In case of multiple 1D transforms (when using
- * the <code>DCT_ROWS</code> flag), each row of the output matrix looks like the
+ * the <code>DFT_ROWS</code> flag), each row of the output matrix looks like the
* first row of the matrix above.
* <li> If the input array is complex and either <code>DFT_INVERSE</code> or
* <code>DFT_REAL_OUTPUT</code> are not set, the output is a complex array of
diff --git a/OpenCV/src/main/resources/org/opencv/features2d/DescriptorExtractor.class b/OpenCV/src/main/resources/org/opencv/features2d/DescriptorExtractor.class
new file mode 100644
index 0000000..24d0aeb
Binary files /dev/null and b/OpenCV/src/main/resources/org/opencv/features2d/DescriptorExtractor.class differ
diff --git a/OpenCV/src/main/resources/org/opencv/features2d/DescriptorExtractor.java b/OpenCV/src/main/resources/org/opencv/features2d/DescriptorExtractor.java
new file mode 100644
index 0000000..f187f60
--- /dev/null
+++ b/OpenCV/src/main/resources/org/opencv/features2d/DescriptorExtractor.java
@@ -0,0 +1,279 @@
+
+//
+// This file is auto-generated. Please don't modify it!
+//
+package org.opencv.features2d;
+
+import java.lang.String;
+import java.util.ArrayList;
+import java.util.List;
+import org.opencv.core.Mat;
+import org.opencv.core.MatOfKeyPoint;
+import org.opencv.utils.Converters;
+
+// C++: class javaDescriptorExtractor
+/**
+ * <p>Abstract base class for computing descriptors for image keypoints.</p>
+ *
+ * <p>class CV_EXPORTS DescriptorExtractor <code></p>
+ *
+ * <p>// C++ code:</p>
+ *
+ *
+ * <p>public:</p>
+ *
+ * <p>virtual ~DescriptorExtractor();</p>
+ *
+ * <p>void compute(const Mat& image, vector<KeyPoint>& keypoints,</p>
+ *
+ * <p>Mat& descriptors) const;</p>
+ *
+ * <p>void compute(const vector<Mat>& images, vector<vector<KeyPoint> >& keypoints,</p>
+ *
+ * <p>vector<Mat>& descriptors) const;</p>
+ *
+ * <p>virtual void read(const FileNode&);</p>
+ *
+ * <p>virtual void write(FileStorage&) const;</p>
+ *
+ * <p>virtual int descriptorSize() const = 0;</p>
+ *
+ * <p>virtual int descriptorType() const = 0;</p>
+ *
+ * <p>static Ptr<DescriptorExtractor> create(const string& descriptorExtractorType);</p>
+ *
+ * <p>protected:...</p>
+ *
+ * <p>};</p>
+ *
+ * <p>In this interface, a keypoint descriptor can be represented as a </code></p>
+ *
+ * <p>dense, fixed-dimension vector of a basic type. Most descriptors follow this
+ * pattern as it simplifies computing distances between descriptors. Therefore,
+ * a collection of descriptors is represented as "Mat", where each row is a
+ * keypoint descriptor.</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_extractors.html#descriptorextractor">org.opencv.features2d.DescriptorExtractor : public Algorithm</a>
+ */
+public class DescriptorExtractor {
+
+ protected final long nativeObj;
+ protected DescriptorExtractor(long addr) { nativeObj = addr; }
+
+
+ private static final int
+ OPPONENTEXTRACTOR = 1000;
+
+
+ public static final int
+ SIFT = 1,
+ SURF = 2,
+ ORB = 3,
+ BRIEF = 4,
+ BRISK = 5,
+ FREAK = 6,
+ OPPONENT_SIFT = OPPONENTEXTRACTOR + SIFT,
+ OPPONENT_SURF = OPPONENTEXTRACTOR + SURF,
+ OPPONENT_ORB = OPPONENTEXTRACTOR + ORB,
+ OPPONENT_BRIEF = OPPONENTEXTRACTOR + BRIEF,
+ OPPONENT_BRISK = OPPONENTEXTRACTOR + BRISK,
+ OPPONENT_FREAK = OPPONENTEXTRACTOR + FREAK;
+
+
+ //
+ // C++: void javaDescriptorExtractor::compute(Mat image, vector_KeyPoint& keypoints, Mat descriptors)
+ //
+
+/**
+ * <p>Computes the descriptors for a set of keypoints detected in an image (first
+ * variant) or image set (second variant).</p>
+ *
+ * @param image Image.
+ * @param keypoints Input collection of keypoints. Keypoints for which a
+ * descriptor cannot be computed are removed. Sometimes new keypoints can be
+ * added, for example: <code>SIFT</code> duplicates keypoint with several
+ * dominant orientations (for each orientation).
+ * @param descriptors Computed descriptors. In the second variant of the method
+ * <code>descriptors[i]</code> are descriptors computed for a <code>keypoints[i]".
+ * Row </code>j<code> is the </code>keypoints<code> (or </code>keypoints[i]<code>)
+ * is the descriptor for keypoint </code>j"-th keypoint.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_extractors.html#descriptorextractor-compute">org.opencv.features2d.DescriptorExtractor.compute</a>
+ */
+ public void compute(Mat image, MatOfKeyPoint keypoints, Mat descriptors)
+ {
+ Mat keypoints_mat = keypoints;
+ compute_0(nativeObj, image.nativeObj, keypoints_mat.nativeObj, descriptors.nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaDescriptorExtractor::compute(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat& descriptors)
+ //
+
+/**
+ * <p>Computes the descriptors for a set of keypoints detected in an image (first
+ * variant) or image set (second variant).</p>
+ *
+ * @param images Image set.
+ * @param keypoints Input collection of keypoints. Keypoints for which a
+ * descriptor cannot be computed are removed. Sometimes new keypoints can be
+ * added, for example: <code>SIFT</code> duplicates keypoint with several
+ * dominant orientations (for each orientation).
+ * @param descriptors Computed descriptors. In the second variant of the method
+ * <code>descriptors[i]</code> are descriptors computed for a <code>keypoints[i]".
+ * Row </code>j<code> is the </code>keypoints<code> (or </code>keypoints[i]<code>)
+ * is the descriptor for keypoint </code>j"-th keypoint.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_extractors.html#descriptorextractor-compute">org.opencv.features2d.DescriptorExtractor.compute</a>
+ */
+ public void compute(List<Mat> images, List<MatOfKeyPoint> keypoints, List<Mat> descriptors)
+ {
+ Mat images_mat = Converters.vector_Mat_to_Mat(images);
+ List<Mat> keypoints_tmplm = new ArrayList<Mat>((keypoints != null) ? keypoints.size() : 0);
+ Mat keypoints_mat = Converters.vector_vector_KeyPoint_to_Mat(keypoints, keypoints_tmplm);
+ Mat descriptors_mat = new Mat();
+ compute_1(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj, descriptors_mat.nativeObj);
+ Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints);
+ Converters.Mat_to_vector_Mat(descriptors_mat, descriptors);
+ return;
+ }
+
+
+ //
+ // C++: static javaDescriptorExtractor* javaDescriptorExtractor::create(int extractorType)
+ //
+
+/**
+ * <p>Creates a descriptor extractor by name.</p>
+ *
+ * <p>The current implementation supports the following types of a descriptor
+ * extractor:</p>
+ * <ul>
+ * <li> <code>"SIFT"</code> -- "SIFT"
+ * <li> <code>"SURF"</code> -- "SURF"
+ * <li> <code>"BRIEF"</code> -- "BriefDescriptorExtractor"
+ * <li> <code>"BRISK"</code> -- "BRISK"
+ * <li> <code>"ORB"</code> -- "ORB"
+ * <li> <code>"FREAK"</code> -- "FREAK"
+ * </ul>
+ *
+ * <p>A combined format is also supported: descriptor extractor adapter name
+ * (<code>"Opponent"</code> -- "OpponentColorDescriptorExtractor") + descriptor
+ * extractor name (see above), for example: <code>"OpponentSIFT"</code>.</p>
+ *
+ * @param extractorType a extractorType
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_extractors.html#descriptorextractor-create">org.opencv.features2d.DescriptorExtractor.create</a>
+ */
+ public static DescriptorExtractor create(int extractorType)
+ {
+
+ DescriptorExtractor retVal = new DescriptorExtractor(create_0(extractorType));
+
+ return retVal;
+ }
+
+
+ //
+ // C++: int javaDescriptorExtractor::descriptorSize()
+ //
+
+ public int descriptorSize()
+ {
+
+ int retVal = descriptorSize_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: int javaDescriptorExtractor::descriptorType()
+ //
+
+ public int descriptorType()
+ {
+
+ int retVal = descriptorType_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: bool javaDescriptorExtractor::empty()
+ //
+
+ public boolean empty()
+ {
+
+ boolean retVal = empty_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: void javaDescriptorExtractor::read(string fileName)
+ //
+
+ public void read(String fileName)
+ {
+
+ read_0(nativeObj, fileName);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaDescriptorExtractor::write(string fileName)
+ //
+
+ public void write(String fileName)
+ {
+
+ write_0(nativeObj, fileName);
+
+ return;
+ }
+
+
+ @Override
+ protected void finalize() throws Throwable {
+ delete(nativeObj);
+ }
+
+
+
+ // C++: void javaDescriptorExtractor::compute(Mat image, vector_KeyPoint& keypoints, Mat descriptors)
+ private static native void compute_0(long nativeObj, long image_nativeObj, long keypoints_mat_nativeObj, long descriptors_nativeObj);
+
+ // C++: void javaDescriptorExtractor::compute(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat& descriptors)
+ private static native void compute_1(long nativeObj, long images_mat_nativeObj, long keypoints_mat_nativeObj, long descriptors_mat_nativeObj);
+
+ // C++: static javaDescriptorExtractor* javaDescriptorExtractor::create(int extractorType)
+ private static native long create_0(int extractorType);
+
+ // C++: int javaDescriptorExtractor::descriptorSize()
+ private static native int descriptorSize_0(long nativeObj);
+
+ // C++: int javaDescriptorExtractor::descriptorType()
+ private static native int descriptorType_0(long nativeObj);
+
+ // C++: bool javaDescriptorExtractor::empty()
+ private static native boolean empty_0(long nativeObj);
+
+ // C++: void javaDescriptorExtractor::read(string fileName)
+ private static native void read_0(long nativeObj, String fileName);
+
+ // C++: void javaDescriptorExtractor::write(string fileName)
+ private static native void write_0(long nativeObj, String fileName);
+
+ // native support for java finalize()
+ private static native void delete(long nativeObj);
+
+}
diff --git a/OpenCV/src/main/resources/org/opencv/features2d/DescriptorMatcher.class b/OpenCV/src/main/resources/org/opencv/features2d/DescriptorMatcher.class
new file mode 100644
index 0000000..8036890
Binary files /dev/null and b/OpenCV/src/main/resources/org/opencv/features2d/DescriptorMatcher.class differ
diff --git a/OpenCV/src/main/resources/org/opencv/features2d/DescriptorMatcher.java b/OpenCV/src/main/resources/org/opencv/features2d/DescriptorMatcher.java
new file mode 100644
index 0000000..e5cda74
--- /dev/null
+++ b/OpenCV/src/main/resources/org/opencv/features2d/DescriptorMatcher.java
@@ -0,0 +1,750 @@
+
+//
+// This file is auto-generated. Please don't modify it!
+//
+package org.opencv.features2d;
+
+import java.lang.String;
+import java.util.ArrayList;
+import java.util.List;
+import org.opencv.core.Mat;
+import org.opencv.core.MatOfDMatch;
+import org.opencv.utils.Converters;
+
+// C++: class javaDescriptorMatcher
+/**
+ * <p>Abstract base class for matching keypoint descriptors. It has two groups of
+ * match methods: for matching descriptors of an image with another image or
+ * with an image set.</p>
+ *
+ * <p>class DescriptorMatcher <code></p>
+ *
+ * <p>// C++ code:</p>
+ *
+ *
+ * <p>public:</p>
+ *
+ * <p>virtual ~DescriptorMatcher();</p>
+ *
+ * <p>virtual void add(const vector<Mat>& descriptors);</p>
+ *
+ * <p>const vector<Mat>& getTrainDescriptors() const;</p>
+ *
+ * <p>virtual void clear();</p>
+ *
+ * <p>bool empty() const;</p>
+ *
+ * <p>virtual bool isMaskSupported() const = 0;</p>
+ *
+ * <p>virtual void train();</p>
+ *
+ * <p>/ *</p>
+ * <ul>
+ * <li> Group of methods to match descriptors from an image pair.
+ * <li> /
+ * </ul>
+ *
+ * <p>void match(const Mat& queryDescriptors, const Mat& trainDescriptors,</p>
+ *
+ * <p>vector<DMatch>& matches, const Mat& mask=Mat()) const;</p>
+ *
+ * <p>void knnMatch(const Mat& queryDescriptors, const Mat& trainDescriptors,</p>
+ *
+ * <p>vector<vector<DMatch> >& matches, int k,</p>
+ *
+ * <p>const Mat& mask=Mat(), bool compactResult=false) const;</p>
+ *
+ * <p>void radiusMatch(const Mat& queryDescriptors, const Mat& trainDescriptors,</p>
+ *
+ * <p>vector<vector<DMatch> >& matches, float maxDistance,</p>
+ *
+ * <p>const Mat& mask=Mat(), bool compactResult=false) const;</p>
+ *
+ * <p>/ *</p>
+ * <ul>
+ * <li> Group of methods to match descriptors from one image to an image set.
+ * <li> /
+ * </ul>
+ *
+ * <p>void match(const Mat& queryDescriptors, vector<DMatch>& matches,</p>
+ *
+ * <p>const vector<Mat>& masks=vector<Mat>());</p>
+ *
+ * <p>void knnMatch(const Mat& queryDescriptors, vector<vector<DMatch> >& matches,</p>
+ *
+ * <p>int k, const vector<Mat>& masks=vector<Mat>(),</p>
+ *
+ * <p>bool compactResult=false);</p>
+ *
+ * <p>void radiusMatch(const Mat& queryDescriptors, vector<vector<DMatch> >&
+ * matches,</p>
+ *
+ * <p>float maxDistance, const vector<Mat>& masks=vector<Mat>(),</p>
+ *
+ * <p>bool compactResult=false);</p>
+ *
+ * <p>virtual void read(const FileNode&);</p>
+ *
+ * <p>virtual void write(FileStorage&) const;</p>
+ *
+ * <p>virtual Ptr<DescriptorMatcher> clone(bool emptyTrainData=false) const = 0;</p>
+ *
+ * <p>static Ptr<DescriptorMatcher> create(const string& descriptorMatcherType);</p>
+ *
+ * <p>protected:</p>
+ *
+ * <p>vector<Mat> trainDescCollection;...</p>
+ *
+ * <p>};</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher">org.opencv.features2d.DescriptorMatcher : public Algorithm</a>
+ */
+public class DescriptorMatcher {
+
+ protected final long nativeObj;
+ protected DescriptorMatcher(long addr) { nativeObj = addr; }
+
+
+ public static final int
+ FLANNBASED = 1,
+ BRUTEFORCE = 2,
+ BRUTEFORCE_L1 = 3,
+ BRUTEFORCE_HAMMING = 4,
+ BRUTEFORCE_HAMMINGLUT = 5,
+ BRUTEFORCE_SL2 = 6;
+
+
+ //
+ // C++: void javaDescriptorMatcher::add(vector_Mat descriptors)
+ //
+
+/**
+ * <p>Adds descriptors to train a descriptor collection. If the collection
+ * <code>trainDescCollectionis</code> is not empty, the new descriptors are
+ * added to existing train descriptors.</p>
+ *
+ * @param descriptors Descriptors to add. Each <code>descriptors[i]</code> is a
+ * set of descriptors from the same train image.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-add">org.opencv.features2d.DescriptorMatcher.add</a>
+ */
+ public void add(List<Mat> descriptors)
+ {
+ Mat descriptors_mat = Converters.vector_Mat_to_Mat(descriptors);
+ add_0(nativeObj, descriptors_mat.nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaDescriptorMatcher::clear()
+ //
+
+/**
+ * <p>Clears the train descriptor collection.</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-clear">org.opencv.features2d.DescriptorMatcher.clear</a>
+ */
+ public void clear()
+ {
+
+ clear_0(nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: javaDescriptorMatcher* javaDescriptorMatcher::jclone(bool emptyTrainData = false)
+ //
+
+ public DescriptorMatcher clone(boolean emptyTrainData)
+ {
+
+ DescriptorMatcher retVal = new DescriptorMatcher(clone_0(nativeObj, emptyTrainData));
+
+ return retVal;
+ }
+
+ public DescriptorMatcher clone()
+ {
+
+ DescriptorMatcher retVal = new DescriptorMatcher(clone_1(nativeObj));
+
+ return retVal;
+ }
+
+
+ //
+ // C++: static javaDescriptorMatcher* javaDescriptorMatcher::create(int matcherType)
+ //
+
+/**
+ * <p>Creates a descriptor matcher of a given type with the default parameters
+ * (using default constructor).</p>
+ *
+ * @param matcherType a matcherType
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-create">org.opencv.features2d.DescriptorMatcher.create</a>
+ */
+ public static DescriptorMatcher create(int matcherType)
+ {
+
+ DescriptorMatcher retVal = new DescriptorMatcher(create_0(matcherType));
+
+ return retVal;
+ }
+
+
+ //
+ // C++: bool javaDescriptorMatcher::empty()
+ //
+
+/**
+ * <p>Returns true if there are no train descriptors in the collection.</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-empty">org.opencv.features2d.DescriptorMatcher.empty</a>
+ */
+ public boolean empty()
+ {
+
+ boolean retVal = empty_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: vector_Mat javaDescriptorMatcher::getTrainDescriptors()
+ //
+
+/**
+ * <p>Returns a constant link to the train descriptor collection <code>trainDescCollection</code>.</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-gettraindescriptors">org.opencv.features2d.DescriptorMatcher.getTrainDescriptors</a>
+ */
+ public List<Mat> getTrainDescriptors()
+ {
+ List<Mat> retVal = new ArrayList<Mat>();
+ Mat retValMat = new Mat(getTrainDescriptors_0(nativeObj));
+ Converters.Mat_to_vector_Mat(retValMat, retVal);
+ return retVal;
+ }
+
+
+ //
+ // C++: bool javaDescriptorMatcher::isMaskSupported()
+ //
+
+/**
+ * <p>Returns true if the descriptor matcher supports masking permissible matches.</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-ismasksupported">org.opencv.features2d.DescriptorMatcher.isMaskSupported</a>
+ */
+ public boolean isMaskSupported()
+ {
+
+ boolean retVal = isMaskSupported_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: void javaDescriptorMatcher::knnMatch(Mat queryDescriptors, Mat trainDescriptors, vector_vector_DMatch& matches, int k, Mat mask = Mat(), bool compactResult = false)
+ //
+
+/**
+ * <p>Finds the k best matches for each descriptor from a query set.</p>
+ *
+ * <p>These extended variants of "DescriptorMatcher.match" methods find several
+ * best matches for each query descriptor. The matches are returned in the
+ * distance increasing order. See "DescriptorMatcher.match" for the details
+ * about query and train descriptors.</p>
+ *
+ * @param queryDescriptors Query set of descriptors.
+ * @param trainDescriptors Train set of descriptors. This set is not added to
+ * the train descriptors collection stored in the class object.
+ * @param matches Matches. Each <code>matches[i]</code> is k or less matches for
+ * the same query descriptor.
+ * @param k Count of best matches found per each query descriptor or less if a
+ * query descriptor has less than k possible matches in total.
+ * @param mask Mask specifying permissible matches between an input query and
+ * train matrices of descriptors.
+ * @param compactResult Parameter used when the mask (or masks) is not empty. If
+ * <code>compactResult</code> is false, the <code>matches</code> vector has the
+ * same size as <code>queryDescriptors</code> rows. If <code>compactResult</code>
+ * is true, the <code>matches</code> vector does not contain matches for fully
+ * masked-out query descriptors.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-knnmatch">org.opencv.features2d.DescriptorMatcher.knnMatch</a>
+ */
+ public void knnMatch(Mat queryDescriptors, Mat trainDescriptors, List<MatOfDMatch> matches, int k, Mat mask, boolean compactResult)
+ {
+ Mat matches_mat = new Mat();
+ knnMatch_0(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, k, mask.nativeObj, compactResult);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+/**
+ * <p>Finds the k best matches for each descriptor from a query set.</p>
+ *
+ * <p>These extended variants of "DescriptorMatcher.match" methods find several
+ * best matches for each query descriptor. The matches are returned in the
+ * distance increasing order. See "DescriptorMatcher.match" for the details
+ * about query and train descriptors.</p>
+ *
+ * @param queryDescriptors Query set of descriptors.
+ * @param trainDescriptors Train set of descriptors. This set is not added to
+ * the train descriptors collection stored in the class object.
+ * @param matches Matches. Each <code>matches[i]</code> is k or less matches for
+ * the same query descriptor.
+ * @param k Count of best matches found per each query descriptor or less if a
+ * query descriptor has less than k possible matches in total.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-knnmatch">org.opencv.features2d.DescriptorMatcher.knnMatch</a>
+ */
+ public void knnMatch(Mat queryDescriptors, Mat trainDescriptors, List<MatOfDMatch> matches, int k)
+ {
+ Mat matches_mat = new Mat();
+ knnMatch_1(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, k);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+
+ //
+ // C++: void javaDescriptorMatcher::knnMatch(Mat queryDescriptors, vector_vector_DMatch& matches, int k, vector_Mat masks = vector<Mat>(), bool compactResult = false)
+ //
+
+/**
+ * <p>Finds the k best matches for each descriptor from a query set.</p>
+ *
+ * <p>These extended variants of "DescriptorMatcher.match" methods find several
+ * best matches for each query descriptor. The matches are returned in the
+ * distance increasing order. See "DescriptorMatcher.match" for the details
+ * about query and train descriptors.</p>
+ *
+ * @param queryDescriptors Query set of descriptors.
+ * @param matches Matches. Each <code>matches[i]</code> is k or less matches for
+ * the same query descriptor.
+ * @param k Count of best matches found per each query descriptor or less if a
+ * query descriptor has less than k possible matches in total.
+ * @param masks Set of masks. Each <code>masks[i]</code> specifies permissible
+ * matches between the input query descriptors and stored train descriptors from
+ * the i-th image <code>trainDescCollection[i]</code>.
+ * @param compactResult Parameter used when the mask (or masks) is not empty. If
+ * <code>compactResult</code> is false, the <code>matches</code> vector has the
+ * same size as <code>queryDescriptors</code> rows. If <code>compactResult</code>
+ * is true, the <code>matches</code> vector does not contain matches for fully
+ * masked-out query descriptors.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-knnmatch">org.opencv.features2d.DescriptorMatcher.knnMatch</a>
+ */
+ public void knnMatch(Mat queryDescriptors, List<MatOfDMatch> matches, int k, List<Mat> masks, boolean compactResult)
+ {
+ Mat matches_mat = new Mat();
+ Mat masks_mat = Converters.vector_Mat_to_Mat(masks);
+ knnMatch_2(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, k, masks_mat.nativeObj, compactResult);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+/**
+ * <p>Finds the k best matches for each descriptor from a query set.</p>
+ *
+ * <p>These extended variants of "DescriptorMatcher.match" methods find several
+ * best matches for each query descriptor. The matches are returned in the
+ * distance increasing order. See "DescriptorMatcher.match" for the details
+ * about query and train descriptors.</p>
+ *
+ * @param queryDescriptors Query set of descriptors.
+ * @param matches Matches. Each <code>matches[i]</code> is k or less matches for
+ * the same query descriptor.
+ * @param k Count of best matches found per each query descriptor or less if a
+ * query descriptor has less than k possible matches in total.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-knnmatch">org.opencv.features2d.DescriptorMatcher.knnMatch</a>
+ */
+ public void knnMatch(Mat queryDescriptors, List<MatOfDMatch> matches, int k)
+ {
+ Mat matches_mat = new Mat();
+ knnMatch_3(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, k);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+
+ //
+ // C++: void javaDescriptorMatcher::match(Mat queryDescriptors, Mat trainDescriptors, vector_DMatch& matches, Mat mask = Mat())
+ //
+
+/**
+ * <p>Finds the best match for each descriptor from a query set.</p>
+ *
+ * <p>In the first variant of this method, the train descriptors are passed as an
+ * input argument. In the second variant of the method, train descriptors
+ * collection that was set by <code>DescriptorMatcher.add</code> is used.
+ * Optional mask (or masks) can be passed to specify which query and training
+ * descriptors can be matched. Namely, <code>queryDescriptors[i]</code> can be
+ * matched with <code>trainDescriptors[j]</code> only if <code>mask.at<uchar>(i,j)</code>
+ * is non-zero.</p>
+ *
+ * @param queryDescriptors Query set of descriptors.
+ * @param trainDescriptors Train set of descriptors. This set is not added to
+ * the train descriptors collection stored in the class object.
+ * @param matches Matches. If a query descriptor is masked out in
+ * <code>mask</code>, no match is added for this descriptor. So,
+ * <code>matches</code> size may be smaller than the query descriptors count.
+ * @param mask Mask specifying permissible matches between an input query and
+ * train matrices of descriptors.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-match">org.opencv.features2d.DescriptorMatcher.match</a>
+ */
+ public void match(Mat queryDescriptors, Mat trainDescriptors, MatOfDMatch matches, Mat mask)
+ {
+ Mat matches_mat = matches;
+ match_0(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, mask.nativeObj);
+
+ return;
+ }
+
+/**
+ * <p>Finds the best match for each descriptor from a query set.</p>
+ *
+ * <p>In the first variant of this method, the train descriptors are passed as an
+ * input argument. In the second variant of the method, train descriptors
+ * collection that was set by <code>DescriptorMatcher.add</code> is used.
+ * Optional mask (or masks) can be passed to specify which query and training
+ * descriptors can be matched. Namely, <code>queryDescriptors[i]</code> can be
+ * matched with <code>trainDescriptors[j]</code> only if <code>mask.at<uchar>(i,j)</code>
+ * is non-zero.</p>
+ *
+ * @param queryDescriptors Query set of descriptors.
+ * @param trainDescriptors Train set of descriptors. This set is not added to
+ * the train descriptors collection stored in the class object.
+ * @param matches Matches. If a query descriptor is masked out in
+ * <code>mask</code>, no match is added for this descriptor. So,
+ * <code>matches</code> size may be smaller than the query descriptors count.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-match">org.opencv.features2d.DescriptorMatcher.match</a>
+ */
+ public void match(Mat queryDescriptors, Mat trainDescriptors, MatOfDMatch matches)
+ {
+ Mat matches_mat = matches;
+ match_1(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaDescriptorMatcher::match(Mat queryDescriptors, vector_DMatch& matches, vector_Mat masks = vector<Mat>())
+ //
+
+/**
+ * <p>Finds the best match for each descriptor from a query set.</p>
+ *
+ * <p>In the first variant of this method, the train descriptors are passed as an
+ * input argument. In the second variant of the method, train descriptors
+ * collection that was set by <code>DescriptorMatcher.add</code> is used.
+ * Optional mask (or masks) can be passed to specify which query and training
+ * descriptors can be matched. Namely, <code>queryDescriptors[i]</code> can be
+ * matched with <code>trainDescriptors[j]</code> only if <code>mask.at<uchar>(i,j)</code>
+ * is non-zero.</p>
+ *
+ * @param queryDescriptors Query set of descriptors.
+ * @param matches Matches. If a query descriptor is masked out in
+ * <code>mask</code>, no match is added for this descriptor. So,
+ * <code>matches</code> size may be smaller than the query descriptors count.
+ * @param masks Set of masks. Each <code>masks[i]</code> specifies permissible
+ * matches between the input query descriptors and stored train descriptors from
+ * the i-th image <code>trainDescCollection[i]</code>.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-match">org.opencv.features2d.DescriptorMatcher.match</a>
+ */
+ public void match(Mat queryDescriptors, MatOfDMatch matches, List<Mat> masks)
+ {
+ Mat matches_mat = matches;
+ Mat masks_mat = Converters.vector_Mat_to_Mat(masks);
+ match_2(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, masks_mat.nativeObj);
+
+ return;
+ }
+
+/**
+ * <p>Finds the best match for each descriptor from a query set.</p>
+ *
+ * <p>In the first variant of this method, the train descriptors are passed as an
+ * input argument. In the second variant of the method, train descriptors
+ * collection that was set by <code>DescriptorMatcher.add</code> is used.
+ * Optional mask (or masks) can be passed to specify which query and training
+ * descriptors can be matched. Namely, <code>queryDescriptors[i]</code> can be
+ * matched with <code>trainDescriptors[j]</code> only if <code>mask.at<uchar>(i,j)</code>
+ * is non-zero.</p>
+ *
+ * @param queryDescriptors Query set of descriptors.
+ * @param matches Matches. If a query descriptor is masked out in
+ * <code>mask</code>, no match is added for this descriptor. So,
+ * <code>matches</code> size may be smaller than the query descriptors count.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-match">org.opencv.features2d.DescriptorMatcher.match</a>
+ */
+ public void match(Mat queryDescriptors, MatOfDMatch matches)
+ {
+ Mat matches_mat = matches;
+ match_3(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaDescriptorMatcher::radiusMatch(Mat queryDescriptors, Mat trainDescriptors, vector_vector_DMatch& matches, float maxDistance, Mat mask = Mat(), bool compactResult = false)
+ //
+
+/**
+ * <p>For each query descriptor, finds the training descriptors not farther than
+ * the specified distance.</p>
+ *
+ * <p>For each query descriptor, the methods find such training descriptors that
+ * the distance between the query descriptor and the training descriptor is
+ * equal or smaller than <code>maxDistance</code>. Found matches are returned in
+ * the distance increasing order.</p>
+ *
+ * @param queryDescriptors Query set of descriptors.
+ * @param trainDescriptors Train set of descriptors. This set is not added to
+ * the train descriptors collection stored in the class object.
+ * @param matches Found matches.
+ * @param maxDistance Threshold for the distance between matched descriptors.
+ * Distance means here metric distance (e.g. Hamming distance), not the distance
+ * between coordinates (which is measured in Pixels)!
+ * @param mask Mask specifying permissible matches between an input query and
+ * train matrices of descriptors.
+ * @param compactResult Parameter used when the mask (or masks) is not empty. If
+ * <code>compactResult</code> is false, the <code>matches</code> vector has the
+ * same size as <code>queryDescriptors</code> rows. If <code>compactResult</code>
+ * is true, the <code>matches</code> vector does not contain matches for fully
+ * masked-out query descriptors.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-radiusmatch">org.opencv.features2d.DescriptorMatcher.radiusMatch</a>
+ */
+ public void radiusMatch(Mat queryDescriptors, Mat trainDescriptors, List<MatOfDMatch> matches, float maxDistance, Mat mask, boolean compactResult)
+ {
+ Mat matches_mat = new Mat();
+ radiusMatch_0(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, maxDistance, mask.nativeObj, compactResult);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+/**
+ * <p>For each query descriptor, finds the training descriptors not farther than
+ * the specified distance.</p>
+ *
+ * <p>For each query descriptor, the methods find such training descriptors that
+ * the distance between the query descriptor and the training descriptor is
+ * equal or smaller than <code>maxDistance</code>. Found matches are returned in
+ * the distance increasing order.</p>
+ *
+ * @param queryDescriptors Query set of descriptors.
+ * @param trainDescriptors Train set of descriptors. This set is not added to
+ * the train descriptors collection stored in the class object.
+ * @param matches Found matches.
+ * @param maxDistance Threshold for the distance between matched descriptors.
+ * Distance means here metric distance (e.g. Hamming distance), not the distance
+ * between coordinates (which is measured in Pixels)!
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-radiusmatch">org.opencv.features2d.DescriptorMatcher.radiusMatch</a>
+ */
+ public void radiusMatch(Mat queryDescriptors, Mat trainDescriptors, List<MatOfDMatch> matches, float maxDistance)
+ {
+ Mat matches_mat = new Mat();
+ radiusMatch_1(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, maxDistance);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+
+ //
+ // C++: void javaDescriptorMatcher::radiusMatch(Mat queryDescriptors, vector_vector_DMatch& matches, float maxDistance, vector_Mat masks = vector<Mat>(), bool compactResult = false)
+ //
+
+/**
+ * <p>For each query descriptor, finds the training descriptors not farther than
+ * the specified distance.</p>
+ *
+ * <p>For each query descriptor, the methods find such training descriptors that
+ * the distance between the query descriptor and the training descriptor is
+ * equal or smaller than <code>maxDistance</code>. Found matches are returned in
+ * the distance increasing order.</p>
+ *
+ * @param queryDescriptors Query set of descriptors.
+ * @param matches Found matches.
+ * @param maxDistance Threshold for the distance between matched descriptors.
+ * Distance means here metric distance (e.g. Hamming distance), not the distance
+ * between coordinates (which is measured in Pixels)!
+ * @param masks Set of masks. Each <code>masks[i]</code> specifies permissible
+ * matches between the input query descriptors and stored train descriptors from
+ * the i-th image <code>trainDescCollection[i]</code>.
+ * @param compactResult Parameter used when the mask (or masks) is not empty. If
+ * <code>compactResult</code> is false, the <code>matches</code> vector has the
+ * same size as <code>queryDescriptors</code> rows. If <code>compactResult</code>
+ * is true, the <code>matches</code> vector does not contain matches for fully
+ * masked-out query descriptors.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-radiusmatch">org.opencv.features2d.DescriptorMatcher.radiusMatch</a>
+ */
+ public void radiusMatch(Mat queryDescriptors, List<MatOfDMatch> matches, float maxDistance, List<Mat> masks, boolean compactResult)
+ {
+ Mat matches_mat = new Mat();
+ Mat masks_mat = Converters.vector_Mat_to_Mat(masks);
+ radiusMatch_2(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, maxDistance, masks_mat.nativeObj, compactResult);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+/**
+ * <p>For each query descriptor, finds the training descriptors not farther than
+ * the specified distance.</p>
+ *
+ * <p>For each query descriptor, the methods find such training descriptors that
+ * the distance between the query descriptor and the training descriptor is
+ * equal or smaller than <code>maxDistance</code>. Found matches are returned in
+ * the distance increasing order.</p>
+ *
+ * @param queryDescriptors Query set of descriptors.
+ * @param matches Found matches.
+ * @param maxDistance Threshold for the distance between matched descriptors.
+ * Distance means here metric distance (e.g. Hamming distance), not the distance
+ * between coordinates (which is measured in Pixels)!
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-radiusmatch">org.opencv.features2d.DescriptorMatcher.radiusMatch</a>
+ */
+ public void radiusMatch(Mat queryDescriptors, List<MatOfDMatch> matches, float maxDistance)
+ {
+ Mat matches_mat = new Mat();
+ radiusMatch_3(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, maxDistance);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+
+ //
+ // C++: void javaDescriptorMatcher::read(string fileName)
+ //
+
+ public void read(String fileName)
+ {
+
+ read_0(nativeObj, fileName);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaDescriptorMatcher::train()
+ //
+
+/**
+ * <p>Trains a descriptor matcher</p>
+ *
+ * <p>Trains a descriptor matcher (for example, the flann index). In all methods to
+ * match, the method <code>train()</code> is run every time before matching.
+ * Some descriptor matchers (for example, <code>BruteForceMatcher</code>) have
+ * an empty implementation of this method. Other matchers really train their
+ * inner structures (for example, <code>FlannBasedMatcher</code> trains
+ * <code>flann.Index</code>).</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-train">org.opencv.features2d.DescriptorMatcher.train</a>
+ */
+ public void train()
+ {
+
+ train_0(nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaDescriptorMatcher::write(string fileName)
+ //
+
+ public void write(String fileName)
+ {
+
+ write_0(nativeObj, fileName);
+
+ return;
+ }
+
+
+ @Override
+ protected void finalize() throws Throwable {
+ delete(nativeObj);
+ }
+
+
+
+ // C++: void javaDescriptorMatcher::add(vector_Mat descriptors)
+ private static native void add_0(long nativeObj, long descriptors_mat_nativeObj);
+
+ // C++: void javaDescriptorMatcher::clear()
+ private static native void clear_0(long nativeObj);
+
+ // C++: javaDescriptorMatcher* javaDescriptorMatcher::jclone(bool emptyTrainData = false)
+ private static native long clone_0(long nativeObj, boolean emptyTrainData);
+ private static native long clone_1(long nativeObj);
+
+ // C++: static javaDescriptorMatcher* javaDescriptorMatcher::create(int matcherType)
+ private static native long create_0(int matcherType);
+
+ // C++: bool javaDescriptorMatcher::empty()
+ private static native boolean empty_0(long nativeObj);
+
+ // C++: vector_Mat javaDescriptorMatcher::getTrainDescriptors()
+ private static native long getTrainDescriptors_0(long nativeObj);
+
+ // C++: bool javaDescriptorMatcher::isMaskSupported()
+ private static native boolean isMaskSupported_0(long nativeObj);
+
+ // C++: void javaDescriptorMatcher::knnMatch(Mat queryDescriptors, Mat trainDescriptors, vector_vector_DMatch& matches, int k, Mat mask = Mat(), bool compactResult = false)
+ private static native void knnMatch_0(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, int k, long mask_nativeObj, boolean compactResult);
+ private static native void knnMatch_1(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, int k);
+
+ // C++: void javaDescriptorMatcher::knnMatch(Mat queryDescriptors, vector_vector_DMatch& matches, int k, vector_Mat masks = vector<Mat>(), bool compactResult = false)
+ private static native void knnMatch_2(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, int k, long masks_mat_nativeObj, boolean compactResult);
+ private static native void knnMatch_3(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, int k);
+
+ // C++: void javaDescriptorMatcher::match(Mat queryDescriptors, Mat trainDescriptors, vector_DMatch& matches, Mat mask = Mat())
+ private static native void match_0(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, long mask_nativeObj);
+ private static native void match_1(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj);
+
+ // C++: void javaDescriptorMatcher::match(Mat queryDescriptors, vector_DMatch& matches, vector_Mat masks = vector<Mat>())
+ private static native void match_2(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, long masks_mat_nativeObj);
+ private static native void match_3(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj);
+
+ // C++: void javaDescriptorMatcher::radiusMatch(Mat queryDescriptors, Mat trainDescriptors, vector_vector_DMatch& matches, float maxDistance, Mat mask = Mat(), bool compactResult = false)
+ private static native void radiusMatch_0(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, float maxDistance, long mask_nativeObj, boolean compactResult);
+ private static native void radiusMatch_1(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, float maxDistance);
+
+ // C++: void javaDescriptorMatcher::radiusMatch(Mat queryDescriptors, vector_vector_DMatch& matches, float maxDistance, vector_Mat masks = vector<Mat>(), bool compactResult = false)
+ private static native void radiusMatch_2(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, float maxDistance, long masks_mat_nativeObj, boolean compactResult);
+ private static native void radiusMatch_3(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, float maxDistance);
+
+ // C++: void javaDescriptorMatcher::read(string fileName)
+ private static native void read_0(long nativeObj, String fileName);
+
+ // C++: void javaDescriptorMatcher::train()
+ private static native void train_0(long nativeObj);
+
+ // C++: void javaDescriptorMatcher::write(string fileName)
+ private static native void write_0(long nativeObj, String fileName);
+
+ // native support for java finalize()
+ private static native void delete(long nativeObj);
+
+}
diff --git a/OpenCV/src/main/resources/org/opencv/features2d/FeatureDetector.class b/OpenCV/src/main/resources/org/opencv/features2d/FeatureDetector.class
new file mode 100644
index 0000000..8e74870
Binary files /dev/null and b/OpenCV/src/main/resources/org/opencv/features2d/FeatureDetector.class differ
diff --git a/OpenCV/src/main/resources/org/opencv/features2d/FeatureDetector.java b/OpenCV/src/main/resources/org/opencv/features2d/FeatureDetector.java
new file mode 100644
index 0000000..7f67e32
--- /dev/null
+++ b/OpenCV/src/main/resources/org/opencv/features2d/FeatureDetector.java
@@ -0,0 +1,303 @@
+
+//
+// This file is auto-generated. Please don't modify it!
+//
+package org.opencv.features2d;
+
+import java.lang.String;
+import java.util.List;
+import org.opencv.core.Mat;
+import org.opencv.core.MatOfKeyPoint;
+import org.opencv.utils.Converters;
+
+// C++: class javaFeatureDetector
+/**
+ * <p>Abstract base class for 2D image feature detectors.</p>
+ *
+ * <p>class CV_EXPORTS FeatureDetector <code></p>
+ *
+ * <p>// C++ code:</p>
+ *
+ *
+ * <p>public:</p>
+ *
+ * <p>virtual ~FeatureDetector();</p>
+ *
+ * <p>void detect(const Mat& image, vector<KeyPoint>& keypoints,</p>
+ *
+ * <p>const Mat& mask=Mat()) const;</p>
+ *
+ * <p>void detect(const vector<Mat>& images,</p>
+ *
+ * <p>vector<vector<KeyPoint> >& keypoints,</p>
+ *
+ * <p>const vector<Mat>& masks=vector<Mat>()) const;</p>
+ *
+ * <p>virtual void read(const FileNode&);</p>
+ *
+ * <p>virtual void write(FileStorage&) const;</p>
+ *
+ * <p>static Ptr<FeatureDetector> create(const string& detectorType);</p>
+ *
+ * <p>protected:...</p>
+ *
+ * <p>};</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#featuredetector">org.opencv.features2d.FeatureDetector : public Algorithm</a>
+ */
+public class FeatureDetector {
+
+ protected final long nativeObj;
+ protected FeatureDetector(long addr) { nativeObj = addr; }
+
+
+ private static final int
+ GRIDDETECTOR = 1000,
+ PYRAMIDDETECTOR = 2000,
+ DYNAMICDETECTOR = 3000;
+
+
+ public static final int
+ FAST = 1,
+ STAR = 2,
+ SIFT = 3,
+ SURF = 4,
+ ORB = 5,
+ MSER = 6,
+ GFTT = 7,
+ HARRIS = 8,
+ SIMPLEBLOB = 9,
+ DENSE = 10,
+ BRISK = 11,
+ GRIDRETECTOR = 1000,
+ GRID_FAST = GRIDDETECTOR + FAST,
+ GRID_STAR = GRIDDETECTOR + STAR,
+ GRID_SIFT = GRIDDETECTOR + SIFT,
+ GRID_SURF = GRIDDETECTOR + SURF,
+ GRID_ORB = GRIDDETECTOR + ORB,
+ GRID_MSER = GRIDDETECTOR + MSER,
+ GRID_GFTT = GRIDDETECTOR + GFTT,
+ GRID_HARRIS = GRIDDETECTOR + HARRIS,
+ GRID_SIMPLEBLOB = GRIDDETECTOR + SIMPLEBLOB,
+ GRID_DENSE = GRIDDETECTOR + DENSE,
+ GRID_BRISK = GRIDDETECTOR + BRISK,
+ PYRAMID_FAST = PYRAMIDDETECTOR + FAST,
+ PYRAMID_STAR = PYRAMIDDETECTOR + STAR,
+ PYRAMID_SIFT = PYRAMIDDETECTOR + SIFT,
+ PYRAMID_SURF = PYRAMIDDETECTOR + SURF,
+ PYRAMID_ORB = PYRAMIDDETECTOR + ORB,
+ PYRAMID_MSER = PYRAMIDDETECTOR + MSER,
+ PYRAMID_GFTT = PYRAMIDDETECTOR + GFTT,
+ PYRAMID_HARRIS = PYRAMIDDETECTOR + HARRIS,
+ PYRAMID_SIMPLEBLOB = PYRAMIDDETECTOR + SIMPLEBLOB,
+ PYRAMID_DENSE = PYRAMIDDETECTOR + DENSE,
+ PYRAMID_BRISK = PYRAMIDDETECTOR + BRISK,
+ DYNAMIC_FAST = DYNAMICDETECTOR + FAST,
+ DYNAMIC_STAR = DYNAMICDETECTOR + STAR,
+ DYNAMIC_SIFT = DYNAMICDETECTOR + SIFT,
+ DYNAMIC_SURF = DYNAMICDETECTOR + SURF,
+ DYNAMIC_ORB = DYNAMICDETECTOR + ORB,
+ DYNAMIC_MSER = DYNAMICDETECTOR + MSER,
+ DYNAMIC_GFTT = DYNAMICDETECTOR + GFTT,
+ DYNAMIC_HARRIS = DYNAMICDETECTOR + HARRIS,
+ DYNAMIC_SIMPLEBLOB = DYNAMICDETECTOR + SIMPLEBLOB,
+ DYNAMIC_DENSE = DYNAMICDETECTOR + DENSE,
+ DYNAMIC_BRISK = DYNAMICDETECTOR + BRISK;
+
+
+ //
+ // C++: static javaFeatureDetector* javaFeatureDetector::create(int detectorType)
+ //
+
+/**
+ * <p>Creates a feature detector by its name.</p>
+ *
+ * <p>The following detector types are supported:</p>
+ * <ul>
+ * <li> <code>"FAST"</code> -- "FastFeatureDetector"
+ * <li> <code>"STAR"</code> -- "StarFeatureDetector"
+ * <li> <code>"SIFT"</code> -- "SIFT" (nonfree module)
+ * <li> <code>"SURF"</code> -- "SURF" (nonfree module)
+ * <li> <code>"ORB"</code> -- "ORB"
+ * <li> <code>"BRISK"</code> -- "BRISK"
+ * <li> <code>"MSER"</code> -- "MSER"
+ * <li> <code>"GFTT"</code> -- "GoodFeaturesToTrackDetector"
+ * <li> <code>"HARRIS"</code> -- "GoodFeaturesToTrackDetector" with Harris
+ * detector enabled
+ * <li> <code>"Dense"</code> -- "DenseFeatureDetector"
+ * <li> <code>"SimpleBlob"</code> -- "SimpleBlobDetector"
+ * </ul>
+ *
+ * <p>Also a combined format is supported: feature detector adapter name
+ * (<code>"Grid"</code> -- "GridAdaptedFeatureDetector", <code>"Pyramid"</code>
+ * -- "PyramidAdaptedFeatureDetector") + feature detector name (see above), for
+ * example: <code>"GridFAST"</code>, <code>"PyramidSTAR"</code>.</p>
+ *
+ * @param detectorType Feature detector type.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#featuredetector-create">org.opencv.features2d.FeatureDetector.create</a>
+ */
+ public static FeatureDetector create(int detectorType)
+ {
+
+ FeatureDetector retVal = new FeatureDetector(create_0(detectorType));
+
+ return retVal;
+ }
+
+
+ //
+ // C++: void javaFeatureDetector::detect(Mat image, vector_KeyPoint& keypoints, Mat mask = Mat())
+ //
+
+/**
+ * <p>Detects keypoints in an image (first variant) or image set (second variant).</p>
+ *
+ * @param image Image.
+ * @param keypoints The detected keypoints. In the second variant of the method
+ * <code>keypoints[i]</code> is a set of keypoints detected in <code>images[i]</code>.
+ * @param mask Mask specifying where to look for keypoints (optional). It must
+ * be a 8-bit integer matrix with non-zero values in the region of interest.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#featuredetector-detect">org.opencv.features2d.FeatureDetector.detect</a>
+ */
+ public void detect(Mat image, MatOfKeyPoint keypoints, Mat mask)
+ {
+ Mat keypoints_mat = keypoints;
+ detect_0(nativeObj, image.nativeObj, keypoints_mat.nativeObj, mask.nativeObj);
+
+ return;
+ }
+
+/**
+ * <p>Detects keypoints in an image (first variant) or image set (second variant).</p>
+ *
+ * @param image Image.
+ * @param keypoints The detected keypoints. In the second variant of the method
+ * <code>keypoints[i]</code> is a set of keypoints detected in <code>images[i]</code>.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#featuredetector-detect">org.opencv.features2d.FeatureDetector.detect</a>
+ */
+ public void detect(Mat image, MatOfKeyPoint keypoints)
+ {
+ Mat keypoints_mat = keypoints;
+ detect_1(nativeObj, image.nativeObj, keypoints_mat.nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaFeatureDetector::detect(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat masks = vector<Mat>())
+ //
+
+/**
+ * <p>Detects keypoints in an image (first variant) or image set (second variant).</p>
+ *
+ * @param images Image set.
+ * @param keypoints The detected keypoints. In the second variant of the method
+ * <code>keypoints[i]</code> is a set of keypoints detected in <code>images[i]</code>.
+ * @param masks Masks for each input image specifying where to look for
+ * keypoints (optional). <code>masks[i]</code> is a mask for <code>images[i]</code>.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#featuredetector-detect">org.opencv.features2d.FeatureDetector.detect</a>
+ */
+ public void detect(List<Mat> images, List<MatOfKeyPoint> keypoints, List<Mat> masks)
+ {
+ Mat images_mat = Converters.vector_Mat_to_Mat(images);
+ Mat keypoints_mat = new Mat();
+ Mat masks_mat = Converters.vector_Mat_to_Mat(masks);
+ detect_2(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj, masks_mat.nativeObj);
+ Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints);
+ return;
+ }
+
+/**
+ * <p>Detects keypoints in an image (first variant) or image set (second variant).</p>
+ *
+ * @param images Image set.
+ * @param keypoints The detected keypoints. In the second variant of the method
+ * <code>keypoints[i]</code> is a set of keypoints detected in <code>images[i]</code>.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#featuredetector-detect">org.opencv.features2d.FeatureDetector.detect</a>
+ */
+ public void detect(List<Mat> images, List<MatOfKeyPoint> keypoints)
+ {
+ Mat images_mat = Converters.vector_Mat_to_Mat(images);
+ Mat keypoints_mat = new Mat();
+ detect_3(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj);
+ Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints);
+ return;
+ }
+
+
+ //
+ // C++: bool javaFeatureDetector::empty()
+ //
+
+ public boolean empty()
+ {
+
+ boolean retVal = empty_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: void javaFeatureDetector::read(string fileName)
+ //
+
+ public void read(String fileName)
+ {
+
+ read_0(nativeObj, fileName);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaFeatureDetector::write(string fileName)
+ //
+
+ public void write(String fileName)
+ {
+
+ write_0(nativeObj, fileName);
+
+ return;
+ }
+
+
+ @Override
+ protected void finalize() throws Throwable {
+ delete(nativeObj);
+ }
+
+
+
+ // C++: static javaFeatureDetector* javaFeatureDetector::create(int detectorType)
+ private static native long create_0(int detectorType);
+
+ // C++: void javaFeatureDetector::detect(Mat image, vector_KeyPoint& keypoints, Mat mask = Mat())
+ private static native void detect_0(long nativeObj, long image_nativeObj, long keypoints_mat_nativeObj, long mask_nativeObj);
+ private static native void detect_1(long nativeObj, long image_nativeObj, long keypoints_mat_nativeObj);
+
+ // C++: void javaFeatureDetector::detect(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat masks = vector<Mat>())
+ private static native void detect_2(long nativeObj, long images_mat_nativeObj, long keypoints_mat_nativeObj, long masks_mat_nativeObj);
+ private static native void detect_3(long nativeObj, long images_mat_nativeObj, long keypoints_mat_nativeObj);
+
+ // C++: bool javaFeatureDetector::empty()
+ private static native boolean empty_0(long nativeObj);
+
+ // C++: void javaFeatureDetector::read(string fileName)
+ private static native void read_0(long nativeObj, String fileName);
+
+ // C++: void javaFeatureDetector::write(string fileName)
+ private static native void write_0(long nativeObj, String fileName);
+
+ // native support for java finalize()
+ private static native void delete(long nativeObj);
+
+}
diff --git a/OpenCV/src/main/resources/org/opencv/features2d/Features2d.class b/OpenCV/src/main/resources/org/opencv/features2d/Features2d.class
new file mode 100644
index 0000000..db38922
Binary files /dev/null and b/OpenCV/src/main/resources/org/opencv/features2d/Features2d.class differ
diff --git a/OpenCV/src/main/resources/org/opencv/features2d/Features2d.java b/OpenCV/src/main/resources/org/opencv/features2d/Features2d.java
new file mode 100644
index 0000000..0b17924
--- /dev/null
+++ b/OpenCV/src/main/resources/org/opencv/features2d/Features2d.java
@@ -0,0 +1,402 @@
+
+//
+// This file is auto-generated. Please don't modify it!
+//
+package org.opencv.features2d;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.opencv.core.Mat;
+import org.opencv.core.MatOfByte;
+import org.opencv.core.MatOfDMatch;
+import org.opencv.core.MatOfKeyPoint;
+import org.opencv.core.Scalar;
+import org.opencv.utils.Converters;
+
+public class Features2d {
+
+ public static final int
+ DRAW_OVER_OUTIMG = 1,
+ NOT_DRAW_SINGLE_POINTS = 2,
+ DRAW_RICH_KEYPOINTS = 4;
+
+
+ //
+ // C++: void drawKeypoints(Mat image, vector_KeyPoint keypoints, Mat outImage, Scalar color = Scalar::all(-1), int flags = 0)
+ //
+
+/**
+ * <p>Draws keypoints.</p>
+ *
+ * @param image Source image.
+ * @param keypoints Keypoints from the source image.
+ * @param outImage Output image. Its content depends on the <code>flags</code>
+ * value defining what is drawn in the output image. See possible
+ * <code>flags</code> bit values below.
+ * @param color Color of keypoints.
+ * @param flags Flags setting drawing features. Possible <code>flags</code> bit
+ * values are defined by <code>DrawMatchesFlags</code>. See details above in
+ * "drawMatches".
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/drawing_function_of_keypoints_and_matches.html#drawkeypoints">org.opencv.features2d.Features2d.drawKeypoints</a>
+ */
+ public static void drawKeypoints(Mat image, MatOfKeyPoint keypoints, Mat outImage, Scalar color, int flags)
+ {
+ Mat keypoints_mat = keypoints;
+ drawKeypoints_0(image.nativeObj, keypoints_mat.nativeObj, outImage.nativeObj, color.val[0], color.val[1], color.val[2], color.val[3], flags);
+
+ return;
+ }
+
+/**
+ * <p>Draws keypoints.</p>
+ *
+ * @param image Source image.
+ * @param keypoints Keypoints from the source image.
+ * @param outImage Output image. Its content depends on the <code>flags</code>
+ * value defining what is drawn in the output image. See possible
+ * <code>flags</code> bit values below.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/drawing_function_of_keypoints_and_matches.html#drawkeypoints">org.opencv.features2d.Features2d.drawKeypoints</a>
+ */
+ public static void drawKeypoints(Mat image, MatOfKeyPoint keypoints, Mat outImage)
+ {
+ Mat keypoints_mat = keypoints;
+ drawKeypoints_1(image.nativeObj, keypoints_mat.nativeObj, outImage.nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_DMatch matches1to2, Mat outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_char matchesMask = vector<char>(), int flags = 0)
+ //
+
+/**
+ * <p>Draws the found matches of keypoints from two images.</p>
+ *
+ * <p>This function draws matches of keypoints from two images in the output image.
+ * Match is a line connecting two keypoints (circles). The structure
+ * <code>DrawMatchesFlags</code> is defined as follows: struct DrawMatchesFlags
+ * <code></p>
+ *
+ * <p>// C++ code:</p>
+ *
+ *
+ * <p>enum</p>
+ *
+ *
+ * <p>DEFAULT = 0, // Output image matrix will be created (Mat.create),</p>
+ *
+ * <p>// i.e. existing memory of output image may be reused.</p>
+ *
+ * <p>// Two source images, matches, and single keypoints</p>
+ *
+ * <p>// will be drawn.</p>
+ *
+ * <p>// For each keypoint, only the center point will be</p>
+ *
+ * <p>// drawn (without a circle around the keypoint with the</p>
+ *
+ * <p>// keypoint size and orientation).</p>
+ *
+ * <p>DRAW_OVER_OUTIMG = 1, // Output image matrix will not be</p>
+ *
+ * <p>// created (using Mat.create). Matches will be drawn</p>
+ *
+ * <p>// on existing content of output image.</p>
+ *
+ * <p>NOT_DRAW_SINGLE_POINTS = 2, // Single keypoints will not be drawn.</p>
+ *
+ * <p>DRAW_RICH_KEYPOINTS = 4 // For each keypoint, the circle around</p>
+ *
+ * <p>// keypoint with keypoint size and orientation will</p>
+ *
+ * <p>// be drawn.</p>
+ *
+ * <p>};</p>
+ *
+ * <p>};</p>
+ *
+ * <p></code></p>
+ *
+ * @param img1 First source image.
+ * @param keypoints1 Keypoints from the first source image.
+ * @param img2 Second source image.
+ * @param keypoints2 Keypoints from the second source image.
+ * @param matches1to2 Matches from the first image to the second one, which
+ * means that <code>keypoints1[i]</code> has a corresponding point in
+ * <code>keypoints2[matches[i]]</code>.
+ * @param outImg Output image. Its content depends on the <code>flags</code>
+ * value defining what is drawn in the output image. See possible
+ * <code>flags</code> bit values below.
+ * @param matchColor Color of matches (lines and connected keypoints). If
+ * <code>matchColor==Scalar.all(-1)</code>, the color is generated randomly.
+ * @param singlePointColor Color of single keypoints (circles), which means that
+ * keypoints do not have the matches. If <code>singlePointColor==Scalar.all(-1)</code>,
+ * the color is generated randomly.
+ * @param matchesMask Mask determining which matches are drawn. If the mask is
+ * empty, all matches are drawn.
+ * @param flags Flags setting drawing features. Possible <code>flags</code> bit
+ * values are defined by <code>DrawMatchesFlags</code>.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/drawing_function_of_keypoints_and_matches.html#drawmatches">org.opencv.features2d.Features2d.drawMatches</a>
+ */
+ public static void drawMatches(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, Mat outImg, Scalar matchColor, Scalar singlePointColor, MatOfByte matchesMask, int flags)
+ {
+ Mat keypoints1_mat = keypoints1;
+ Mat keypoints2_mat = keypoints2;
+ Mat matches1to2_mat = matches1to2;
+ Mat matchesMask_mat = matchesMask;
+ drawMatches_0(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3], singlePointColor.val[0], singlePointColor.val[1], singlePointColor.val[2], singlePointColor.val[3], matchesMask_mat.nativeObj, flags);
+
+ return;
+ }
+
+/**
+ * <p>Draws the found matches of keypoints from two images.</p>
+ *
+ * <p>This function draws matches of keypoints from two images in the output image.
+ * Match is a line connecting two keypoints (circles). The structure
+ * <code>DrawMatchesFlags</code> is defined as follows: struct DrawMatchesFlags
+ * <code></p>
+ *
+ * <p>// C++ code:</p>
+ *
+ *
+ * <p>enum</p>
+ *
+ *
+ * <p>DEFAULT = 0, // Output image matrix will be created (Mat.create),</p>
+ *
+ * <p>// i.e. existing memory of output image may be reused.</p>
+ *
+ * <p>// Two source images, matches, and single keypoints</p>
+ *
+ * <p>// will be drawn.</p>
+ *
+ * <p>// For each keypoint, only the center point will be</p>
+ *
+ * <p>// drawn (without a circle around the keypoint with the</p>
+ *
+ * <p>// keypoint size and orientation).</p>
+ *
+ * <p>DRAW_OVER_OUTIMG = 1, // Output image matrix will not be</p>
+ *
+ * <p>// created (using Mat.create). Matches will be drawn</p>
+ *
+ * <p>// on existing content of output image.</p>
+ *
+ * <p>NOT_DRAW_SINGLE_POINTS = 2, // Single keypoints will not be drawn.</p>
+ *
+ * <p>DRAW_RICH_KEYPOINTS = 4 // For each keypoint, the circle around</p>
+ *
+ * <p>// keypoint with keypoint size and orientation will</p>
+ *
+ * <p>// be drawn.</p>
+ *
+ * <p>};</p>
+ *
+ * <p>};</p>
+ *
+ * <p></code></p>
+ *
+ * @param img1 First source image.
+ * @param keypoints1 Keypoints from the first source image.
+ * @param img2 Second source image.
+ * @param keypoints2 Keypoints from the second source image.
+ * @param matches1to2 Matches from the first image to the second one, which
+ * means that <code>keypoints1[i]</code> has a corresponding point in
+ * <code>keypoints2[matches[i]]</code>.
+ * @param outImg Output image. Its content depends on the <code>flags</code>
+ * value defining what is drawn in the output image. See possible
+ * <code>flags</code> bit values below.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/drawing_function_of_keypoints_and_matches.html#drawmatches">org.opencv.features2d.Features2d.drawMatches</a>
+ */
+ public static void drawMatches(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, Mat outImg)
+ {
+ Mat keypoints1_mat = keypoints1;
+ Mat keypoints2_mat = keypoints2;
+ Mat matches1to2_mat = matches1to2;
+ drawMatches_1(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_vector_DMatch matches1to2, Mat outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_vector_char matchesMask = vector<vector<char> >(), int flags = 0)
+ //
+
+/**
+ * <p>Draws the found matches of keypoints from two images.</p>
+ *
+ * <p>This function draws matches of keypoints from two images in the output image.
+ * Match is a line connecting two keypoints (circles). The structure
+ * <code>DrawMatchesFlags</code> is defined as follows: struct DrawMatchesFlags
+ * <code></p>
+ *
+ * <p>// C++ code:</p>
+ *
+ *
+ * <p>enum</p>
+ *
+ *
+ * <p>DEFAULT = 0, // Output image matrix will be created (Mat.create),</p>
+ *
+ * <p>// i.e. existing memory of output image may be reused.</p>
+ *
+ * <p>// Two source images, matches, and single keypoints</p>
+ *
+ * <p>// will be drawn.</p>
+ *
+ * <p>// For each keypoint, only the center point will be</p>
+ *
+ * <p>// drawn (without a circle around the keypoint with the</p>
+ *
+ * <p>// keypoint size and orientation).</p>
+ *
+ * <p>DRAW_OVER_OUTIMG = 1, // Output image matrix will not be</p>
+ *
+ * <p>// created (using Mat.create). Matches will be drawn</p>
+ *
+ * <p>// on existing content of output image.</p>
+ *
+ * <p>NOT_DRAW_SINGLE_POINTS = 2, // Single keypoints will not be drawn.</p>
+ *
+ * <p>DRAW_RICH_KEYPOINTS = 4 // For each keypoint, the circle around</p>
+ *
+ * <p>// keypoint with keypoint size and orientation will</p>
+ *
+ * <p>// be drawn.</p>
+ *
+ * <p>};</p>
+ *
+ * <p>};</p>
+ *
+ * <p></code></p>
+ *
+ * @param img1 First source image.
+ * @param keypoints1 Keypoints from the first source image.
+ * @param img2 Second source image.
+ * @param keypoints2 Keypoints from the second source image.
+ * @param matches1to2 Matches from the first image to the second one, which
+ * means that <code>keypoints1[i]</code> has a corresponding point in
+ * <code>keypoints2[matches[i]]</code>.
+ * @param outImg Output image. Its content depends on the <code>flags</code>
+ * value defining what is drawn in the output image. See possible
+ * <code>flags</code> bit values below.
+ * @param matchColor Color of matches (lines and connected keypoints). If
+ * <code>matchColor==Scalar.all(-1)</code>, the color is generated randomly.
+ * @param singlePointColor Color of single keypoints (circles), which means that
+ * keypoints do not have the matches. If <code>singlePointColor==Scalar.all(-1)</code>,
+ * the color is generated randomly.
+ * @param matchesMask Mask determining which matches are drawn. If the mask is
+ * empty, all matches are drawn.
+ * @param flags Flags setting drawing features. Possible <code>flags</code> bit
+ * values are defined by <code>DrawMatchesFlags</code>.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/drawing_function_of_keypoints_and_matches.html#drawmatches">org.opencv.features2d.Features2d.drawMatches</a>
+ */
+ public static void drawMatches2(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, List<MatOfDMatch> matches1to2, Mat outImg, Scalar matchColor, Scalar singlePointColor, List<MatOfByte> matchesMask, int flags)
+ {
+ Mat keypoints1_mat = keypoints1;
+ Mat keypoints2_mat = keypoints2;
+ List<Mat> matches1to2_tmplm = new ArrayList<Mat>((matches1to2 != null) ? matches1to2.size() : 0);
+ Mat matches1to2_mat = Converters.vector_vector_DMatch_to_Mat(matches1to2, matches1to2_tmplm);
+ List<Mat> matchesMask_tmplm = new ArrayList<Mat>((matchesMask != null) ? matchesMask.size() : 0);
+ Mat matchesMask_mat = Converters.vector_vector_char_to_Mat(matchesMask, matchesMask_tmplm);
+ drawMatches2_0(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3], singlePointColor.val[0], singlePointColor.val[1], singlePointColor.val[2], singlePointColor.val[3], matchesMask_mat.nativeObj, flags);
+
+ return;
+ }
+
+/**
+ * <p>Draws the found matches of keypoints from two images.</p>
+ *
+ * <p>This function draws matches of keypoints from two images in the output image.
+ * Match is a line connecting two keypoints (circles). The structure
+ * <code>DrawMatchesFlags</code> is defined as follows: struct DrawMatchesFlags
+ * <code></p>
+ *
+ * <p>// C++ code:</p>
+ *
+ *
+ * <p>enum</p>
+ *
+ *
+ * <p>DEFAULT = 0, // Output image matrix will be created (Mat.create),</p>
+ *
+ * <p>// i.e. existing memory of output image may be reused.</p>
+ *
+ * <p>// Two source images, matches, and single keypoints</p>
+ *
+ * <p>// will be drawn.</p>
+ *
+ * <p>// For each keypoint, only the center point will be</p>
+ *
+ * <p>// drawn (without a circle around the keypoint with the</p>
+ *
+ * <p>// keypoint size and orientation).</p>
+ *
+ * <p>DRAW_OVER_OUTIMG = 1, // Output image matrix will not be</p>
+ *
+ * <p>// created (using Mat.create). Matches will be drawn</p>
+ *
+ * <p>// on existing content of output image.</p>
+ *
+ * <p>NOT_DRAW_SINGLE_POINTS = 2, // Single keypoints will not be drawn.</p>
+ *
+ * <p>DRAW_RICH_KEYPOINTS = 4 // For each keypoint, the circle around</p>
+ *
+ * <p>// keypoint with keypoint size and orientation will</p>
+ *
+ * <p>// be drawn.</p>
+ *
+ * <p>};</p>
+ *
+ * <p>};</p>
+ *
+ * <p></code></p>
+ *
+ * @param img1 First source image.
+ * @param keypoints1 Keypoints from the first source image.
+ * @param img2 Second source image.
+ * @param keypoints2 Keypoints from the second source image.
+ * @param matches1to2 Matches from the first image to the second one, which
+ * means that <code>keypoints1[i]</code> has a corresponding point in
+ * <code>keypoints2[matches[i]]</code>.
+ * @param outImg Output image. Its content depends on the <code>flags</code>
+ * value defining what is drawn in the output image. See possible
+ * <code>flags</code> bit values below.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/drawing_function_of_keypoints_and_matches.html#drawmatches">org.opencv.features2d.Features2d.drawMatches</a>
+ */
+ public static void drawMatches2(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, List<MatOfDMatch> matches1to2, Mat outImg)
+ {
+ Mat keypoints1_mat = keypoints1;
+ Mat keypoints2_mat = keypoints2;
+ List<Mat> matches1to2_tmplm = new ArrayList<Mat>((matches1to2 != null) ? matches1to2.size() : 0);
+ Mat matches1to2_mat = Converters.vector_vector_DMatch_to_Mat(matches1to2, matches1to2_tmplm);
+ drawMatches2_1(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj);
+
+ return;
+ }
+
+
+
+
+ // C++: void drawKeypoints(Mat image, vector_KeyPoint keypoints, Mat outImage, Scalar color = Scalar::all(-1), int flags = 0)
+ private static native void drawKeypoints_0(long image_nativeObj, long keypoints_mat_nativeObj, long outImage_nativeObj, double color_val0, double color_val1, double color_val2, double color_val3, int flags);
+ private static native void drawKeypoints_1(long image_nativeObj, long keypoints_mat_nativeObj, long outImage_nativeObj);
+
+ // C++: void drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_DMatch matches1to2, Mat outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_char matchesMask = vector<char>(), int flags = 0)
+ private static native void drawMatches_0(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3, double singlePointColor_val0, double singlePointColor_val1, double singlePointColor_val2, double singlePointColor_val3, long matchesMask_mat_nativeObj, int flags);
+ private static native void drawMatches_1(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj);
+
+ // C++: void drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_vector_DMatch matches1to2, Mat outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_vector_char matchesMask = vector<vector<char> >(), int flags = 0)
+ private static native void drawMatches2_0(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3, double singlePointColor_val0, double singlePointColor_val1, double singlePointColor_val2, double singlePointColor_val3, long matchesMask_mat_nativeObj, int flags);
+ private static native void drawMatches2_1(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj);
+
+}
diff --git a/OpenCV/src/main/resources/org/opencv/features2d/GenericDescriptorMatcher.class b/OpenCV/src/main/resources/org/opencv/features2d/GenericDescriptorMatcher.class
new file mode 100644
index 0000000..88d0cf1
Binary files /dev/null and b/OpenCV/src/main/resources/org/opencv/features2d/GenericDescriptorMatcher.class differ
diff --git a/OpenCV/src/main/resources/org/opencv/features2d/GenericDescriptorMatcher.java b/OpenCV/src/main/resources/org/opencv/features2d/GenericDescriptorMatcher.java
new file mode 100644
index 0000000..a5cfc53
--- /dev/null
+++ b/OpenCV/src/main/resources/org/opencv/features2d/GenericDescriptorMatcher.java
@@ -0,0 +1,861 @@
+
+//
+// This file is auto-generated. Please don't modify it!
+//
+package org.opencv.features2d;
+
+import java.lang.String;
+import java.util.ArrayList;
+import java.util.List;
+import org.opencv.core.Mat;
+import org.opencv.core.MatOfDMatch;
+import org.opencv.core.MatOfKeyPoint;
+import org.opencv.utils.Converters;
+
+// C++: class javaGenericDescriptorMatcher
+/**
+ * <p>Abstract interface for extracting and matching a keypoint descriptor. There
+ * are also "DescriptorExtractor" and "DescriptorMatcher" for these purposes but
+ * their interfaces are intended for descriptors represented as vectors in a
+ * multidimensional space. <code>GenericDescriptorMatcher</code> is a more
+ * generic interface for descriptors. <code>DescriptorMatcher</code> and
+ * <code>GenericDescriptorMatcher</code> have two groups of match methods: for
+ * matching keypoints of an image with another image or with an image set.</p>
+ *
+ * <p>class GenericDescriptorMatcher <code></p>
+ *
+ * <p>// C++ code:</p>
+ *
+ *
+ * <p>public:</p>
+ *
+ * <p>GenericDescriptorMatcher();</p>
+ *
+ * <p>virtual ~GenericDescriptorMatcher();</p>
+ *
+ * <p>virtual void add(const vector<Mat>& images,</p>
+ *
+ * <p>vector<vector<KeyPoint> >& keypoints);</p>
+ *
+ * <p>const vector<Mat>& getTrainImages() const;</p>
+ *
+ * <p>const vector<vector<KeyPoint> >& getTrainKeypoints() const;</p>
+ *
+ * <p>virtual void clear();</p>
+ *
+ * <p>virtual void train() = 0;</p>
+ *
+ * <p>virtual bool isMaskSupported() = 0;</p>
+ *
+ * <p>void classify(const Mat& queryImage,</p>
+ *
+ * <p>vector<KeyPoint>& queryKeypoints,</p>
+ *
+ * <p>const Mat& trainImage,</p>
+ *
+ * <p>vector<KeyPoint>& trainKeypoints) const;</p>
+ *
+ * <p>void classify(const Mat& queryImage,</p>
+ *
+ * <p>vector<KeyPoint>& queryKeypoints);</p>
+ *
+ * <p>/ *</p>
+ * <ul>
+ * <li> Group of methods to match keypoints from an image pair.
+ * <li> /
+ * </ul>
+ *
+ * <p>void match(const Mat& queryImage, vector<KeyPoint>& queryKeypoints,</p>
+ *
+ * <p>const Mat& trainImage, vector<KeyPoint>& trainKeypoints,</p>
+ *
+ * <p>vector<DMatch>& matches, const Mat& mask=Mat()) const;</p>
+ *
+ * <p>void knnMatch(const Mat& queryImage, vector<KeyPoint>& queryKeypoints,</p>
+ *
+ * <p>const Mat& trainImage, vector<KeyPoint>& trainKeypoints,</p>
+ *
+ * <p>vector<vector<DMatch> >& matches, int k,</p>
+ *
+ * <p>const Mat& mask=Mat(), bool compactResult=false) const;</p>
+ *
+ * <p>void radiusMatch(const Mat& queryImage, vector<KeyPoint>& queryKeypoints,</p>
+ *
+ * <p>const Mat& trainImage, vector<KeyPoint>& trainKeypoints,</p>
+ *
+ * <p>vector<vector<DMatch> >& matches, float maxDistance,</p>
+ *
+ * <p>const Mat& mask=Mat(), bool compactResult=false) const;</p>
+ *
+ * <p>/ *</p>
+ * <ul>
+ * <li> Group of methods to match keypoints from one image to an image set.
+ * <li> /
+ * </ul>
+ *
+ * <p>void match(const Mat& queryImage, vector<KeyPoint>& queryKeypoints,</p>
+ *
+ * <p>vector<DMatch>& matches, const vector<Mat>& masks=vector<Mat>());</p>
+ *
+ * <p>void knnMatch(const Mat& queryImage, vector<KeyPoint>& queryKeypoints,</p>
+ *
+ * <p>vector<vector<DMatch> >& matches, int k,</p>
+ *
+ * <p>const vector<Mat>& masks=vector<Mat>(), bool compactResult=false);</p>
+ *
+ * <p>void radiusMatch(const Mat& queryImage, vector<KeyPoint>& queryKeypoints,</p>
+ *
+ * <p>vector<vector<DMatch> >& matches, float maxDistance,</p>
+ *
+ * <p>const vector<Mat>& masks=vector<Mat>(), bool compactResult=false);</p>
+ *
+ * <p>virtual void read(const FileNode&);</p>
+ *
+ * <p>virtual void write(FileStorage&) const;</p>
+ *
+ * <p>virtual Ptr<GenericDescriptorMatcher> clone(bool emptyTrainData=false) const
+ * = 0;</p>
+ *
+ * <p>protected:...</p>
+ *
+ * <p>};</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher">org.opencv.features2d.GenericDescriptorMatcher</a>
+ */
+public class GenericDescriptorMatcher {
+
+ protected final long nativeObj;
+ protected GenericDescriptorMatcher(long addr) { nativeObj = addr; }
+
+
+ public static final int
+ ONEWAY = 1,
+ FERN = 2;
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::add(vector_Mat images, vector_vector_KeyPoint keypoints)
+ //
+
+/**
+ * <p>Adds images and their keypoints to the training collection stored in the
+ * class instance.</p>
+ *
+ * @param images Image collection.
+ * @param keypoints Point collection. It is assumed that <code>keypoints[i]</code>
+ * are keypoints detected in the image <code>images[i]</code>.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-add">org.opencv.features2d.GenericDescriptorMatcher.add</a>
+ */
+ public void add(List<Mat> images, List<MatOfKeyPoint> keypoints)
+ {
+ Mat images_mat = Converters.vector_Mat_to_Mat(images);
+ List<Mat> keypoints_tmplm = new ArrayList<Mat>((keypoints != null) ? keypoints.size() : 0);
+ Mat keypoints_mat = Converters.vector_vector_KeyPoint_to_Mat(keypoints, keypoints_tmplm);
+ add_0(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::classify(Mat queryImage, vector_KeyPoint& queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints)
+ //
+
+/**
+ * <p>Classifies keypoints from a query set.</p>
+ *
+ * <p>The method classifies each keypoint from a query set. The first variant of
+ * the method takes a train image and its keypoints as an input argument. The
+ * second variant uses the internally stored training collection that can be
+ * built using the <code>GenericDescriptorMatcher.add</code> method.</p>
+ *
+ * <p>The methods do the following:</p>
+ * <ul>
+ * <li> Call the <code>GenericDescriptorMatcher.match</code> method to find
+ * correspondence between the query set and the training set.
+ * <li> Set the <code>class_id</code> field of each keypoint from the query
+ * set to <code>class_id</code> of the corresponding keypoint from the training
+ * set.
+ * </ul>
+ *
+ * @param queryImage Query image.
+ * @param queryKeypoints Keypoints from a query image.
+ * @param trainImage Train image.
+ * @param trainKeypoints Keypoints from a train image.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-classify">org.opencv.features2d.GenericDescriptorMatcher.classify</a>
+ */
+ public void classify(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat trainKeypoints_mat = trainKeypoints;
+ classify_0(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::classify(Mat queryImage, vector_KeyPoint& queryKeypoints)
+ //
+
+/**
+ * <p>Classifies keypoints from a query set.</p>
+ *
+ * <p>The method classifies each keypoint from a query set. The first variant of
+ * the method takes a train image and its keypoints as an input argument. The
+ * second variant uses the internally stored training collection that can be
+ * built using the <code>GenericDescriptorMatcher.add</code> method.</p>
+ *
+ * <p>The methods do the following:</p>
+ * <ul>
+ * <li> Call the <code>GenericDescriptorMatcher.match</code> method to find
+ * correspondence between the query set and the training set.
+ * <li> Set the <code>class_id</code> field of each keypoint from the query
+ * set to <code>class_id</code> of the corresponding keypoint from the training
+ * set.
+ * </ul>
+ *
+ * @param queryImage Query image.
+ * @param queryKeypoints Keypoints from a query image.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-classify">org.opencv.features2d.GenericDescriptorMatcher.classify</a>
+ */
+ public void classify(Mat queryImage, MatOfKeyPoint queryKeypoints)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ classify_1(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::clear()
+ //
+
+/**
+ * <p>Clears a train collection (images and keypoints).</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-clear">org.opencv.features2d.GenericDescriptorMatcher.clear</a>
+ */
+ public void clear()
+ {
+
+ clear_0(nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: javaGenericDescriptorMatcher* javaGenericDescriptorMatcher::jclone(bool emptyTrainData = false)
+ //
+
+ public GenericDescriptorMatcher clone(boolean emptyTrainData)
+ {
+
+ GenericDescriptorMatcher retVal = new GenericDescriptorMatcher(clone_0(nativeObj, emptyTrainData));
+
+ return retVal;
+ }
+
+ public GenericDescriptorMatcher clone()
+ {
+
+ GenericDescriptorMatcher retVal = new GenericDescriptorMatcher(clone_1(nativeObj));
+
+ return retVal;
+ }
+
+
+ //
+ // C++: static javaGenericDescriptorMatcher* javaGenericDescriptorMatcher::create(int matcherType)
+ //
+
+ public static GenericDescriptorMatcher create(int matcherType)
+ {
+
+ GenericDescriptorMatcher retVal = new GenericDescriptorMatcher(create_0(matcherType));
+
+ return retVal;
+ }
+
+
+ //
+ // C++: bool javaGenericDescriptorMatcher::empty()
+ //
+
+ public boolean empty()
+ {
+
+ boolean retVal = empty_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: vector_Mat javaGenericDescriptorMatcher::getTrainImages()
+ //
+
+/**
+ * <p>Returns a train image collection.</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-gettrainimages">org.opencv.features2d.GenericDescriptorMatcher.getTrainImages</a>
+ */
+ public List<Mat> getTrainImages()
+ {
+ List<Mat> retVal = new ArrayList<Mat>();
+ Mat retValMat = new Mat(getTrainImages_0(nativeObj));
+ Converters.Mat_to_vector_Mat(retValMat, retVal);
+ return retVal;
+ }
+
+
+ //
+ // C++: vector_vector_KeyPoint javaGenericDescriptorMatcher::getTrainKeypoints()
+ //
+
+/**
+ * <p>Returns a train keypoints collection.</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-gettrainkeypoints">org.opencv.features2d.GenericDescriptorMatcher.getTrainKeypoints</a>
+ */
+ public List<MatOfKeyPoint> getTrainKeypoints()
+ {
+ List<MatOfKeyPoint> retVal = new ArrayList<MatOfKeyPoint>();
+ Mat retValMat = new Mat(getTrainKeypoints_0(nativeObj));
+ Converters.Mat_to_vector_vector_KeyPoint(retValMat, retVal);
+ return retVal;
+ }
+
+
+ //
+ // C++: bool javaGenericDescriptorMatcher::isMaskSupported()
+ //
+
+/**
+ * <p>Returns <code>true</code> if a generic descriptor matcher supports masking
+ * permissible matches.</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-ismasksupported">org.opencv.features2d.GenericDescriptorMatcher.isMaskSupported</a>
+ */
+ public boolean isMaskSupported()
+ {
+
+ boolean retVal = isMaskSupported_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::knnMatch(Mat queryImage, vector_KeyPoint queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints, vector_vector_DMatch& matches, int k, Mat mask = Mat(), bool compactResult = false)
+ //
+
+/**
+ * <p>Finds the <code>k</code> best matches for each query keypoint.</p>
+ *
+ * <p>The methods are extended variants of <code>GenericDescriptorMatch.match</code>.
+ * The parameters are similar, and the semantics is similar to <code>DescriptorMatcher.knnMatch</code>.
+ * But this class does not require explicitly computed keypoint descriptors.</p>
+ *
+ * @param queryImage a queryImage
+ * @param queryKeypoints a queryKeypoints
+ * @param trainImage a trainImage
+ * @param trainKeypoints a trainKeypoints
+ * @param matches a matches
+ * @param k a k
+ * @param mask a mask
+ * @param compactResult a compactResult
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-knnmatch">org.opencv.features2d.GenericDescriptorMatcher.knnMatch</a>
+ */
+ public void knnMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints, List<MatOfDMatch> matches, int k, Mat mask, boolean compactResult)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat trainKeypoints_mat = trainKeypoints;
+ Mat matches_mat = new Mat();
+ knnMatch_0(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj, matches_mat.nativeObj, k, mask.nativeObj, compactResult);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+/**
+ * <p>Finds the <code>k</code> best matches for each query keypoint.</p>
+ *
+ * <p>The methods are extended variants of <code>GenericDescriptorMatch.match</code>.
+ * The parameters are similar, and the semantics is similar to <code>DescriptorMatcher.knnMatch</code>.
+ * But this class does not require explicitly computed keypoint descriptors.</p>
+ *
+ * @param queryImage a queryImage
+ * @param queryKeypoints a queryKeypoints
+ * @param trainImage a trainImage
+ * @param trainKeypoints a trainKeypoints
+ * @param matches a matches
+ * @param k a k
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-knnmatch">org.opencv.features2d.GenericDescriptorMatcher.knnMatch</a>
+ */
+ public void knnMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints, List<MatOfDMatch> matches, int k)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat trainKeypoints_mat = trainKeypoints;
+ Mat matches_mat = new Mat();
+ knnMatch_1(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj, matches_mat.nativeObj, k);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::knnMatch(Mat queryImage, vector_KeyPoint queryKeypoints, vector_vector_DMatch& matches, int k, vector_Mat masks = vector<Mat>(), bool compactResult = false)
+ //
+
+/**
+ * <p>Finds the <code>k</code> best matches for each query keypoint.</p>
+ *
+ * <p>The methods are extended variants of <code>GenericDescriptorMatch.match</code>.
+ * The parameters are similar, and the semantics is similar to <code>DescriptorMatcher.knnMatch</code>.
+ * But this class does not require explicitly computed keypoint descriptors.</p>
+ *
+ * @param queryImage a queryImage
+ * @param queryKeypoints a queryKeypoints
+ * @param matches a matches
+ * @param k a k
+ * @param masks a masks
+ * @param compactResult a compactResult
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-knnmatch">org.opencv.features2d.GenericDescriptorMatcher.knnMatch</a>
+ */
+ public void knnMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, List<MatOfDMatch> matches, int k, List<Mat> masks, boolean compactResult)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat matches_mat = new Mat();
+ Mat masks_mat = Converters.vector_Mat_to_Mat(masks);
+ knnMatch_2(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, matches_mat.nativeObj, k, masks_mat.nativeObj, compactResult);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+/**
+ * <p>Finds the <code>k</code> best matches for each query keypoint.</p>
+ *
+ * <p>The methods are extended variants of <code>GenericDescriptorMatch.match</code>.
+ * The parameters are similar, and the semantics is similar to <code>DescriptorMatcher.knnMatch</code>.
+ * But this class does not require explicitly computed keypoint descriptors.</p>
+ *
+ * @param queryImage a queryImage
+ * @param queryKeypoints a queryKeypoints
+ * @param matches a matches
+ * @param k a k
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-knnmatch">org.opencv.features2d.GenericDescriptorMatcher.knnMatch</a>
+ */
+ public void knnMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, List<MatOfDMatch> matches, int k)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat matches_mat = new Mat();
+ knnMatch_3(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, matches_mat.nativeObj, k);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::match(Mat queryImage, vector_KeyPoint queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints, vector_DMatch& matches, Mat mask = Mat())
+ //
+
+/**
+ * <p>Finds the best match in the training set for each keypoint from the query
+ * set.</p>
+ *
+ * <p>The methods find the best match for each query keypoint. In the first variant
+ * of the method, a train image and its keypoints are the input arguments. In
+ * the second variant, query keypoints are matched to the internally stored
+ * training collection that can be built using the <code>GenericDescriptorMatcher.add</code>
+ * method. Optional mask (or masks) can be passed to specify which query and
+ * training descriptors can be matched. Namely, <code>queryKeypoints[i]</code>
+ * can be matched with <code>trainKeypoints[j]</code> only if <code>mask.at<uchar>(i,j)</code>
+ * is non-zero.</p>
+ *
+ * @param queryImage Query image.
+ * @param queryKeypoints Keypoints detected in <code>queryImage</code>.
+ * @param trainImage Train image. It is not added to a train image collection
+ * stored in the class object.
+ * @param trainKeypoints Keypoints detected in <code>trainImage</code>. They are
+ * not added to a train points collection stored in the class object.
+ * @param matches Matches. If a query descriptor (keypoint) is masked out in
+ * <code>mask</code>, match is added for this descriptor. So, <code>matches</code>
+ * size may be smaller than the query keypoints count.
+ * @param mask Mask specifying permissible matches between an input query and
+ * train keypoints.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-match">org.opencv.features2d.GenericDescriptorMatcher.match</a>
+ */
+ public void match(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints, MatOfDMatch matches, Mat mask)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat trainKeypoints_mat = trainKeypoints;
+ Mat matches_mat = matches;
+ match_0(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj, matches_mat.nativeObj, mask.nativeObj);
+
+ return;
+ }
+
+/**
+ * <p>Finds the best match in the training set for each keypoint from the query
+ * set.</p>
+ *
+ * <p>The methods find the best match for each query keypoint. In the first variant
+ * of the method, a train image and its keypoints are the input arguments. In
+ * the second variant, query keypoints are matched to the internally stored
+ * training collection that can be built using the <code>GenericDescriptorMatcher.add</code>
+ * method. Optional mask (or masks) can be passed to specify which query and
+ * training descriptors can be matched. Namely, <code>queryKeypoints[i]</code>
+ * can be matched with <code>trainKeypoints[j]</code> only if <code>mask.at<uchar>(i,j)</code>
+ * is non-zero.</p>
+ *
+ * @param queryImage Query image.
+ * @param queryKeypoints Keypoints detected in <code>queryImage</code>.
+ * @param trainImage Train image. It is not added to a train image collection
+ * stored in the class object.
+ * @param trainKeypoints Keypoints detected in <code>trainImage</code>. They are
+ * not added to a train points collection stored in the class object.
+ * @param matches Matches. If a query descriptor (keypoint) is masked out in
+ * <code>mask</code>, match is added for this descriptor. So, <code>matches</code>
+ * size may be smaller than the query keypoints count.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-match">org.opencv.features2d.GenericDescriptorMatcher.match</a>
+ */
+ public void match(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints, MatOfDMatch matches)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat trainKeypoints_mat = trainKeypoints;
+ Mat matches_mat = matches;
+ match_1(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj, matches_mat.nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::match(Mat queryImage, vector_KeyPoint queryKeypoints, vector_DMatch& matches, vector_Mat masks = vector<Mat>())
+ //
+
+/**
+ * <p>Finds the best match in the training set for each keypoint from the query
+ * set.</p>
+ *
+ * <p>The methods find the best match for each query keypoint. In the first variant
+ * of the method, a train image and its keypoints are the input arguments. In
+ * the second variant, query keypoints are matched to the internally stored
+ * training collection that can be built using the <code>GenericDescriptorMatcher.add</code>
+ * method. Optional mask (or masks) can be passed to specify which query and
+ * training descriptors can be matched. Namely, <code>queryKeypoints[i]</code>
+ * can be matched with <code>trainKeypoints[j]</code> only if <code>mask.at<uchar>(i,j)</code>
+ * is non-zero.</p>
+ *
+ * @param queryImage Query image.
+ * @param queryKeypoints Keypoints detected in <code>queryImage</code>.
+ * @param matches Matches. If a query descriptor (keypoint) is masked out in
+ * <code>mask</code>, match is added for this descriptor. So, <code>matches</code>
+ * size may be smaller than the query keypoints count.
+ * @param masks Set of masks. Each <code>masks[i]</code> specifies permissible
+ * matches between input query keypoints and stored train keypoints from the
+ * i-th image.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-match">org.opencv.features2d.GenericDescriptorMatcher.match</a>
+ */
+ public void match(Mat queryImage, MatOfKeyPoint queryKeypoints, MatOfDMatch matches, List<Mat> masks)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat matches_mat = matches;
+ Mat masks_mat = Converters.vector_Mat_to_Mat(masks);
+ match_2(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, matches_mat.nativeObj, masks_mat.nativeObj);
+
+ return;
+ }
+
+/**
+ * <p>Finds the best match in the training set for each keypoint from the query
+ * set.</p>
+ *
+ * <p>The methods find the best match for each query keypoint. In the first variant
+ * of the method, a train image and its keypoints are the input arguments. In
+ * the second variant, query keypoints are matched to the internally stored
+ * training collection that can be built using the <code>GenericDescriptorMatcher.add</code>
+ * method. Optional mask (or masks) can be passed to specify which query and
+ * training descriptors can be matched. Namely, <code>queryKeypoints[i]</code>
+ * can be matched with <code>trainKeypoints[j]</code> only if <code>mask.at<uchar>(i,j)</code>
+ * is non-zero.</p>
+ *
+ * @param queryImage Query image.
+ * @param queryKeypoints Keypoints detected in <code>queryImage</code>.
+ * @param matches Matches. If a query descriptor (keypoint) is masked out in
+ * <code>mask</code>, match is added for this descriptor. So, <code>matches</code>
+ * size may be smaller than the query keypoints count.
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-match">org.opencv.features2d.GenericDescriptorMatcher.match</a>
+ */
+ public void match(Mat queryImage, MatOfKeyPoint queryKeypoints, MatOfDMatch matches)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat matches_mat = matches;
+ match_3(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, matches_mat.nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::radiusMatch(Mat queryImage, vector_KeyPoint queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints, vector_vector_DMatch& matches, float maxDistance, Mat mask = Mat(), bool compactResult = false)
+ //
+
+/**
+ * <p>For each query keypoint, finds the training keypoints not farther than the
+ * specified distance.</p>
+ *
+ * <p>The methods are similar to <code>DescriptorMatcher.radius</code>. But this
+ * class does not require explicitly computed keypoint descriptors.</p>
+ *
+ * @param queryImage a queryImage
+ * @param queryKeypoints a queryKeypoints
+ * @param trainImage a trainImage
+ * @param trainKeypoints a trainKeypoints
+ * @param matches a matches
+ * @param maxDistance a maxDistance
+ * @param mask a mask
+ * @param compactResult a compactResult
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-radiusmatch">org.opencv.features2d.GenericDescriptorMatcher.radiusMatch</a>
+ */
+ public void radiusMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints, List<MatOfDMatch> matches, float maxDistance, Mat mask, boolean compactResult)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat trainKeypoints_mat = trainKeypoints;
+ Mat matches_mat = new Mat();
+ radiusMatch_0(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj, matches_mat.nativeObj, maxDistance, mask.nativeObj, compactResult);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+/**
+ * <p>For each query keypoint, finds the training keypoints not farther than the
+ * specified distance.</p>
+ *
+ * <p>The methods are similar to <code>DescriptorMatcher.radius</code>. But this
+ * class does not require explicitly computed keypoint descriptors.</p>
+ *
+ * @param queryImage a queryImage
+ * @param queryKeypoints a queryKeypoints
+ * @param trainImage a trainImage
+ * @param trainKeypoints a trainKeypoints
+ * @param matches a matches
+ * @param maxDistance a maxDistance
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-radiusmatch">org.opencv.features2d.GenericDescriptorMatcher.radiusMatch</a>
+ */
+ public void radiusMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints, List<MatOfDMatch> matches, float maxDistance)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat trainKeypoints_mat = trainKeypoints;
+ Mat matches_mat = new Mat();
+ radiusMatch_1(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj, matches_mat.nativeObj, maxDistance);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::radiusMatch(Mat queryImage, vector_KeyPoint queryKeypoints, vector_vector_DMatch& matches, float maxDistance, vector_Mat masks = vector<Mat>(), bool compactResult = false)
+ //
+
+/**
+ * <p>For each query keypoint, finds the training keypoints not farther than the
+ * specified distance.</p>
+ *
+ * <p>The methods are similar to <code>DescriptorMatcher.radius</code>. But this
+ * class does not require explicitly computed keypoint descriptors.</p>
+ *
+ * @param queryImage a queryImage
+ * @param queryKeypoints a queryKeypoints
+ * @param matches a matches
+ * @param maxDistance a maxDistance
+ * @param masks a masks
+ * @param compactResult a compactResult
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-radiusmatch">org.opencv.features2d.GenericDescriptorMatcher.radiusMatch</a>
+ */
+ public void radiusMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, List<MatOfDMatch> matches, float maxDistance, List<Mat> masks, boolean compactResult)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat matches_mat = new Mat();
+ Mat masks_mat = Converters.vector_Mat_to_Mat(masks);
+ radiusMatch_2(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, matches_mat.nativeObj, maxDistance, masks_mat.nativeObj, compactResult);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+/**
+ * <p>For each query keypoint, finds the training keypoints not farther than the
+ * specified distance.</p>
+ *
+ * <p>The methods are similar to <code>DescriptorMatcher.radius</code>. But this
+ * class does not require explicitly computed keypoint descriptors.</p>
+ *
+ * @param queryImage a queryImage
+ * @param queryKeypoints a queryKeypoints
+ * @param matches a matches
+ * @param maxDistance a maxDistance
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-radiusmatch">org.opencv.features2d.GenericDescriptorMatcher.radiusMatch</a>
+ */
+ public void radiusMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, List<MatOfDMatch> matches, float maxDistance)
+ {
+ Mat queryKeypoints_mat = queryKeypoints;
+ Mat matches_mat = new Mat();
+ radiusMatch_3(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, matches_mat.nativeObj, maxDistance);
+ Converters.Mat_to_vector_vector_DMatch(matches_mat, matches);
+ return;
+ }
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::read(string fileName)
+ //
+
+/**
+ * <p>Reads a matcher object from a file node.</p>
+ *
+ * @param fileName a fileName
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-read">org.opencv.features2d.GenericDescriptorMatcher.read</a>
+ */
+ public void read(String fileName)
+ {
+
+ read_0(nativeObj, fileName);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::train()
+ //
+
+/**
+ * <p>Trains descriptor matcher</p>
+ *
+ * <p>Prepares descriptor matcher, for example, creates a tree-based structure, to
+ * extract descriptors or to optimize descriptors matching.</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-train">org.opencv.features2d.GenericDescriptorMatcher.train</a>
+ */
+ public void train()
+ {
+
+ train_0(nativeObj);
+
+ return;
+ }
+
+
+ //
+ // C++: void javaGenericDescriptorMatcher::write(string fileName)
+ //
+
+/**
+ * <p>Writes a match object to a file storage.</p>
+ *
+ * @param fileName a fileName
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-write">org.opencv.features2d.GenericDescriptorMatcher.write</a>
+ */
+ public void write(String fileName)
+ {
+
+ write_0(nativeObj, fileName);
+
+ return;
+ }
+
+
+ @Override
+ protected void finalize() throws Throwable {
+ delete(nativeObj);
+ }
+
+
+
+ // C++: void javaGenericDescriptorMatcher::add(vector_Mat images, vector_vector_KeyPoint keypoints)
+ private static native void add_0(long nativeObj, long images_mat_nativeObj, long keypoints_mat_nativeObj);
+
+ // C++: void javaGenericDescriptorMatcher::classify(Mat queryImage, vector_KeyPoint& queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints)
+ private static native void classify_0(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj);
+
+ // C++: void javaGenericDescriptorMatcher::classify(Mat queryImage, vector_KeyPoint& queryKeypoints)
+ private static native void classify_1(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj);
+
+ // C++: void javaGenericDescriptorMatcher::clear()
+ private static native void clear_0(long nativeObj);
+
+ // C++: javaGenericDescriptorMatcher* javaGenericDescriptorMatcher::jclone(bool emptyTrainData = false)
+ private static native long clone_0(long nativeObj, boolean emptyTrainData);
+ private static native long clone_1(long nativeObj);
+
+ // C++: static javaGenericDescriptorMatcher* javaGenericDescriptorMatcher::create(int matcherType)
+ private static native long create_0(int matcherType);
+
+ // C++: bool javaGenericDescriptorMatcher::empty()
+ private static native boolean empty_0(long nativeObj);
+
+ // C++: vector_Mat javaGenericDescriptorMatcher::getTrainImages()
+ private static native long getTrainImages_0(long nativeObj);
+
+ // C++: vector_vector_KeyPoint javaGenericDescriptorMatcher::getTrainKeypoints()
+ private static native long getTrainKeypoints_0(long nativeObj);
+
+ // C++: bool javaGenericDescriptorMatcher::isMaskSupported()
+ private static native boolean isMaskSupported_0(long nativeObj);
+
+ // C++: void javaGenericDescriptorMatcher::knnMatch(Mat queryImage, vector_KeyPoint queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints, vector_vector_DMatch& matches, int k, Mat mask = Mat(), bool compactResult = false)
+ private static native void knnMatch_0(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj, long matches_mat_nativeObj, int k, long mask_nativeObj, boolean compactResult);
+ private static native void knnMatch_1(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj, long matches_mat_nativeObj, int k);
+
+ // C++: void javaGenericDescriptorMatcher::knnMatch(Mat queryImage, vector_KeyPoint queryKeypoints, vector_vector_DMatch& matches, int k, vector_Mat masks = vector<Mat>(), bool compactResult = false)
+ private static native void knnMatch_2(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long matches_mat_nativeObj, int k, long masks_mat_nativeObj, boolean compactResult);
+ private static native void knnMatch_3(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long matches_mat_nativeObj, int k);
+
+ // C++: void javaGenericDescriptorMatcher::match(Mat queryImage, vector_KeyPoint queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints, vector_DMatch& matches, Mat mask = Mat())
+ private static native void match_0(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj, long matches_mat_nativeObj, long mask_nativeObj);
+ private static native void match_1(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj, long matches_mat_nativeObj);
+
+ // C++: void javaGenericDescriptorMatcher::match(Mat queryImage, vector_KeyPoint queryKeypoints, vector_DMatch& matches, vector_Mat masks = vector<Mat>())
+ private static native void match_2(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long matches_mat_nativeObj, long masks_mat_nativeObj);
+ private static native void match_3(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long matches_mat_nativeObj);
+
+ // C++: void javaGenericDescriptorMatcher::radiusMatch(Mat queryImage, vector_KeyPoint queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints, vector_vector_DMatch& matches, float maxDistance, Mat mask = Mat(), bool compactResult = false)
+ private static native void radiusMatch_0(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj, long matches_mat_nativeObj, float maxDistance, long mask_nativeObj, boolean compactResult);
+ private static native void radiusMatch_1(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj, long matches_mat_nativeObj, float maxDistance);
+
+ // C++: void javaGenericDescriptorMatcher::radiusMatch(Mat queryImage, vector_KeyPoint queryKeypoints, vector_vector_DMatch& matches, float maxDistance, vector_Mat masks = vector<Mat>(), bool compactResult = false)
+ private static native void radiusMatch_2(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long matches_mat_nativeObj, float maxDistance, long masks_mat_nativeObj, boolean compactResult);
+ private static native void radiusMatch_3(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long matches_mat_nativeObj, float maxDistance);
+
+ // C++: void javaGenericDescriptorMatcher::read(string fileName)
+ private static native void read_0(long nativeObj, String fileName);
+
+ // C++: void javaGenericDescriptorMatcher::train()
+ private static native void train_0(long nativeObj);
+
+ // C++: void javaGenericDescriptorMatcher::write(string fileName)
+ private static native void write_0(long nativeObj, String fileName);
+
+ // native support for java finalize()
+ private static native void delete(long nativeObj);
+
+}
diff --git a/OpenCV/src/main/resources/org/opencv/features2d/KeyPoint.class b/OpenCV/src/main/resources/org/opencv/features2d/KeyPoint.class
index 5783e06..994f1bb 100644
Binary files a/OpenCV/src/main/resources/org/opencv/features2d/KeyPoint.class and b/OpenCV/src/main/resources/org/opencv/features2d/KeyPoint.class differ
diff --git a/OpenCV/src/main/resources/org/opencv/features2d/KeyPoint.java b/OpenCV/src/main/resources/org/opencv/features2d/KeyPoint.java
index d9c4edd..d0f03ba 100644
--- a/OpenCV/src/main/resources/org/opencv/features2d/KeyPoint.java
+++ b/OpenCV/src/main/resources/org/opencv/features2d/KeyPoint.java
@@ -2,6 +2,28 @@ package org.opencv.features2d;
import org.opencv.core.Point;
+/**
+ * <p>Data structure for salient point detectors.</p>
+ *
+ * <p>coordinates of the keypoint</p>
+ *
+ * <p>diameter of the meaningful keypoint neighborhood <code></p>
+ *
+ * <p>// C++ code:</p>
+ *
+ * <p>computed orientation of the keypoint (-1 if not applicable). Its possible
+ * values are in a range [0,360) degrees. It is measured relative to image
+ * coordinate system (y-axis is directed downward), ie in clockwise.</p>
+ *
+ * <p>the response by which the most strong keypoints have been selected. Can be
+ * used for further sorting or subsampling</p>
+ *
+ * <p>octave (pyramid layer) from which the keypoint has been extracted</p>
+ *
+ * <p>object id that can be used to clustered keypoints by an object they belong to</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint">org.opencv.features2d.KeyPoint</a>
+ */
public class KeyPoint {
/**
@@ -31,6 +53,20 @@ public class KeyPoint {
*/
public int class_id;
+/**
+ * <p>The keypoint constructors</p>
+ *
+ * @param x x-coordinate of the keypoint
+ * @param y y-coordinate of the keypoint
+ * @param _size keypoint diameter
+ * @param _angle keypoint orientation
+ * @param _response keypoint detector response on the keypoint (that is,
+ * strength of the keypoint)
+ * @param _octave pyramid octave in which the keypoint has been detected
+ * @param _class_id object id
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint-keypoint">org.opencv.features2d.KeyPoint.KeyPoint</a>
+ */
public KeyPoint(float x, float y, float _size, float _angle, float _response, int _octave, int _class_id)
{
pt = new Point(x, y);
@@ -41,26 +77,75 @@ public class KeyPoint {
class_id = _class_id;
}
+/**
+ * <p>The keypoint constructors</p>
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint-keypoint">org.opencv.features2d.KeyPoint.KeyPoint</a>
+ */
public KeyPoint()
{
this(0, 0, 0, -1, 0, 0, -1);
}
+/**
+ * <p>The keypoint constructors</p>
+ *
+ * @param x x-coordinate of the keypoint
+ * @param y y-coordinate of the keypoint
+ * @param _size keypoint diameter
+ * @param _angle keypoint orientation
+ * @param _response keypoint detector response on the keypoint (that is,
+ * strength of the keypoint)
+ * @param _octave pyramid octave in which the keypoint has been detected
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint-keypoint">org.opencv.features2d.KeyPoint.KeyPoint</a>
+ */
public KeyPoint(float x, float y, float _size, float _angle, float _response, int _octave)
{
this(x, y, _size, _angle, _response, _octave, -1);
}
+/**
+ * <p>The keypoint constructors</p>
+ *
+ * @param x x-coordinate of the keypoint
+ * @param y y-coordinate of the keypoint
+ * @param _size keypoint diameter
+ * @param _angle keypoint orientation
+ * @param _response keypoint detector response on the keypoint (that is,
+ * strength of the keypoint)
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint-keypoint">org.opencv.features2d.KeyPoint.KeyPoint</a>
+ */
public KeyPoint(float x, float y, float _size, float _angle, float _response)
{
this(x, y, _size, _angle, _response, 0, -1);
}
+/**
+ * <p>The keypoint constructors</p>
+ *
+ * @param x x-coordinate of the keypoint
+ * @param y y-coordinate of the keypoint
+ * @param _size keypoint diameter
+ * @param _angle keypoint orientation
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint-keypoint">org.opencv.features2d.KeyPoint.KeyPoint</a>
+ */
public KeyPoint(float x, float y, float _size, float _angle)
{
this(x, y, _size, _angle, 0, 0, -1);
}
+/**
+ * <p>The keypoint constructors</p>
+ *
+ * @param x x-coordinate of the keypoint
+ * @param y y-coordinate of the keypoint
+ * @param _size keypoint diameter
+ *
+ * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint-keypoint">org.opencv.features2d.KeyPoint.KeyPoint</a>
+ */
public KeyPoint(float x, float y, float _size)
{
this(x, y, _size, -1, 0, 0, -1);
diff --git a/OpenCV/src/main/resources/org/opencv/gpu/DeviceInfo.class b/OpenCV/src/main/resources/org/opencv/gpu/DeviceInfo.class
new file mode 100644
index 0000000..4f20927
Binary files /dev/null and b/OpenCV/src/main/resources/org/opencv/gpu/DeviceInfo.class differ
diff --git a/OpenCV/src/main/resources/org/opencv/gpu/DeviceInfo.java b/OpenCV/src/main/resources/org/opencv/gpu/DeviceInfo.java
new file mode 100644
index 0000000..109bd89
--- /dev/null
+++ b/OpenCV/src/main/resources/org/opencv/gpu/DeviceInfo.java
@@ -0,0 +1,231 @@
+package org.opencv.gpu;
+
+import java.lang.String;
+
+// C++: class DeviceInfo
+public class DeviceInfo {
+
+ protected final long nativeObj;
+ protected DeviceInfo(long addr) { nativeObj = addr; }
+
+
+ //
+ // C++: DeviceInfo::DeviceInfo()
+ //
+
+ public DeviceInfo()
+ {
+
+ nativeObj = DeviceInfo_0();
+
+ return;
+ }
+
+
+ //
+ // C++: DeviceInfo::DeviceInfo(int device_id)
+ //
+
+ public DeviceInfo(int device_id)
+ {
+
+ nativeObj = DeviceInfo_1(device_id);
+
+ return;
+ }
+
+
+ //
+ // C++: int DeviceInfo::deviceID()
+ //
+
+ public int deviceID()
+ {
+
+ int retVal = deviceID_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: size_t DeviceInfo::freeMemory()
+ //
+
+ public long freeMemory()
+ {
+
+ long retVal = freeMemory_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: bool DeviceInfo::isCompatible()
+ //
+
+ public boolean isCompatible()
+ {
+
+ boolean retVal = isCompatible_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: int DeviceInfo::majorVersion()
+ //
+
+ public int majorVersion()
+ {
+
+ int retVal = majorVersion_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: int DeviceInfo::minorVersion()
+ //
+
+ public int minorVersion()
+ {
+
+ int retVal = minorVersion_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: int DeviceInfo::multiProcessorCount()
+ //
+
+ public int multiProcessorCount()
+ {
+
+ int retVal = multiProcessorCount_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: string DeviceInfo::name()
+ //
+
+ public String name()
+ {
+
+ String retVal = name_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: void DeviceInfo::queryMemory(size_t& totalMemory, size_t& freeMemory)
+ //
+
+ public void queryMemory(long totalMemory, long freeMemory)
+ {
+ double[] totalMemory_out = new double[1];
+ double[] freeMemory_out = new double[1];
+ queryMemory_0(nativeObj, totalMemory_out, freeMemory_out);
+ totalMemory = (long)totalMemory_out[0];
+ freeMemory = (long)freeMemory_out[0];
+ }
+
+
+ //
+ // C++: size_t DeviceInfo::sharedMemPerBlock()
+ //
+
+ public long sharedMemPerBlock()
+ {
+
+ long retVal = sharedMemPerBlock_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: bool DeviceInfo::supports(int feature_set)
+ //
+
+ public boolean supports(int feature_set)
+ {
+
+ boolean retVal = supports_0(nativeObj, feature_set);
+
+ return retVal;
+ }
+
+
+ //
+ // C++: size_t DeviceInfo::totalMemory()
+ //
+
+ public long totalMemory()
+ {
+
+ long retVal = totalMemory_0(nativeObj);
+
+ return retVal;
+ }
+
+
+ @Override
+ protected void finalize() throws Throwable {
+ delete(nativeObj);
+ }
+
+
+
+ // C++: DeviceInfo::DeviceInfo()
+ private static native long DeviceInfo_0();
+
+ // C++: DeviceInfo::DeviceInfo(int device_id)
+ private static native long DeviceInfo_1(int device_id);
+
+ // C++: int DeviceInfo::deviceID()
+ private static native int deviceID_0(long nativeObj);
+
+ // C++: size_t DeviceInfo::freeMemory()
+ private static native long freeMemory_0(long nativeObj);
+
+ // C++: bool DeviceInfo::isCompatible()
+ private static native boolean isCompatible_0(long nativeObj);
+
+ // C++: int DeviceInfo::majorVersion()
+ private static native int majorVersion_0(long nativeObj);
+
+ // C++: int DeviceInfo::minorVersion()
+ private static native int minorVersion_0(long nativeObj);
+
+ // C++: int DeviceInfo::multiProcessorCount()
+ private static native int multiProcessorCount_0(long nativeObj);
+
+ // C++: string DeviceInfo::name()
+ private static native String name_0(long nativeObj);
+
+ // C++: void DeviceInfo::queryMemory(size_t& totalMemory, size_t& freeMemory)
+ private static native void queryMemory_0(long nativeObj, double[] totalMemory_out, double[] freeMemory_out);
+
+ // C++: size_t DeviceInfo::sharedMemPerBlock()
+ private static native long sharedMemPerBlock_0(long nativeObj);
+
+ // C++: bool DeviceInfo::supports(int feature_set)
+ private static native boolean supports_0(long nativeObj, int feature_set);
+
+ // C++: size_t DeviceInfo::totalMemory()
+ private static native long totalMemory_0(long nativeObj);
+
+ // native support for java finalize()
+ private static native void delete(long nativeObj);
+
+}
diff --git a/OpenCV/src/main/resources/org/opencv/gpu/Gpu.class b/OpenCV/src/main/resources/org/opencv/gpu/Gpu.class
new file mode 100644
index 0000000..de66d2b
Binary files /dev/null and b/OpenCV/src/main/resources/org/opencv/gpu/Gpu.class differ
diff --git a/OpenCV/src/main/resources/org/opencv/gpu/Gpu.java b/OpenCV/src/main/resources/org/opencv/gpu/Gpu.java
new file mode 100644
index 0000000..397560e
--- /dev/null
+++ b/OpenCV/src/main/resources/org/opencv/gpu/Gpu.java
@@ -0,0 +1,121 @@
+package org.opencv.gpu;
+
+public class Gpu {
+
+ public static final int
+ FEATURE_SET_COMPUTE_10 = 10,
+ FEATURE_SET_COMPUTE_11 = 11,
+ FEATURE_SET_COMPUTE_12 = 12,
+ FEATURE_SET_COMPUTE_13 = 13,
+ FEATURE_SET_COMPUTE_20 = 20,
+ FEATURE_SET_COMPUTE_21 = 21,
+ FEATURE_SET_COMPUTE_30 = 30,
+ FEATURE_SET_COMPUTE_35 = 35,
+ GLOBAL_ATOMICS = FEATURE_SET_COMPUTE_11,
+ SHARED_ATOMICS = FEATURE_SET_COMPUTE_12,
+ NATIVE_DOUBLE = FEATURE_SET_COMPUTE_13,
+ WARP_SHUFFLE_FUNCTIONS = FEATURE_SET_COMPUTE_30,
+ DYNAMIC_PARALLELISM = FEATURE_SET_COMPUTE_35;
+
+
+ //
+ // C++: bool deviceSupports(int feature_set)
+ //
+
+ public static boolean deviceSupports(int feature_set)
+ {
+ boolean retVal = deviceSupports_0(feature_set);
+ return retVal;
+ }
+
+
+ //
+ // C++: int getCudaEnabledDeviceCount()
+ //
+
+ public static int getCudaEnabledDeviceCount()
+ {
+ int retVal = getCudaEnabledDeviceCount_0();
+ return retVal;
+ }
+
+
+ //
+ // C++: int getDevice()
+ //
+
+ public static int getDevice()
+ {
+ int retVal = getDevice_0();
+ return retVal;
+ }
+
+
+ //
+ // C++: void printCudaDeviceInfo(int device)
+ //
+
+ public static void printCudaDeviceInfo(int device)
+ {
+ printCudaDeviceInfo_0(device);
+ return;
+ }
+
+
+ //
+ // C++: void printShortCudaDeviceInfo(int device)
+ //
+
+ public static void printShortCudaDeviceInfo(int device)
+ {
+ printShortCudaDeviceInfo_0(device);
+ return;
+ }
+
+
+ //
+ // C++: void resetDevice()
+ //
+
+ public static void resetDevice()
+ {
+ resetDevice_0();
+ return;
+ }
+
+
+ //
+ // C++: void setDevice(int device)
+ //
+
+ public static void setDevice(int device)
+ {
+ setDevice_0(device);
+ return;
+ }
+
+
+
+
+ // C++: bool deviceSupports(int feature_set)
+ private static native boolean deviceSupports_0(int feature_set);
+
+ // C++: int getCudaEnabledDeviceCount()
+ private static native int getCudaEnabledDeviceCount_0();
+
+ // C++: int getDevice()
+ private static native int getDevice_0();
+
+ // C++: void printCudaDeviceInfo(int device)
+ private static native void printCudaDeviceInfo_0(int device);
+
+ // C++: void printShortCudaDeviceInfo(int device)
+ private static native void printShortCudaDeviceInfo_0(int device);
+
+ // C++: void resetDevice()
+ private static native void resetDevice_0();
+
+ // C++: void setDevice(int device)
+ private static native void setDevice_0(int device);
+
+}
diff --git a/OpenCV/src/main/resources/org/opencv/gpu/TargetArchs.class b/OpenCV/src/main/resources/org/opencv/gpu/TargetArchs.class
new file mode 100644
index 0000000..73dfe94
Binary files /dev/null and b/OpenCV/src/main/resources/org/opencv/gpu/TargetArchs.class differ
diff --git a/OpenCV/src/main/resources/org/opencv/gpu/TargetArchs.java b/OpenCV/src/main/resources/org/opencv/gpu/TargetArchs.java
new file mode 100644
index 0000000..48141d5
--- /dev/null
+++ b/OpenCV/src/main/resources/org/opencv/gpu/TargetArchs.java
@@ -0,0 +1,132 @@
+package org.opencv.gpu;
+
+// C++: class TargetArchs
+public class TargetArchs {
+
+ protected final long nativeObj;
+ protected TargetArchs(long addr) { nativeObj = addr; }
+
+
+ //
+ // C++: static bool TargetArchs::builtWith(int feature_set)
+ //
+
+ public static boolean builtWith(int feature_set)
+ {
+ boolean retVal = builtWith_0(feature_set);
+ return retVal;
+ }
+
+
+ //
+ // C++: static bool TargetArchs::has(int major, int minor)
+ //
+
+ public static boolean has(int major, int minor)
+ {
+ boolean retVal = has_0(major, minor);
+ return retVal;
+ }
+
+
+ //
+ // C++: static bool TargetArchs::hasBin(int major, int minor)
+ //
+
+ public static boolean hasBin(int major, int minor)
+ {
+ boolean retVal = hasBin_0(major, minor);
+ return retVal;
+ }
+
+
+ //
+ // C++: static bool TargetArchs::hasEqualOrGreater(int major, int minor)
+ //
+
+ public static boolean hasEqualOrGreater(int major, int minor)
+ {
+ boolean retVal = hasEqualOrGreater_0(major, minor);
+ return retVal;
+ }
+
+
+ //
+ // C++: static bool TargetArchs::hasEqualOrGreaterBin(int major, int minor)
+ //
+
+ public static boolean hasEqualOrGreaterBin(int major, int minor)
+ {
+ boolean retVal = hasEqualOrGreaterBin_0(major, minor);
+ return retVal;
+ }
+
+
+ //
+ // C++: static bool TargetArchs::hasEqualOrGreaterPtx(int major, int minor)
+ //
+
+ public static boolean hasEqualOrGreaterPtx(int major, int minor)
+ {
+ boolean retVal = hasEqualOrGreaterPtx_0(major, minor);
+ return retVal;
+ }
+
+
+ //
+ // C++: static bool TargetArchs::hasEqualOrLessPtx(int major, int minor)
+ //
+
+ public static boolean hasEqualOrLessPtx(int major, int minor)
+ {
+ boolean retVal = hasEqualOrLessPtx_0(major, minor);
+ return retVal;
+ }
+
+
+ //
+ // C++: static bool TargetArchs::hasPtx(int major, int minor)
+ //
+
+ public static boolean hasPtx(int major, int minor)
+ {
+ boolean retVal = hasPtx_0(major, minor);
+ return retVal;
+ }
+
+
+ @Override
+ protected void finalize() throws Throwable {
+ delete(nativeObj);
+ }
+
+
+
+ // C++: static bool TargetArchs::builtWith(int feature_set)
+ private static native boolean builtWith_0(int feature_set);
+
+ // C++: static bool TargetArchs::has(int major, int minor)
+ private static native boolean has_0(int major, int minor);
+
+ // C++: static bool TargetArchs::hasBin(int major, int minor)
+ private static native boolean hasBin_0(int major, int minor);
+
+ // C++: static bool TargetArchs::hasEqualOrGreater(int major, int minor)
+ private static native boolean hasEqualOrGreater_0(int major, int minor);
+
+ // C++: static bool TargetArchs::hasEqualOrGreaterBin(int major, int minor)
+ private static native boolean hasEqualOrGreaterBin_0(int major, int minor);
+
+ // C++: static bool TargetArchs::hasEqualOrGreaterPtx(int major, int minor)
+ private static native boolean hasEqualOrGreaterPtx_0(int major, int minor);
+
+ // C++: static bool TargetArchs::hasEqualOrLessPtx(int major, int minor)
+ private static native boolean hasEqualOrLessPtx_0(int major, int minor);
+
+ // C++: static bool TargetArchs::hasPtx(int major, int minor)
+ private static native boolean hasPtx_0(int major, int minor);
+
+ // native support for java finalize()
+ private static native void delete(long nativeObj);
+
+}
diff --git a/OpenCV/src/main/resources/org/opencv/highgui/Highgui.class b/OpenCV/src/main/resources/org/opencv/highgui/Highgui.class
index eed9f47..d094c87 100644
Binary files a/OpenCV/src/main/resources/org/opencv/highgui/Highgui.class and b/OpenCV/src/main/resources/org/opencv/highgui/Highgui.class differ
diff --git a/OpenCV/src/main/resources/org/opencv/highgui/Highgui.java b/OpenCV/src/main/resources/org/opencv/highgui/Highgui.java
index 53458c5..1d848b3 100644
--- a/OpenCV/src/main/resources/org/opencv/highgui/Highgui.java
+++ b/OpenCV/src/main/resources/org/opencv/highgui/Highgui.java
@@ -98,6 +98,13 @@ public class Highgui {
CV_CAP_PROP_GIGA_FRAME_HEIGH_MAX = 10004,
CV_CAP_PROP_GIGA_FRAME_SENS_WIDTH = 10005,
CV_CAP_PROP_GIGA_FRAME_SENS_HEIGH = 10006,
+ CV_CAP_PROP_INTELPERC_PROFILE_COUNT = 11001,
+ CV_CAP_PROP_INTELPERC_PROFILE_IDX = 11002,
+ CV_CAP_PROP_INTELPERC_DEPTH_LOW_CONFIDENCE_VALUE = 11003,
+ CV_CAP_PROP_INTELPERC_DEPTH_SATURATION_VALUE = 11004,
+ CV_CAP_PROP_INTELPERC_DEPTH_CONFIDENCE_THRESHOLD = 11005,
+ CV_CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_HORZ = 11006,
+ CV_CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_VERT = 11007,
CV_CAP_ANDROID_COLOR_FRAME_BGR = 0,
CV_CAP_ANDROID_COLOR_FRAME = CV_CAP_ANDROID_COLOR_FRAME_BGR,
CV_CAP_ANDROID_GREY_FRAME = 1,
diff --git a/OpenCV/src/main/resources/org/opencv/imgproc/Imgproc.java b/OpenCV/src/main/resources/org/opencv/imgproc/Imgproc.java
index a7d4f4e..a99dad8 100644
--- a/OpenCV/src/main/resources/org/opencv/imgproc/Imgproc.java
+++ b/OpenCV/src/main/resources/org/opencv/imgproc/Imgproc.java
@@ -392,7 +392,7 @@ public class Imgproc {
* <li> An example on using the canny edge detector can be found at
* opencv_source_code/samples/cpp/edge.cpp
* <li> (Python) An example on using the canny edge detector can be found at
- * opencv_source_code/samples/cpp/edge.py
+ * opencv_source_code/samples/python/edge.py
* </ul>
*
* @param image single-channel 8-bit input image.
@@ -431,7 +431,7 @@ public class Imgproc {
* <li> An example on using the canny edge detector can be found at
* opencv_source_code/samples/cpp/edge.cpp
* <li> (Python) An example on using the canny edge detector can be found at
- * opencv_source_code/samples/cpp/edge.py
+ * opencv_source_code/samples/python/edge.py
* </ul>
*
* @param image single-channel 8-bit input image.
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/sikuli.git
More information about the pkg-java-commits
mailing list