499 lines
15 KiB
C#
Executable File
499 lines
15 KiB
C#
Executable File
|
|
using OpenCVForUnity.CoreModule;
|
|
using OpenCVForUnity.UtilsModule;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace OpenCVForUnity.MlModule
|
|
{
|
|
|
|
// C++: class SVMSGD
|
|
//javadoc: SVMSGD
|
|
|
|
public class SVMSGD : StatModel
|
|
{
|
|
|
|
protected override void Dispose (bool disposing)
|
|
{
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
try {
|
|
if (disposing) {
|
|
}
|
|
if (IsEnabledDispose) {
|
|
if (nativeObj != IntPtr.Zero)
|
|
ml_SVMSGD_delete(nativeObj);
|
|
nativeObj = IntPtr.Zero;
|
|
}
|
|
} finally {
|
|
base.Dispose (disposing);
|
|
}
|
|
#else
|
|
return;
|
|
#endif
|
|
}
|
|
|
|
protected internal SVMSGD (IntPtr addr) : base (addr) { }
|
|
|
|
// internal usage only
|
|
public static new SVMSGD __fromPtr__ (IntPtr addr) { return new SVMSGD (addr); }
|
|
|
|
// C++: enum SvmsgdType
|
|
public const int SGD = 0;
|
|
public const int ASGD = 1;
|
|
// C++: enum MarginType
|
|
public const int SOFT_MARGIN = 0;
|
|
public const int HARD_MARGIN = 1;
|
|
//
|
|
// C++: Mat cv::ml::SVMSGD::getWeights()
|
|
//
|
|
|
|
//javadoc: SVMSGD::getWeights()
|
|
public Mat getWeights ()
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
Mat retVal = new Mat(ml_SVMSGD_getWeights_10(nativeObj));
|
|
|
|
return retVal;
|
|
#else
|
|
return null;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: static Ptr_SVMSGD cv::ml::SVMSGD::create()
|
|
//
|
|
|
|
//javadoc: SVMSGD::create()
|
|
public static SVMSGD create ()
|
|
{
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
SVMSGD retVal = SVMSGD.__fromPtr__(ml_SVMSGD_create_10());
|
|
|
|
return retVal;
|
|
#else
|
|
return null;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: static Ptr_SVMSGD cv::ml::SVMSGD::load(String filepath, String nodeName = String())
|
|
//
|
|
|
|
//javadoc: SVMSGD::load(filepath, nodeName)
|
|
public static SVMSGD load (string filepath, string nodeName)
|
|
{
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
SVMSGD retVal = SVMSGD.__fromPtr__(ml_SVMSGD_load_10(filepath, nodeName));
|
|
|
|
return retVal;
|
|
#else
|
|
return null;
|
|
#endif
|
|
}
|
|
|
|
//javadoc: SVMSGD::load(filepath)
|
|
public static SVMSGD load (string filepath)
|
|
{
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
SVMSGD retVal = SVMSGD.__fromPtr__(ml_SVMSGD_load_11(filepath));
|
|
|
|
return retVal;
|
|
#else
|
|
return null;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: TermCriteria cv::ml::SVMSGD::getTermCriteria()
|
|
//
|
|
|
|
//javadoc: SVMSGD::getTermCriteria()
|
|
public TermCriteria getTermCriteria ()
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
double[] tmpArray = new double[3];
|
|
ml_SVMSGD_getTermCriteria_10(nativeObj, tmpArray);
|
|
TermCriteria retVal = new TermCriteria (tmpArray);
|
|
|
|
return retVal;
|
|
#else
|
|
return null;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: float cv::ml::SVMSGD::getInitialStepSize()
|
|
//
|
|
|
|
//javadoc: SVMSGD::getInitialStepSize()
|
|
public float getInitialStepSize ()
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
float retVal = ml_SVMSGD_getInitialStepSize_10(nativeObj);
|
|
|
|
return retVal;
|
|
#else
|
|
return -1;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: float cv::ml::SVMSGD::getMarginRegularization()
|
|
//
|
|
|
|
//javadoc: SVMSGD::getMarginRegularization()
|
|
public float getMarginRegularization ()
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
float retVal = ml_SVMSGD_getMarginRegularization_10(nativeObj);
|
|
|
|
return retVal;
|
|
#else
|
|
return -1;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: float cv::ml::SVMSGD::getShift()
|
|
//
|
|
|
|
//javadoc: SVMSGD::getShift()
|
|
public float getShift ()
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
float retVal = ml_SVMSGD_getShift_10(nativeObj);
|
|
|
|
return retVal;
|
|
#else
|
|
return -1;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: float cv::ml::SVMSGD::getStepDecreasingPower()
|
|
//
|
|
|
|
//javadoc: SVMSGD::getStepDecreasingPower()
|
|
public float getStepDecreasingPower ()
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
float retVal = ml_SVMSGD_getStepDecreasingPower_10(nativeObj);
|
|
|
|
return retVal;
|
|
#else
|
|
return -1;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: int cv::ml::SVMSGD::getMarginType()
|
|
//
|
|
|
|
//javadoc: SVMSGD::getMarginType()
|
|
public int getMarginType ()
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
int retVal = ml_SVMSGD_getMarginType_10(nativeObj);
|
|
|
|
return retVal;
|
|
#else
|
|
return -1;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: int cv::ml::SVMSGD::getSvmsgdType()
|
|
//
|
|
|
|
//javadoc: SVMSGD::getSvmsgdType()
|
|
public int getSvmsgdType ()
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
int retVal = ml_SVMSGD_getSvmsgdType_10(nativeObj);
|
|
|
|
return retVal;
|
|
#else
|
|
return -1;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: void cv::ml::SVMSGD::setInitialStepSize(float InitialStepSize)
|
|
//
|
|
|
|
//javadoc: SVMSGD::setInitialStepSize(InitialStepSize)
|
|
public void setInitialStepSize (float InitialStepSize)
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
ml_SVMSGD_setInitialStepSize_10(nativeObj, InitialStepSize);
|
|
|
|
return;
|
|
#else
|
|
return;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: void cv::ml::SVMSGD::setMarginRegularization(float marginRegularization)
|
|
//
|
|
|
|
//javadoc: SVMSGD::setMarginRegularization(marginRegularization)
|
|
public void setMarginRegularization (float marginRegularization)
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
ml_SVMSGD_setMarginRegularization_10(nativeObj, marginRegularization);
|
|
|
|
return;
|
|
#else
|
|
return;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: void cv::ml::SVMSGD::setMarginType(int marginType)
|
|
//
|
|
|
|
//javadoc: SVMSGD::setMarginType(marginType)
|
|
public void setMarginType (int marginType)
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
ml_SVMSGD_setMarginType_10(nativeObj, marginType);
|
|
|
|
return;
|
|
#else
|
|
return;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: void cv::ml::SVMSGD::setOptimalParameters(int svmsgdType = SVMSGD::ASGD, int marginType = SVMSGD::SOFT_MARGIN)
|
|
//
|
|
|
|
//javadoc: SVMSGD::setOptimalParameters(svmsgdType, marginType)
|
|
public void setOptimalParameters (int svmsgdType, int marginType)
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
ml_SVMSGD_setOptimalParameters_10(nativeObj, svmsgdType, marginType);
|
|
|
|
return;
|
|
#else
|
|
return;
|
|
#endif
|
|
}
|
|
|
|
//javadoc: SVMSGD::setOptimalParameters(svmsgdType)
|
|
public void setOptimalParameters (int svmsgdType)
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
ml_SVMSGD_setOptimalParameters_11(nativeObj, svmsgdType);
|
|
|
|
return;
|
|
#else
|
|
return;
|
|
#endif
|
|
}
|
|
|
|
//javadoc: SVMSGD::setOptimalParameters()
|
|
public void setOptimalParameters ()
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
ml_SVMSGD_setOptimalParameters_12(nativeObj);
|
|
|
|
return;
|
|
#else
|
|
return;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: void cv::ml::SVMSGD::setStepDecreasingPower(float stepDecreasingPower)
|
|
//
|
|
|
|
//javadoc: SVMSGD::setStepDecreasingPower(stepDecreasingPower)
|
|
public void setStepDecreasingPower (float stepDecreasingPower)
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
ml_SVMSGD_setStepDecreasingPower_10(nativeObj, stepDecreasingPower);
|
|
|
|
return;
|
|
#else
|
|
return;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: void cv::ml::SVMSGD::setSvmsgdType(int svmsgdType)
|
|
//
|
|
|
|
//javadoc: SVMSGD::setSvmsgdType(svmsgdType)
|
|
public void setSvmsgdType (int svmsgdType)
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
ml_SVMSGD_setSvmsgdType_10(nativeObj, svmsgdType);
|
|
|
|
return;
|
|
#else
|
|
return;
|
|
#endif
|
|
}
|
|
|
|
|
|
//
|
|
// C++: void cv::ml::SVMSGD::setTermCriteria(TermCriteria val)
|
|
//
|
|
|
|
//javadoc: SVMSGD::setTermCriteria(val)
|
|
public void setTermCriteria (TermCriteria val)
|
|
{
|
|
ThrowIfDisposed ();
|
|
#if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
|
|
|
|
ml_SVMSGD_setTermCriteria_10(nativeObj, val.type, val.maxCount, val.epsilon);
|
|
|
|
return;
|
|
#else
|
|
return;
|
|
#endif
|
|
}
|
|
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
const string LIBNAME = "__Internal";
|
|
#else
|
|
const string LIBNAME = "opencvforunity";
|
|
#endif
|
|
|
|
|
|
|
|
// C++: Mat cv::ml::SVMSGD::getWeights()
|
|
[DllImport (LIBNAME)]
|
|
private static extern IntPtr ml_SVMSGD_getWeights_10 (IntPtr nativeObj);
|
|
|
|
// C++: static Ptr_SVMSGD cv::ml::SVMSGD::create()
|
|
[DllImport (LIBNAME)]
|
|
private static extern IntPtr ml_SVMSGD_create_10 ();
|
|
|
|
// C++: static Ptr_SVMSGD cv::ml::SVMSGD::load(String filepath, String nodeName = String())
|
|
[DllImport (LIBNAME)]
|
|
private static extern IntPtr ml_SVMSGD_load_10 (string filepath, string nodeName);
|
|
[DllImport (LIBNAME)]
|
|
private static extern IntPtr ml_SVMSGD_load_11 (string filepath);
|
|
|
|
// C++: TermCriteria cv::ml::SVMSGD::getTermCriteria()
|
|
[DllImport (LIBNAME)]
|
|
private static extern void ml_SVMSGD_getTermCriteria_10 (IntPtr nativeObj, double[] retVal);
|
|
|
|
// C++: float cv::ml::SVMSGD::getInitialStepSize()
|
|
[DllImport (LIBNAME)]
|
|
private static extern float ml_SVMSGD_getInitialStepSize_10 (IntPtr nativeObj);
|
|
|
|
// C++: float cv::ml::SVMSGD::getMarginRegularization()
|
|
[DllImport (LIBNAME)]
|
|
private static extern float ml_SVMSGD_getMarginRegularization_10 (IntPtr nativeObj);
|
|
|
|
// C++: float cv::ml::SVMSGD::getShift()
|
|
[DllImport (LIBNAME)]
|
|
private static extern float ml_SVMSGD_getShift_10 (IntPtr nativeObj);
|
|
|
|
// C++: float cv::ml::SVMSGD::getStepDecreasingPower()
|
|
[DllImport (LIBNAME)]
|
|
private static extern float ml_SVMSGD_getStepDecreasingPower_10 (IntPtr nativeObj);
|
|
|
|
// C++: int cv::ml::SVMSGD::getMarginType()
|
|
[DllImport (LIBNAME)]
|
|
private static extern int ml_SVMSGD_getMarginType_10 (IntPtr nativeObj);
|
|
|
|
// C++: int cv::ml::SVMSGD::getSvmsgdType()
|
|
[DllImport (LIBNAME)]
|
|
private static extern int ml_SVMSGD_getSvmsgdType_10 (IntPtr nativeObj);
|
|
|
|
// C++: void cv::ml::SVMSGD::setInitialStepSize(float InitialStepSize)
|
|
[DllImport (LIBNAME)]
|
|
private static extern void ml_SVMSGD_setInitialStepSize_10 (IntPtr nativeObj, float InitialStepSize);
|
|
|
|
// C++: void cv::ml::SVMSGD::setMarginRegularization(float marginRegularization)
|
|
[DllImport (LIBNAME)]
|
|
private static extern void ml_SVMSGD_setMarginRegularization_10 (IntPtr nativeObj, float marginRegularization);
|
|
|
|
// C++: void cv::ml::SVMSGD::setMarginType(int marginType)
|
|
[DllImport (LIBNAME)]
|
|
private static extern void ml_SVMSGD_setMarginType_10 (IntPtr nativeObj, int marginType);
|
|
|
|
// C++: void cv::ml::SVMSGD::setOptimalParameters(int svmsgdType = SVMSGD::ASGD, int marginType = SVMSGD::SOFT_MARGIN)
|
|
[DllImport (LIBNAME)]
|
|
private static extern void ml_SVMSGD_setOptimalParameters_10 (IntPtr nativeObj, int svmsgdType, int marginType);
|
|
[DllImport (LIBNAME)]
|
|
private static extern void ml_SVMSGD_setOptimalParameters_11 (IntPtr nativeObj, int svmsgdType);
|
|
[DllImport (LIBNAME)]
|
|
private static extern void ml_SVMSGD_setOptimalParameters_12 (IntPtr nativeObj);
|
|
|
|
// C++: void cv::ml::SVMSGD::setStepDecreasingPower(float stepDecreasingPower)
|
|
[DllImport (LIBNAME)]
|
|
private static extern void ml_SVMSGD_setStepDecreasingPower_10 (IntPtr nativeObj, float stepDecreasingPower);
|
|
|
|
// C++: void cv::ml::SVMSGD::setSvmsgdType(int svmsgdType)
|
|
[DllImport (LIBNAME)]
|
|
private static extern void ml_SVMSGD_setSvmsgdType_10 (IntPtr nativeObj, int svmsgdType);
|
|
|
|
// C++: void cv::ml::SVMSGD::setTermCriteria(TermCriteria val)
|
|
[DllImport (LIBNAME)]
|
|
private static extern void ml_SVMSGD_setTermCriteria_10 (IntPtr nativeObj, int val_type, int val_maxCount, double val_epsilon);
|
|
|
|
// native support for java finalize()
|
|
[DllImport (LIBNAME)]
|
|
private static extern void ml_SVMSGD_delete (IntPtr nativeObj);
|
|
|
|
}
|
|
}
|