123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390 |
- using OpenCVForUnity.CoreModule;
- using OpenCVForUnity.UtilsModule;
- using System;
- using System.Collections.Generic;
- using System.Runtime.InteropServices;
- namespace OpenCVForUnity.VideoModule
- {
- // C++: class VariationalRefinement
- /**
- * Variational optical flow refinement
- *
- * This class implements variational refinement of the input flow field, i.e.
- * it uses input flow to initialize the minimization of the following functional:
- * \(E(U) = \int_{\Omega} \delta \Psi(E_I) + \gamma \Psi(E_G) + \alpha \Psi(E_S) \),
- * where \(E_I,E_G,E_S\) are color constancy, gradient constancy and smoothness terms
- * respectively. \(\Psi(s^2)=\sqrt{s^2+\epsilon^2}\) is a robust penalizer to limit the
- * influence of outliers. A complete formulation and a description of the minimization
- * procedure can be found in CITE: Brox2004
- */
- public class VariationalRefinement : DenseOpticalFlow
- {
- protected override void Dispose(bool disposing)
- {
- try
- {
- if (disposing)
- {
- }
- if (IsEnabledDispose)
- {
- if (nativeObj != IntPtr.Zero)
- video_VariationalRefinement_delete(nativeObj);
- nativeObj = IntPtr.Zero;
- }
- }
- finally
- {
- base.Dispose(disposing);
- }
- }
- protected internal VariationalRefinement(IntPtr addr) : base(addr) { }
- // internal usage only
- public static new VariationalRefinement __fromPtr__(IntPtr addr) { return new VariationalRefinement(addr); }
- //
- // C++: void cv::VariationalRefinement::calcUV(Mat I0, Mat I1, Mat& flow_u, Mat& flow_v)
- //
- /**
- * REF: calc function overload to handle separate horizontal (u) and vertical (v) flow components
- * (to avoid extra splits/merges)
- * param I0 automatically generated
- * param I1 automatically generated
- * param flow_u automatically generated
- * param flow_v automatically generated
- */
- public void calcUV(Mat I0, Mat I1, Mat flow_u, Mat flow_v)
- {
- ThrowIfDisposed();
- if (I0 != null) I0.ThrowIfDisposed();
- if (I1 != null) I1.ThrowIfDisposed();
- if (flow_u != null) flow_u.ThrowIfDisposed();
- if (flow_v != null) flow_v.ThrowIfDisposed();
- video_VariationalRefinement_calcUV_10(nativeObj, I0.nativeObj, I1.nativeObj, flow_u.nativeObj, flow_v.nativeObj);
- }
- //
- // C++: int cv::VariationalRefinement::getFixedPointIterations()
- //
- /**
- * Number of outer (fixed-point) iterations in the minimization procedure.
- * SEE: setFixedPointIterations
- * return automatically generated
- */
- public int getFixedPointIterations()
- {
- ThrowIfDisposed();
- return video_VariationalRefinement_getFixedPointIterations_10(nativeObj);
- }
- //
- // C++: void cv::VariationalRefinement::setFixedPointIterations(int val)
- //
- /**
- * getFixedPointIterations SEE: getFixedPointIterations
- * param val automatically generated
- */
- public void setFixedPointIterations(int val)
- {
- ThrowIfDisposed();
- video_VariationalRefinement_setFixedPointIterations_10(nativeObj, val);
- }
- //
- // C++: int cv::VariationalRefinement::getSorIterations()
- //
- /**
- * Number of inner successive over-relaxation (SOR) iterations
- * in the minimization procedure to solve the respective linear system.
- * SEE: setSorIterations
- * return automatically generated
- */
- public int getSorIterations()
- {
- ThrowIfDisposed();
- return video_VariationalRefinement_getSorIterations_10(nativeObj);
- }
- //
- // C++: void cv::VariationalRefinement::setSorIterations(int val)
- //
- /**
- * getSorIterations SEE: getSorIterations
- * param val automatically generated
- */
- public void setSorIterations(int val)
- {
- ThrowIfDisposed();
- video_VariationalRefinement_setSorIterations_10(nativeObj, val);
- }
- //
- // C++: float cv::VariationalRefinement::getOmega()
- //
- /**
- * Relaxation factor in SOR
- * SEE: setOmega
- * return automatically generated
- */
- public float getOmega()
- {
- ThrowIfDisposed();
- return video_VariationalRefinement_getOmega_10(nativeObj);
- }
- //
- // C++: void cv::VariationalRefinement::setOmega(float val)
- //
- /**
- * getOmega SEE: getOmega
- * param val automatically generated
- */
- public void setOmega(float val)
- {
- ThrowIfDisposed();
- video_VariationalRefinement_setOmega_10(nativeObj, val);
- }
- //
- // C++: float cv::VariationalRefinement::getAlpha()
- //
- /**
- * Weight of the smoothness term
- * SEE: setAlpha
- * return automatically generated
- */
- public float getAlpha()
- {
- ThrowIfDisposed();
- return video_VariationalRefinement_getAlpha_10(nativeObj);
- }
- //
- // C++: void cv::VariationalRefinement::setAlpha(float val)
- //
- /**
- * getAlpha SEE: getAlpha
- * param val automatically generated
- */
- public void setAlpha(float val)
- {
- ThrowIfDisposed();
- video_VariationalRefinement_setAlpha_10(nativeObj, val);
- }
- //
- // C++: float cv::VariationalRefinement::getDelta()
- //
- /**
- * Weight of the color constancy term
- * SEE: setDelta
- * return automatically generated
- */
- public float getDelta()
- {
- ThrowIfDisposed();
- return video_VariationalRefinement_getDelta_10(nativeObj);
- }
- //
- // C++: void cv::VariationalRefinement::setDelta(float val)
- //
- /**
- * getDelta SEE: getDelta
- * param val automatically generated
- */
- public void setDelta(float val)
- {
- ThrowIfDisposed();
- video_VariationalRefinement_setDelta_10(nativeObj, val);
- }
- //
- // C++: float cv::VariationalRefinement::getGamma()
- //
- /**
- * Weight of the gradient constancy term
- * SEE: setGamma
- * return automatically generated
- */
- public float getGamma()
- {
- ThrowIfDisposed();
- return video_VariationalRefinement_getGamma_10(nativeObj);
- }
- //
- // C++: void cv::VariationalRefinement::setGamma(float val)
- //
- /**
- * getGamma SEE: getGamma
- * param val automatically generated
- */
- public void setGamma(float val)
- {
- ThrowIfDisposed();
- video_VariationalRefinement_setGamma_10(nativeObj, val);
- }
- //
- // C++: static Ptr_VariationalRefinement cv::VariationalRefinement::create()
- //
- /**
- * Creates an instance of VariationalRefinement
- * return automatically generated
- */
- public static VariationalRefinement create()
- {
- return VariationalRefinement.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(video_VariationalRefinement_create_10()));
- }
- #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
- const string LIBNAME = "__Internal";
- #else
- const string LIBNAME = "opencvforunity";
- #endif
- // C++: void cv::VariationalRefinement::calcUV(Mat I0, Mat I1, Mat& flow_u, Mat& flow_v)
- [DllImport(LIBNAME)]
- private static extern void video_VariationalRefinement_calcUV_10(IntPtr nativeObj, IntPtr I0_nativeObj, IntPtr I1_nativeObj, IntPtr flow_u_nativeObj, IntPtr flow_v_nativeObj);
- // C++: int cv::VariationalRefinement::getFixedPointIterations()
- [DllImport(LIBNAME)]
- private static extern int video_VariationalRefinement_getFixedPointIterations_10(IntPtr nativeObj);
- // C++: void cv::VariationalRefinement::setFixedPointIterations(int val)
- [DllImport(LIBNAME)]
- private static extern void video_VariationalRefinement_setFixedPointIterations_10(IntPtr nativeObj, int val);
- // C++: int cv::VariationalRefinement::getSorIterations()
- [DllImport(LIBNAME)]
- private static extern int video_VariationalRefinement_getSorIterations_10(IntPtr nativeObj);
- // C++: void cv::VariationalRefinement::setSorIterations(int val)
- [DllImport(LIBNAME)]
- private static extern void video_VariationalRefinement_setSorIterations_10(IntPtr nativeObj, int val);
- // C++: float cv::VariationalRefinement::getOmega()
- [DllImport(LIBNAME)]
- private static extern float video_VariationalRefinement_getOmega_10(IntPtr nativeObj);
- // C++: void cv::VariationalRefinement::setOmega(float val)
- [DllImport(LIBNAME)]
- private static extern void video_VariationalRefinement_setOmega_10(IntPtr nativeObj, float val);
- // C++: float cv::VariationalRefinement::getAlpha()
- [DllImport(LIBNAME)]
- private static extern float video_VariationalRefinement_getAlpha_10(IntPtr nativeObj);
- // C++: void cv::VariationalRefinement::setAlpha(float val)
- [DllImport(LIBNAME)]
- private static extern void video_VariationalRefinement_setAlpha_10(IntPtr nativeObj, float val);
- // C++: float cv::VariationalRefinement::getDelta()
- [DllImport(LIBNAME)]
- private static extern float video_VariationalRefinement_getDelta_10(IntPtr nativeObj);
- // C++: void cv::VariationalRefinement::setDelta(float val)
- [DllImport(LIBNAME)]
- private static extern void video_VariationalRefinement_setDelta_10(IntPtr nativeObj, float val);
- // C++: float cv::VariationalRefinement::getGamma()
- [DllImport(LIBNAME)]
- private static extern float video_VariationalRefinement_getGamma_10(IntPtr nativeObj);
- // C++: void cv::VariationalRefinement::setGamma(float val)
- [DllImport(LIBNAME)]
- private static extern void video_VariationalRefinement_setGamma_10(IntPtr nativeObj, float val);
- // C++: static Ptr_VariationalRefinement cv::VariationalRefinement::create()
- [DllImport(LIBNAME)]
- private static extern IntPtr video_VariationalRefinement_create_10();
- // native support for java finalize()
- [DllImport(LIBNAME)]
- private static extern void video_VariationalRefinement_delete(IntPtr nativeObj);
- }
- }
|