FarnebackOpticalFlow.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454
  1. using OpenCVForUnity.CoreModule;
  2. using OpenCVForUnity.UtilsModule;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Runtime.InteropServices;
  6. namespace OpenCVForUnity.VideoModule
  7. {
  8. // C++: class FarnebackOpticalFlow
  9. /**
  10. * Class computing a dense optical flow using the Gunnar Farneback's algorithm.
  11. */
  12. public class FarnebackOpticalFlow : DenseOpticalFlow
  13. {
  14. protected override void Dispose(bool disposing)
  15. {
  16. try
  17. {
  18. if (disposing)
  19. {
  20. }
  21. if (IsEnabledDispose)
  22. {
  23. if (nativeObj != IntPtr.Zero)
  24. video_FarnebackOpticalFlow_delete(nativeObj);
  25. nativeObj = IntPtr.Zero;
  26. }
  27. }
  28. finally
  29. {
  30. base.Dispose(disposing);
  31. }
  32. }
  33. protected internal FarnebackOpticalFlow(IntPtr addr) : base(addr) { }
  34. // internal usage only
  35. public static new FarnebackOpticalFlow __fromPtr__(IntPtr addr) { return new FarnebackOpticalFlow(addr); }
  36. //
  37. // C++: int cv::FarnebackOpticalFlow::getNumLevels()
  38. //
  39. public int getNumLevels()
  40. {
  41. ThrowIfDisposed();
  42. return video_FarnebackOpticalFlow_getNumLevels_10(nativeObj);
  43. }
  44. //
  45. // C++: void cv::FarnebackOpticalFlow::setNumLevels(int numLevels)
  46. //
  47. public void setNumLevels(int numLevels)
  48. {
  49. ThrowIfDisposed();
  50. video_FarnebackOpticalFlow_setNumLevels_10(nativeObj, numLevels);
  51. }
  52. //
  53. // C++: double cv::FarnebackOpticalFlow::getPyrScale()
  54. //
  55. public double getPyrScale()
  56. {
  57. ThrowIfDisposed();
  58. return video_FarnebackOpticalFlow_getPyrScale_10(nativeObj);
  59. }
  60. //
  61. // C++: void cv::FarnebackOpticalFlow::setPyrScale(double pyrScale)
  62. //
  63. public void setPyrScale(double pyrScale)
  64. {
  65. ThrowIfDisposed();
  66. video_FarnebackOpticalFlow_setPyrScale_10(nativeObj, pyrScale);
  67. }
  68. //
  69. // C++: bool cv::FarnebackOpticalFlow::getFastPyramids()
  70. //
  71. public bool getFastPyramids()
  72. {
  73. ThrowIfDisposed();
  74. return video_FarnebackOpticalFlow_getFastPyramids_10(nativeObj);
  75. }
  76. //
  77. // C++: void cv::FarnebackOpticalFlow::setFastPyramids(bool fastPyramids)
  78. //
  79. public void setFastPyramids(bool fastPyramids)
  80. {
  81. ThrowIfDisposed();
  82. video_FarnebackOpticalFlow_setFastPyramids_10(nativeObj, fastPyramids);
  83. }
  84. //
  85. // C++: int cv::FarnebackOpticalFlow::getWinSize()
  86. //
  87. public int getWinSize()
  88. {
  89. ThrowIfDisposed();
  90. return video_FarnebackOpticalFlow_getWinSize_10(nativeObj);
  91. }
  92. //
  93. // C++: void cv::FarnebackOpticalFlow::setWinSize(int winSize)
  94. //
  95. public void setWinSize(int winSize)
  96. {
  97. ThrowIfDisposed();
  98. video_FarnebackOpticalFlow_setWinSize_10(nativeObj, winSize);
  99. }
  100. //
  101. // C++: int cv::FarnebackOpticalFlow::getNumIters()
  102. //
  103. public int getNumIters()
  104. {
  105. ThrowIfDisposed();
  106. return video_FarnebackOpticalFlow_getNumIters_10(nativeObj);
  107. }
  108. //
  109. // C++: void cv::FarnebackOpticalFlow::setNumIters(int numIters)
  110. //
  111. public void setNumIters(int numIters)
  112. {
  113. ThrowIfDisposed();
  114. video_FarnebackOpticalFlow_setNumIters_10(nativeObj, numIters);
  115. }
  116. //
  117. // C++: int cv::FarnebackOpticalFlow::getPolyN()
  118. //
  119. public int getPolyN()
  120. {
  121. ThrowIfDisposed();
  122. return video_FarnebackOpticalFlow_getPolyN_10(nativeObj);
  123. }
  124. //
  125. // C++: void cv::FarnebackOpticalFlow::setPolyN(int polyN)
  126. //
  127. public void setPolyN(int polyN)
  128. {
  129. ThrowIfDisposed();
  130. video_FarnebackOpticalFlow_setPolyN_10(nativeObj, polyN);
  131. }
  132. //
  133. // C++: double cv::FarnebackOpticalFlow::getPolySigma()
  134. //
  135. public double getPolySigma()
  136. {
  137. ThrowIfDisposed();
  138. return video_FarnebackOpticalFlow_getPolySigma_10(nativeObj);
  139. }
  140. //
  141. // C++: void cv::FarnebackOpticalFlow::setPolySigma(double polySigma)
  142. //
  143. public void setPolySigma(double polySigma)
  144. {
  145. ThrowIfDisposed();
  146. video_FarnebackOpticalFlow_setPolySigma_10(nativeObj, polySigma);
  147. }
  148. //
  149. // C++: int cv::FarnebackOpticalFlow::getFlags()
  150. //
  151. public int getFlags()
  152. {
  153. ThrowIfDisposed();
  154. return video_FarnebackOpticalFlow_getFlags_10(nativeObj);
  155. }
  156. //
  157. // C++: void cv::FarnebackOpticalFlow::setFlags(int flags)
  158. //
  159. public void setFlags(int flags)
  160. {
  161. ThrowIfDisposed();
  162. video_FarnebackOpticalFlow_setFlags_10(nativeObj, flags);
  163. }
  164. //
  165. // C++: static Ptr_FarnebackOpticalFlow cv::FarnebackOpticalFlow::create(int numLevels = 5, double pyrScale = 0.5, bool fastPyramids = false, int winSize = 13, int numIters = 10, int polyN = 5, double polySigma = 1.1, int flags = 0)
  166. //
  167. public static FarnebackOpticalFlow create(int numLevels, double pyrScale, bool fastPyramids, int winSize, int numIters, int polyN, double polySigma, int flags)
  168. {
  169. return FarnebackOpticalFlow.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(video_FarnebackOpticalFlow_create_10(numLevels, pyrScale, fastPyramids, winSize, numIters, polyN, polySigma, flags)));
  170. }
  171. public static FarnebackOpticalFlow create(int numLevels, double pyrScale, bool fastPyramids, int winSize, int numIters, int polyN, double polySigma)
  172. {
  173. return FarnebackOpticalFlow.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(video_FarnebackOpticalFlow_create_11(numLevels, pyrScale, fastPyramids, winSize, numIters, polyN, polySigma)));
  174. }
  175. public static FarnebackOpticalFlow create(int numLevels, double pyrScale, bool fastPyramids, int winSize, int numIters, int polyN)
  176. {
  177. return FarnebackOpticalFlow.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(video_FarnebackOpticalFlow_create_12(numLevels, pyrScale, fastPyramids, winSize, numIters, polyN)));
  178. }
  179. public static FarnebackOpticalFlow create(int numLevels, double pyrScale, bool fastPyramids, int winSize, int numIters)
  180. {
  181. return FarnebackOpticalFlow.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(video_FarnebackOpticalFlow_create_13(numLevels, pyrScale, fastPyramids, winSize, numIters)));
  182. }
  183. public static FarnebackOpticalFlow create(int numLevels, double pyrScale, bool fastPyramids, int winSize)
  184. {
  185. return FarnebackOpticalFlow.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(video_FarnebackOpticalFlow_create_14(numLevels, pyrScale, fastPyramids, winSize)));
  186. }
  187. public static FarnebackOpticalFlow create(int numLevels, double pyrScale, bool fastPyramids)
  188. {
  189. return FarnebackOpticalFlow.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(video_FarnebackOpticalFlow_create_15(numLevels, pyrScale, fastPyramids)));
  190. }
  191. public static FarnebackOpticalFlow create(int numLevels, double pyrScale)
  192. {
  193. return FarnebackOpticalFlow.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(video_FarnebackOpticalFlow_create_16(numLevels, pyrScale)));
  194. }
  195. public static FarnebackOpticalFlow create(int numLevels)
  196. {
  197. return FarnebackOpticalFlow.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(video_FarnebackOpticalFlow_create_17(numLevels)));
  198. }
  199. public static FarnebackOpticalFlow create()
  200. {
  201. return FarnebackOpticalFlow.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(video_FarnebackOpticalFlow_create_18()));
  202. }
  203. #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
  204. const string LIBNAME = "__Internal";
  205. #else
  206. const string LIBNAME = "opencvforunity";
  207. #endif
  208. // C++: int cv::FarnebackOpticalFlow::getNumLevels()
  209. [DllImport(LIBNAME)]
  210. private static extern int video_FarnebackOpticalFlow_getNumLevels_10(IntPtr nativeObj);
  211. // C++: void cv::FarnebackOpticalFlow::setNumLevels(int numLevels)
  212. [DllImport(LIBNAME)]
  213. private static extern void video_FarnebackOpticalFlow_setNumLevels_10(IntPtr nativeObj, int numLevels);
  214. // C++: double cv::FarnebackOpticalFlow::getPyrScale()
  215. [DllImport(LIBNAME)]
  216. private static extern double video_FarnebackOpticalFlow_getPyrScale_10(IntPtr nativeObj);
  217. // C++: void cv::FarnebackOpticalFlow::setPyrScale(double pyrScale)
  218. [DllImport(LIBNAME)]
  219. private static extern void video_FarnebackOpticalFlow_setPyrScale_10(IntPtr nativeObj, double pyrScale);
  220. // C++: bool cv::FarnebackOpticalFlow::getFastPyramids()
  221. [DllImport(LIBNAME)]
  222. [return: MarshalAs(UnmanagedType.U1)]
  223. private static extern bool video_FarnebackOpticalFlow_getFastPyramids_10(IntPtr nativeObj);
  224. // C++: void cv::FarnebackOpticalFlow::setFastPyramids(bool fastPyramids)
  225. [DllImport(LIBNAME)]
  226. private static extern void video_FarnebackOpticalFlow_setFastPyramids_10(IntPtr nativeObj, [MarshalAs(UnmanagedType.U1)] bool fastPyramids);
  227. // C++: int cv::FarnebackOpticalFlow::getWinSize()
  228. [DllImport(LIBNAME)]
  229. private static extern int video_FarnebackOpticalFlow_getWinSize_10(IntPtr nativeObj);
  230. // C++: void cv::FarnebackOpticalFlow::setWinSize(int winSize)
  231. [DllImport(LIBNAME)]
  232. private static extern void video_FarnebackOpticalFlow_setWinSize_10(IntPtr nativeObj, int winSize);
  233. // C++: int cv::FarnebackOpticalFlow::getNumIters()
  234. [DllImport(LIBNAME)]
  235. private static extern int video_FarnebackOpticalFlow_getNumIters_10(IntPtr nativeObj);
  236. // C++: void cv::FarnebackOpticalFlow::setNumIters(int numIters)
  237. [DllImport(LIBNAME)]
  238. private static extern void video_FarnebackOpticalFlow_setNumIters_10(IntPtr nativeObj, int numIters);
  239. // C++: int cv::FarnebackOpticalFlow::getPolyN()
  240. [DllImport(LIBNAME)]
  241. private static extern int video_FarnebackOpticalFlow_getPolyN_10(IntPtr nativeObj);
  242. // C++: void cv::FarnebackOpticalFlow::setPolyN(int polyN)
  243. [DllImport(LIBNAME)]
  244. private static extern void video_FarnebackOpticalFlow_setPolyN_10(IntPtr nativeObj, int polyN);
  245. // C++: double cv::FarnebackOpticalFlow::getPolySigma()
  246. [DllImport(LIBNAME)]
  247. private static extern double video_FarnebackOpticalFlow_getPolySigma_10(IntPtr nativeObj);
  248. // C++: void cv::FarnebackOpticalFlow::setPolySigma(double polySigma)
  249. [DllImport(LIBNAME)]
  250. private static extern void video_FarnebackOpticalFlow_setPolySigma_10(IntPtr nativeObj, double polySigma);
  251. // C++: int cv::FarnebackOpticalFlow::getFlags()
  252. [DllImport(LIBNAME)]
  253. private static extern int video_FarnebackOpticalFlow_getFlags_10(IntPtr nativeObj);
  254. // C++: void cv::FarnebackOpticalFlow::setFlags(int flags)
  255. [DllImport(LIBNAME)]
  256. private static extern void video_FarnebackOpticalFlow_setFlags_10(IntPtr nativeObj, int flags);
  257. // C++: static Ptr_FarnebackOpticalFlow cv::FarnebackOpticalFlow::create(int numLevels = 5, double pyrScale = 0.5, bool fastPyramids = false, int winSize = 13, int numIters = 10, int polyN = 5, double polySigma = 1.1, int flags = 0)
  258. [DllImport(LIBNAME)]
  259. private static extern IntPtr video_FarnebackOpticalFlow_create_10(int numLevels, double pyrScale, [MarshalAs(UnmanagedType.U1)] bool fastPyramids, int winSize, int numIters, int polyN, double polySigma, int flags);
  260. [DllImport(LIBNAME)]
  261. private static extern IntPtr video_FarnebackOpticalFlow_create_11(int numLevels, double pyrScale, [MarshalAs(UnmanagedType.U1)] bool fastPyramids, int winSize, int numIters, int polyN, double polySigma);
  262. [DllImport(LIBNAME)]
  263. private static extern IntPtr video_FarnebackOpticalFlow_create_12(int numLevels, double pyrScale, [MarshalAs(UnmanagedType.U1)] bool fastPyramids, int winSize, int numIters, int polyN);
  264. [DllImport(LIBNAME)]
  265. private static extern IntPtr video_FarnebackOpticalFlow_create_13(int numLevels, double pyrScale, [MarshalAs(UnmanagedType.U1)] bool fastPyramids, int winSize, int numIters);
  266. [DllImport(LIBNAME)]
  267. private static extern IntPtr video_FarnebackOpticalFlow_create_14(int numLevels, double pyrScale, [MarshalAs(UnmanagedType.U1)] bool fastPyramids, int winSize);
  268. [DllImport(LIBNAME)]
  269. private static extern IntPtr video_FarnebackOpticalFlow_create_15(int numLevels, double pyrScale, [MarshalAs(UnmanagedType.U1)] bool fastPyramids);
  270. [DllImport(LIBNAME)]
  271. private static extern IntPtr video_FarnebackOpticalFlow_create_16(int numLevels, double pyrScale);
  272. [DllImport(LIBNAME)]
  273. private static extern IntPtr video_FarnebackOpticalFlow_create_17(int numLevels);
  274. [DllImport(LIBNAME)]
  275. private static extern IntPtr video_FarnebackOpticalFlow_create_18();
  276. // native support for java finalize()
  277. [DllImport(LIBNAME)]
  278. private static extern void video_FarnebackOpticalFlow_delete(IntPtr nativeObj);
  279. }
  280. }