123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348 |
- using OpenCVForUnity.CoreModule;
- using OpenCVForUnity.UtilsModule;
- using System;
- using System.Collections.Generic;
- using System.Runtime.InteropServices;
- namespace OpenCVForUnity.MlModule
- {
- // C++: class RTrees
- /**
- * The class implements the random forest predictor.
- *
- * SEE: REF: ml_intro_rtrees
- */
- public class RTrees : DTrees
- {
- protected override void Dispose(bool disposing)
- {
- try
- {
- if (disposing)
- {
- }
- if (IsEnabledDispose)
- {
- if (nativeObj != IntPtr.Zero)
- ml_RTrees_delete(nativeObj);
- nativeObj = IntPtr.Zero;
- }
- }
- finally
- {
- base.Dispose(disposing);
- }
- }
- protected internal RTrees(IntPtr addr) : base(addr) { }
- // internal usage only
- public static new RTrees __fromPtr__(IntPtr addr) { return new RTrees(addr); }
- //
- // C++: bool cv::ml::RTrees::getCalculateVarImportance()
- //
- /**
- * SEE: setCalculateVarImportance
- * return automatically generated
- */
- public bool getCalculateVarImportance()
- {
- ThrowIfDisposed();
- return ml_RTrees_getCalculateVarImportance_10(nativeObj);
- }
- //
- // C++: void cv::ml::RTrees::setCalculateVarImportance(bool val)
- //
- /**
- * getCalculateVarImportance SEE: getCalculateVarImportance
- * param val automatically generated
- */
- public void setCalculateVarImportance(bool val)
- {
- ThrowIfDisposed();
- ml_RTrees_setCalculateVarImportance_10(nativeObj, val);
- }
- //
- // C++: int cv::ml::RTrees::getActiveVarCount()
- //
- /**
- * SEE: setActiveVarCount
- * return automatically generated
- */
- public int getActiveVarCount()
- {
- ThrowIfDisposed();
- return ml_RTrees_getActiveVarCount_10(nativeObj);
- }
- //
- // C++: void cv::ml::RTrees::setActiveVarCount(int val)
- //
- /**
- * getActiveVarCount SEE: getActiveVarCount
- * param val automatically generated
- */
- public void setActiveVarCount(int val)
- {
- ThrowIfDisposed();
- ml_RTrees_setActiveVarCount_10(nativeObj, val);
- }
- //
- // C++: TermCriteria cv::ml::RTrees::getTermCriteria()
- //
- /**
- * SEE: setTermCriteria
- * return automatically generated
- */
- public TermCriteria getTermCriteria()
- {
- ThrowIfDisposed();
- double[] tmpArray = new double[3];
- ml_RTrees_getTermCriteria_10(nativeObj, tmpArray);
- TermCriteria retVal = new TermCriteria(tmpArray);
- return retVal;
- }
- //
- // C++: void cv::ml::RTrees::setTermCriteria(TermCriteria val)
- //
- /**
- * getTermCriteria SEE: getTermCriteria
- * param val automatically generated
- */
- public void setTermCriteria(TermCriteria val)
- {
- ThrowIfDisposed();
- ml_RTrees_setTermCriteria_10(nativeObj, val.type, val.maxCount, val.epsilon);
- }
- //
- // C++: Mat cv::ml::RTrees::getVarImportance()
- //
- /**
- * Returns the variable importance array.
- * The method returns the variable importance vector, computed at the training stage when
- * CalculateVarImportance is set to true. If this flag was set to false, the empty matrix is
- * returned.
- * return automatically generated
- */
- public Mat getVarImportance()
- {
- ThrowIfDisposed();
- return new Mat(DisposableObject.ThrowIfNullIntPtr(ml_RTrees_getVarImportance_10(nativeObj)));
- }
- //
- // C++: void cv::ml::RTrees::getVotes(Mat samples, Mat& results, int flags)
- //
- /**
- * Returns the result of each individual tree in the forest.
- * In case the model is a regression problem, the method will return each of the trees'
- * results for each of the sample cases. If the model is a classifier, it will return
- * a Mat with samples + 1 rows, where the first row gives the class number and the
- * following rows return the votes each class had for each sample.
- * param samples Array containing the samples for which votes will be calculated.
- * param results Array where the result of the calculation will be written.
- * param flags Flags for defining the type of RTrees.
- */
- public void getVotes(Mat samples, Mat results, int flags)
- {
- ThrowIfDisposed();
- if (samples != null) samples.ThrowIfDisposed();
- if (results != null) results.ThrowIfDisposed();
- ml_RTrees_getVotes_10(nativeObj, samples.nativeObj, results.nativeObj, flags);
- }
- //
- // C++: double cv::ml::RTrees::getOOBError()
- //
- /**
- * Returns the OOB error value, computed at the training stage when calcOOBError is set to true.
- * If this flag was set to false, 0 is returned. The OOB error is also scaled by sample weighting.
- * return automatically generated
- */
- public double getOOBError()
- {
- ThrowIfDisposed();
- return ml_RTrees_getOOBError_10(nativeObj);
- }
- //
- // C++: static Ptr_RTrees cv::ml::RTrees::create()
- //
- /**
- * Creates the empty model.
- * Use StatModel::train to train the model, StatModel::train to create and train the model,
- * Algorithm::load to load the pre-trained model.
- * return automatically generated
- */
- public static new RTrees create()
- {
- return RTrees.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(ml_RTrees_create_10()));
- }
- //
- // C++: static Ptr_RTrees cv::ml::RTrees::load(String filepath, String nodeName = String())
- //
- /**
- * Loads and creates a serialized RTree from a file
- *
- * Use RTree::save to serialize and store an RTree to disk.
- * Load the RTree from this file again, by calling this function with the path to the file.
- * Optionally specify the node for the file containing the classifier
- *
- * param filepath path to serialized RTree
- * param nodeName name of node containing the classifier
- * return automatically generated
- */
- public static new RTrees load(string filepath, string nodeName)
- {
- return RTrees.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(ml_RTrees_load_10(filepath, nodeName)));
- }
- /**
- * Loads and creates a serialized RTree from a file
- *
- * Use RTree::save to serialize and store an RTree to disk.
- * Load the RTree from this file again, by calling this function with the path to the file.
- * Optionally specify the node for the file containing the classifier
- *
- * param filepath path to serialized RTree
- * return automatically generated
- */
- public static new RTrees load(string filepath)
- {
- return RTrees.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(ml_RTrees_load_11(filepath)));
- }
- #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
- const string LIBNAME = "__Internal";
- #else
- const string LIBNAME = "opencvforunity";
- #endif
- // C++: bool cv::ml::RTrees::getCalculateVarImportance()
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool ml_RTrees_getCalculateVarImportance_10(IntPtr nativeObj);
- // C++: void cv::ml::RTrees::setCalculateVarImportance(bool val)
- [DllImport(LIBNAME)]
- private static extern void ml_RTrees_setCalculateVarImportance_10(IntPtr nativeObj, [MarshalAs(UnmanagedType.U1)] bool val);
- // C++: int cv::ml::RTrees::getActiveVarCount()
- [DllImport(LIBNAME)]
- private static extern int ml_RTrees_getActiveVarCount_10(IntPtr nativeObj);
- // C++: void cv::ml::RTrees::setActiveVarCount(int val)
- [DllImport(LIBNAME)]
- private static extern void ml_RTrees_setActiveVarCount_10(IntPtr nativeObj, int val);
- // C++: TermCriteria cv::ml::RTrees::getTermCriteria()
- [DllImport(LIBNAME)]
- private static extern void ml_RTrees_getTermCriteria_10(IntPtr nativeObj, double[] retVal);
- // C++: void cv::ml::RTrees::setTermCriteria(TermCriteria val)
- [DllImport(LIBNAME)]
- private static extern void ml_RTrees_setTermCriteria_10(IntPtr nativeObj, int val_type, int val_maxCount, double val_epsilon);
- // C++: Mat cv::ml::RTrees::getVarImportance()
- [DllImport(LIBNAME)]
- private static extern IntPtr ml_RTrees_getVarImportance_10(IntPtr nativeObj);
- // C++: void cv::ml::RTrees::getVotes(Mat samples, Mat& results, int flags)
- [DllImport(LIBNAME)]
- private static extern void ml_RTrees_getVotes_10(IntPtr nativeObj, IntPtr samples_nativeObj, IntPtr results_nativeObj, int flags);
- // C++: double cv::ml::RTrees::getOOBError()
- [DllImport(LIBNAME)]
- private static extern double ml_RTrees_getOOBError_10(IntPtr nativeObj);
- // C++: static Ptr_RTrees cv::ml::RTrees::create()
- [DllImport(LIBNAME)]
- private static extern IntPtr ml_RTrees_create_10();
- // C++: static Ptr_RTrees cv::ml::RTrees::load(String filepath, String nodeName = String())
- [DllImport(LIBNAME)]
- private static extern IntPtr ml_RTrees_load_10(string filepath, string nodeName);
- [DllImport(LIBNAME)]
- private static extern IntPtr ml_RTrees_load_11(string filepath);
- // native support for java finalize()
- [DllImport(LIBNAME)]
- private static extern void ml_RTrees_delete(IntPtr nativeObj);
- }
- }
|