mirror of
https://github.com/opencv/opencv.git
synced 2024-11-29 13:47:32 +08:00
Added class TermCriteria.
This commit is contained in:
parent
e33bfb5ebf
commit
0db73575a6
@ -78,7 +78,7 @@ type_dict = {
|
|||||||
"Range" : { "j_type" : "Range", "jn_args" : (("int", ".start"), ("int", ".end")),
|
"Range" : { "j_type" : "Range", "jn_args" : (("int", ".start"), ("int", ".end")),
|
||||||
"jni_var" : "cv::Range %(n)s(%(n)s_start, %(n)s_end)",
|
"jni_var" : "cv::Range %(n)s(%(n)s_start, %(n)s_end)",
|
||||||
"suffix" : "II"},
|
"suffix" : "II"},
|
||||||
"CvSlice" : { "j_type" : "Range", "jn_args" : (("int", ".start"), ("int", ".end")),
|
"CvSlice" : { "j_type" : "Range", "jn_args" : (("int", ".start"), ("int", ".end")),
|
||||||
"jni_var" : "cv::Range %(n)s(%(n)s_start, %(n)s_end)",
|
"jni_var" : "cv::Range %(n)s(%(n)s_start, %(n)s_end)",
|
||||||
"suffix" : "II"},
|
"suffix" : "II"},
|
||||||
"string" : { "j_type" : "java.lang.String", "jn_type" : "java.lang.String",
|
"string" : { "j_type" : "java.lang.String", "jn_type" : "java.lang.String",
|
||||||
@ -93,6 +93,9 @@ type_dict = {
|
|||||||
"jni_type" : "jstring", "jni_name" : "n_%(n)s.c_str()",
|
"jni_type" : "jstring", "jni_name" : "n_%(n)s.c_str()",
|
||||||
"jni_var" : 'const char* utf_%(n)s = env->GetStringUTFChars(%(n)s, 0); std::string n_%(n)s( utf_%(n)s ? utf_%(n)s : "" ); env->ReleaseStringUTFChars(%(n)s, utf_%(n)s)',
|
"jni_var" : 'const char* utf_%(n)s = env->GetStringUTFChars(%(n)s, 0); std::string n_%(n)s( utf_%(n)s ? utf_%(n)s : "" ); env->ReleaseStringUTFChars(%(n)s, utf_%(n)s)',
|
||||||
"suffix" : "Ljava_lang_String_2"},
|
"suffix" : "Ljava_lang_String_2"},
|
||||||
|
"TermCriteria": { "j_type" : "TermCriteria", "jn_args" : (("int", ".type"), ("int", ".maxCount"), ("double", ".epsilon")),
|
||||||
|
"jni_var" : "TermCriteria %(n)s(%(n)s_type, %(n)s_maxCount, %(n)s_epsilon)",
|
||||||
|
"suffix" : "IID"},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -320,7 +323,7 @@ class JavaWrapperGenerator(object):
|
|||||||
if (mask != null) {
|
if (mask != null) {
|
||||||
maskNativeObj=mask.nativeObj;
|
maskNativeObj=mask.nativeObj;
|
||||||
}
|
}
|
||||||
double resarr[] = n_minMaxLoc(src.nativeObj, maskNativeObj);
|
double resarr[] = n_minMaxLocManual(src.nativeObj, maskNativeObj);
|
||||||
res.minVal=resarr[0];
|
res.minVal=resarr[0];
|
||||||
res.maxVal=resarr[1];
|
res.maxVal=resarr[1];
|
||||||
res.minLoc.x=resarr[2];
|
res.minLoc.x=resarr[2];
|
||||||
@ -332,7 +335,7 @@ class JavaWrapperGenerator(object):
|
|||||||
public static MinMaxLocResult minMaxLoc(Mat src) {
|
public static MinMaxLocResult minMaxLoc(Mat src) {
|
||||||
return minMaxLoc(src, null);
|
return minMaxLoc(src, null);
|
||||||
}
|
}
|
||||||
private static native double[] n_minMaxLoc(long src_nativeObj, long mask_nativeObj);
|
private static native double[] n_minMaxLocManual(long src_nativeObj, long mask_nativeObj);
|
||||||
|
|
||||||
|
|
||||||
""" )
|
""" )
|
||||||
@ -420,7 +423,7 @@ class JavaWrapperGenerator(object):
|
|||||||
if module == "core":
|
if module == "core":
|
||||||
self.cpp_code.write(\
|
self.cpp_code.write(\
|
||||||
"""
|
"""
|
||||||
JNIEXPORT jdoubleArray JNICALL Java_org_opencv_core_n_1minMaxLoc
|
JNIEXPORT jdoubleArray JNICALL Java_org_opencv_core_n_1minMaxLocManual
|
||||||
(JNIEnv* env, jclass cls, jlong src_nativeObj, jlong mask_nativeObj)
|
(JNIEnv* env, jclass cls, jlong src_nativeObj, jlong mask_nativeObj)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
60
modules/java/src/java/TermCriteria.java
Normal file
60
modules/java/src/java/TermCriteria.java
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
package org.opencv;
|
||||||
|
|
||||||
|
//javadoc:TermCriteria
|
||||||
|
public class TermCriteria {
|
||||||
|
|
||||||
|
public int type;
|
||||||
|
public int maxCount;
|
||||||
|
public double epsilon;
|
||||||
|
|
||||||
|
public TermCriteria(int t, int c, double e) {
|
||||||
|
this.type = t;
|
||||||
|
this.maxCount = c;
|
||||||
|
this.epsilon = e;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TermCriteria() {
|
||||||
|
this(0, 0, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TermCriteria(double[] vals) {
|
||||||
|
this();
|
||||||
|
if(vals!=null) {
|
||||||
|
type = vals.length>0 ? (int)vals[0] : 0;
|
||||||
|
maxCount = vals.length>1 ? (int)vals[1] : 0;
|
||||||
|
epsilon = vals.length>2 ? (double)vals[2] : 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TermCriteria clone() {
|
||||||
|
return new TermCriteria(type, maxCount, epsilon);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
final int prime = 31;
|
||||||
|
int result = 1;
|
||||||
|
long temp;
|
||||||
|
temp = Double.doubleToLongBits(type);
|
||||||
|
result = prime * result + (int) (temp ^ (temp >>> 32));
|
||||||
|
temp = Double.doubleToLongBits(maxCount);
|
||||||
|
result = prime * result + (int) (temp ^ (temp >>> 32));
|
||||||
|
temp = Double.doubleToLongBits(epsilon);
|
||||||
|
result = prime * result + (int) (temp ^ (temp >>> 32));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj) return true;
|
||||||
|
if (!(obj instanceof TermCriteria)) return false;
|
||||||
|
TermCriteria it = (TermCriteria) obj;
|
||||||
|
return type == it.type && maxCount == it.maxCount && epsilon== it.epsilon;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
if (this == null) return "null";
|
||||||
|
return "{ type: " + type + ", maxCount: " + maxCount + ", epsilon: " + epsilon + "}";
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user