123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- using OpenCVForUnity.CoreModule;
- using OpenCVForUnity.UtilsModule;
- using System;
- using System.Collections.Generic;
- using System.Runtime.InteropServices;
- namespace OpenCVForUnity.Features2dModule
- {
- // C++: class AffineFeature
- /**
- * Class for implementing the wrapper which makes detectors and extractors to be affine invariant,
- * described as ASIFT in CITE: YM11 .
- */
- public class AffineFeature : Feature2D
- {
- protected override void Dispose(bool disposing)
- {
- try
- {
- if (disposing)
- {
- }
- if (IsEnabledDispose)
- {
- if (nativeObj != IntPtr.Zero)
- features2d_AffineFeature_delete(nativeObj);
- nativeObj = IntPtr.Zero;
- }
- }
- finally
- {
- base.Dispose(disposing);
- }
- }
- protected internal AffineFeature(IntPtr addr) : base(addr) { }
- // internal usage only
- public static new AffineFeature __fromPtr__(IntPtr addr) { return new AffineFeature(addr); }
- //
- // C++: static Ptr_AffineFeature cv::AffineFeature::create(Ptr_Feature2D backend, int maxTilt = 5, int minTilt = 0, float tiltStep = 1.4142135623730951f, float rotateStepBase = 72)
- //
- /**
- * param backend The detector/extractor you want to use as backend.
- * param maxTilt The highest power index of tilt factor. 5 is used in the paper as tilt sampling range n.
- * param minTilt The lowest power index of tilt factor. 0 is used in the paper.
- * param tiltStep Tilt sampling step \(\delta_t\) in Algorithm 1 in the paper.
- * param rotateStepBase Rotation sampling step factor b in Algorithm 1 in the paper.
- * return automatically generated
- */
- public static AffineFeature create(Feature2D backend, int maxTilt, int minTilt, float tiltStep, float rotateStepBase)
- {
- if (backend != null) backend.ThrowIfDisposed();
- return AffineFeature.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_AffineFeature_create_10(backend.getNativeObjAddr(), maxTilt, minTilt, tiltStep, rotateStepBase)));
- }
- /**
- * param backend The detector/extractor you want to use as backend.
- * param maxTilt The highest power index of tilt factor. 5 is used in the paper as tilt sampling range n.
- * param minTilt The lowest power index of tilt factor. 0 is used in the paper.
- * param tiltStep Tilt sampling step \(\delta_t\) in Algorithm 1 in the paper.
- * return automatically generated
- */
- public static AffineFeature create(Feature2D backend, int maxTilt, int minTilt, float tiltStep)
- {
- if (backend != null) backend.ThrowIfDisposed();
- return AffineFeature.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_AffineFeature_create_11(backend.getNativeObjAddr(), maxTilt, minTilt, tiltStep)));
- }
- /**
- * param backend The detector/extractor you want to use as backend.
- * param maxTilt The highest power index of tilt factor. 5 is used in the paper as tilt sampling range n.
- * param minTilt The lowest power index of tilt factor. 0 is used in the paper.
- * return automatically generated
- */
- public static AffineFeature create(Feature2D backend, int maxTilt, int minTilt)
- {
- if (backend != null) backend.ThrowIfDisposed();
- return AffineFeature.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_AffineFeature_create_12(backend.getNativeObjAddr(), maxTilt, minTilt)));
- }
- /**
- * param backend The detector/extractor you want to use as backend.
- * param maxTilt The highest power index of tilt factor. 5 is used in the paper as tilt sampling range n.
- * return automatically generated
- */
- public static AffineFeature create(Feature2D backend, int maxTilt)
- {
- if (backend != null) backend.ThrowIfDisposed();
- return AffineFeature.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_AffineFeature_create_13(backend.getNativeObjAddr(), maxTilt)));
- }
- /**
- * param backend The detector/extractor you want to use as backend.
- * return automatically generated
- */
- public static AffineFeature create(Feature2D backend)
- {
- if (backend != null) backend.ThrowIfDisposed();
- return AffineFeature.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_AffineFeature_create_14(backend.getNativeObjAddr())));
- }
- //
- // C++: void cv::AffineFeature::setViewParams(vector_float tilts, vector_float rolls)
- //
- public void setViewParams(MatOfFloat tilts, MatOfFloat rolls)
- {
- ThrowIfDisposed();
- if (tilts != null) tilts.ThrowIfDisposed();
- if (rolls != null) rolls.ThrowIfDisposed();
- Mat tilts_mat = tilts;
- Mat rolls_mat = rolls;
- features2d_AffineFeature_setViewParams_10(nativeObj, tilts_mat.nativeObj, rolls_mat.nativeObj);
- }
- //
- // C++: void cv::AffineFeature::getViewParams(vector_float tilts, vector_float rolls)
- //
- public void getViewParams(MatOfFloat tilts, MatOfFloat rolls)
- {
- ThrowIfDisposed();
- if (tilts != null) tilts.ThrowIfDisposed();
- if (rolls != null) rolls.ThrowIfDisposed();
- Mat tilts_mat = tilts;
- Mat rolls_mat = rolls;
- features2d_AffineFeature_getViewParams_10(nativeObj, tilts_mat.nativeObj, rolls_mat.nativeObj);
- }
- //
- // C++: String cv::AffineFeature::getDefaultName()
- //
- public override string getDefaultName()
- {
- ThrowIfDisposed();
- string retVal = Marshal.PtrToStringAnsi(DisposableObject.ThrowIfNullIntPtr(features2d_AffineFeature_getDefaultName_10(nativeObj)));
- return retVal;
- }
- #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
- const string LIBNAME = "__Internal";
- #else
- const string LIBNAME = "opencvforunity";
- #endif
- // C++: static Ptr_AffineFeature cv::AffineFeature::create(Ptr_Feature2D backend, int maxTilt = 5, int minTilt = 0, float tiltStep = 1.4142135623730951f, float rotateStepBase = 72)
- [DllImport(LIBNAME)]
- private static extern IntPtr features2d_AffineFeature_create_10(IntPtr backend_nativeObj, int maxTilt, int minTilt, float tiltStep, float rotateStepBase);
- [DllImport(LIBNAME)]
- private static extern IntPtr features2d_AffineFeature_create_11(IntPtr backend_nativeObj, int maxTilt, int minTilt, float tiltStep);
- [DllImport(LIBNAME)]
- private static extern IntPtr features2d_AffineFeature_create_12(IntPtr backend_nativeObj, int maxTilt, int minTilt);
- [DllImport(LIBNAME)]
- private static extern IntPtr features2d_AffineFeature_create_13(IntPtr backend_nativeObj, int maxTilt);
- [DllImport(LIBNAME)]
- private static extern IntPtr features2d_AffineFeature_create_14(IntPtr backend_nativeObj);
- // C++: void cv::AffineFeature::setViewParams(vector_float tilts, vector_float rolls)
- [DllImport(LIBNAME)]
- private static extern void features2d_AffineFeature_setViewParams_10(IntPtr nativeObj, IntPtr tilts_mat_nativeObj, IntPtr rolls_mat_nativeObj);
- // C++: void cv::AffineFeature::getViewParams(vector_float tilts, vector_float rolls)
- [DllImport(LIBNAME)]
- private static extern void features2d_AffineFeature_getViewParams_10(IntPtr nativeObj, IntPtr tilts_mat_nativeObj, IntPtr rolls_mat_nativeObj);
- // C++: String cv::AffineFeature::getDefaultName()
- [DllImport(LIBNAME)]
- private static extern IntPtr features2d_AffineFeature_getDefaultName_10(IntPtr nativeObj);
- // native support for java finalize()
- [DllImport(LIBNAME)]
- private static extern void features2d_AffineFeature_delete(IntPtr nativeObj);
- }
- }
|