mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 00:03:03 +04:00
Merge pull request #8524 from mshabunin:java-fixes
This commit is contained in:
@@ -45,9 +45,6 @@ public class DMatch {
|
||||
distance = _distance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Less is better.
|
||||
*/
|
||||
public boolean lessThan(DMatch it) {
|
||||
return distance < it.distance;
|
||||
}
|
||||
|
||||
@@ -345,7 +345,7 @@ else(ANDROID)
|
||||
list(APPEND step3_depends "${OpenCV_BINARY_DIR}/build.xml")
|
||||
|
||||
add_custom_command(OUTPUT "${JAR_FILE}" "${JAR_FILE}.dephelper"
|
||||
COMMAND ${ANT_EXECUTABLE} -q -noinput -k jar
|
||||
COMMAND ${ANT_EXECUTABLE} -q -noinput -k jar javadoc
|
||||
COMMAND ${CMAKE_COMMAND} -E touch "${JAR_FILE}.dephelper"
|
||||
WORKING_DIRECTORY "${OpenCV_BINARY_DIR}"
|
||||
DEPENDS ${step3_depends}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<!-- process, this config is used to package the autogenerated .java -->
|
||||
<!-- interface files into OpenCV.jar -->
|
||||
<project name="OpenCV">
|
||||
|
||||
<target name="jar">
|
||||
<!-- This is to make a jar with a source attachment, for e.g. easy -->
|
||||
<!-- navigation in Eclipse. See this question: -->
|
||||
@@ -10,7 +11,21 @@
|
||||
<include name="**/*.java"/>
|
||||
<compilerarg line="-encoding utf-8"/>
|
||||
</javac>
|
||||
|
||||
<jar basedir="src" destfile="bin/@JAR_NAME@"/>
|
||||
</target>
|
||||
|
||||
<target name="javadoc">
|
||||
<tstamp>
|
||||
<format property="doctimestamp" pattern="EEE MMM d yyyy HH:mm:ss z"/>
|
||||
</tstamp>
|
||||
<javadoc
|
||||
packagenames="org.opencv.*"
|
||||
sourcepath="src"
|
||||
destdir="doc/javadoc"
|
||||
Windowtitle="OpenCV @OPENCV_VERSION_PLAIN@ Java documentation"
|
||||
Doctitle="OpenCV Java documentation (@OPENCV_VERSION@)"
|
||||
bottom="Generated on ${doctimestamp} / OpenCV @OPENCV_VCSVERSION@"
|
||||
/>
|
||||
</target>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -1005,7 +1005,7 @@ class JavaWrapperGenerator(object):
|
||||
type_dict["Ptr_"+name] = \
|
||||
{ "j_type" : classinfo.jname,
|
||||
"jn_type" : "long", "jn_args" : (("__int64", ".nativeObj"),),
|
||||
"jni_name" : "Ptr<"+classinfo.fullName(isCPP=True)+">(("+classinfo.fullName(isCPP=True)+"*)%(n)s_nativeObj)", "jni_type" : "jlong",
|
||||
"jni_name" : "*((Ptr<"+classinfo.fullName(isCPP=True)+">*)%(n)s_nativeObj)", "jni_type" : "jlong",
|
||||
"suffix" : "J" }
|
||||
logging.info('ok: class %s, name: %s, base: %s', classinfo, name, classinfo.base)
|
||||
|
||||
@@ -1575,7 +1575,7 @@ JNIEXPORT void JNICALL Java_org_opencv_%(module)s_%(j_cls)s_delete
|
||||
# if parents are smart (we hope) then children are!
|
||||
# if not we believe the class is smart if it has "create" method
|
||||
ci.smart = False
|
||||
if ci.base:
|
||||
if ci.base or ci.name == 'Algorithm':
|
||||
ci.smart = True
|
||||
else:
|
||||
for fi in ci.methods:
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package org.opencv.test.ml;
|
||||
|
||||
import org.opencv.ml.Ml;
|
||||
import org.opencv.ml.SVM;
|
||||
import org.opencv.core.Mat;
|
||||
import org.opencv.core.MatOfFloat;
|
||||
import org.opencv.core.MatOfInt;
|
||||
import org.opencv.core.CvType;
|
||||
import org.opencv.test.OpenCVTestCase;
|
||||
import org.opencv.test.OpenCVTestRunner;
|
||||
|
||||
public class MLTest extends OpenCVTestCase {
|
||||
|
||||
public void testSaveLoad() {
|
||||
Mat samples = new MatOfFloat(new float[] {
|
||||
5.1f, 3.5f, 1.4f, 0.2f,
|
||||
4.9f, 3.0f, 1.4f, 0.2f,
|
||||
4.7f, 3.2f, 1.3f, 0.2f,
|
||||
4.6f, 3.1f, 1.5f, 0.2f,
|
||||
5.0f, 3.6f, 1.4f, 0.2f,
|
||||
7.0f, 3.2f, 4.7f, 1.4f,
|
||||
6.4f, 3.2f, 4.5f, 1.5f,
|
||||
6.9f, 3.1f, 4.9f, 1.5f,
|
||||
5.5f, 2.3f, 4.0f, 1.3f,
|
||||
6.5f, 2.8f, 4.6f, 1.5f
|
||||
}).reshape(1, 10);
|
||||
Mat responses = new MatOfInt(new int[] {
|
||||
0, 0, 0, 0, 0, 1, 1, 1, 1, 1
|
||||
}).reshape(1, 10);
|
||||
SVM saved = SVM.create();
|
||||
assertFalse(saved.isTrained());
|
||||
|
||||
saved.train(samples, Ml.ROW_SAMPLE, responses);
|
||||
assertTrue(saved.isTrained());
|
||||
|
||||
String filename = OpenCVTestRunner.getTempFileName("yml");
|
||||
saved.save(filename);
|
||||
SVM loaded = SVM.load(filename);
|
||||
assertTrue(saved.isTrained());
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user