BackgroundSubtractorMOG2.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628
  1. 
  2. using OpenCVForUnity.CoreModule;
  3. using OpenCVForUnity.UtilsModule;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Runtime.InteropServices;
  7. namespace OpenCVForUnity.VideoModule {
  8. // C++: class BackgroundSubtractorMOG2
  9. //javadoc: BackgroundSubtractorMOG2
  10. public class BackgroundSubtractorMOG2 : BackgroundSubtractor {
  11. protected override void Dispose(bool disposing) {
  12. #if (UNITY_ANDROID && !UNITY_EDITOR)
  13. try {
  14. if (disposing) {
  15. }
  16. if (IsEnabledDispose) {
  17. if (nativeObj != IntPtr.Zero)
  18. video_BackgroundSubtractorMOG2_delete(nativeObj);
  19. nativeObj = IntPtr.Zero;
  20. }
  21. } finally {
  22. base.Dispose(disposing);
  23. }
  24. #else
  25. return;
  26. #endif
  27. }
  28. protected internal BackgroundSubtractorMOG2(IntPtr addr)
  29. : base(addr) {
  30. }
  31. // internal usage only
  32. public static new BackgroundSubtractorMOG2 __fromPtr__(IntPtr addr) {
  33. return new BackgroundSubtractorMOG2(addr);
  34. }
  35. //
  36. // C++: bool cv::BackgroundSubtractorMOG2::getDetectShadows()
  37. //
  38. //javadoc: BackgroundSubtractorMOG2::getDetectShadows()
  39. public bool getDetectShadows() {
  40. ThrowIfDisposed();
  41. #if (UNITY_ANDROID && !UNITY_EDITOR)
  42. bool retVal = video_BackgroundSubtractorMOG2_getDetectShadows_10(nativeObj);
  43. return retVal;
  44. #else
  45. return false;
  46. #endif
  47. }
  48. //
  49. // C++: double cv::BackgroundSubtractorMOG2::getBackgroundRatio()
  50. //
  51. //javadoc: BackgroundSubtractorMOG2::getBackgroundRatio()
  52. public double getBackgroundRatio() {
  53. ThrowIfDisposed();
  54. #if (UNITY_ANDROID && !UNITY_EDITOR)
  55. double retVal = video_BackgroundSubtractorMOG2_getBackgroundRatio_10(nativeObj);
  56. return retVal;
  57. #else
  58. return -1;
  59. #endif
  60. }
  61. //
  62. // C++: double cv::BackgroundSubtractorMOG2::getComplexityReductionThreshold()
  63. //
  64. //javadoc: BackgroundSubtractorMOG2::getComplexityReductionThreshold()
  65. public double getComplexityReductionThreshold() {
  66. ThrowIfDisposed();
  67. #if (UNITY_ANDROID && !UNITY_EDITOR)
  68. double retVal = video_BackgroundSubtractorMOG2_getComplexityReductionThreshold_10(nativeObj);
  69. return retVal;
  70. #else
  71. return -1;
  72. #endif
  73. }
  74. //
  75. // C++: double cv::BackgroundSubtractorMOG2::getShadowThreshold()
  76. //
  77. //javadoc: BackgroundSubtractorMOG2::getShadowThreshold()
  78. public double getShadowThreshold() {
  79. ThrowIfDisposed();
  80. #if (UNITY_ANDROID && !UNITY_EDITOR)
  81. double retVal = video_BackgroundSubtractorMOG2_getShadowThreshold_10(nativeObj);
  82. return retVal;
  83. #else
  84. return -1;
  85. #endif
  86. }
  87. //
  88. // C++: double cv::BackgroundSubtractorMOG2::getVarInit()
  89. //
  90. //javadoc: BackgroundSubtractorMOG2::getVarInit()
  91. public double getVarInit() {
  92. ThrowIfDisposed();
  93. #if (UNITY_ANDROID && !UNITY_EDITOR)
  94. double retVal = video_BackgroundSubtractorMOG2_getVarInit_10(nativeObj);
  95. return retVal;
  96. #else
  97. return -1;
  98. #endif
  99. }
  100. //
  101. // C++: double cv::BackgroundSubtractorMOG2::getVarMax()
  102. //
  103. //javadoc: BackgroundSubtractorMOG2::getVarMax()
  104. public double getVarMax() {
  105. ThrowIfDisposed();
  106. #if (UNITY_ANDROID && !UNITY_EDITOR)
  107. double retVal = video_BackgroundSubtractorMOG2_getVarMax_10(nativeObj);
  108. return retVal;
  109. #else
  110. return -1;
  111. #endif
  112. }
  113. //
  114. // C++: double cv::BackgroundSubtractorMOG2::getVarMin()
  115. //
  116. //javadoc: BackgroundSubtractorMOG2::getVarMin()
  117. public double getVarMin() {
  118. ThrowIfDisposed();
  119. #if (UNITY_ANDROID && !UNITY_EDITOR)
  120. double retVal = video_BackgroundSubtractorMOG2_getVarMin_10(nativeObj);
  121. return retVal;
  122. #else
  123. return -1;
  124. #endif
  125. }
  126. //
  127. // C++: double cv::BackgroundSubtractorMOG2::getVarThreshold()
  128. //
  129. //javadoc: BackgroundSubtractorMOG2::getVarThreshold()
  130. public double getVarThreshold() {
  131. ThrowIfDisposed();
  132. #if (UNITY_ANDROID && !UNITY_EDITOR)
  133. double retVal = video_BackgroundSubtractorMOG2_getVarThreshold_10(nativeObj);
  134. return retVal;
  135. #else
  136. return -1;
  137. #endif
  138. }
  139. //
  140. // C++: double cv::BackgroundSubtractorMOG2::getVarThresholdGen()
  141. //
  142. //javadoc: BackgroundSubtractorMOG2::getVarThresholdGen()
  143. public double getVarThresholdGen() {
  144. ThrowIfDisposed();
  145. #if (UNITY_ANDROID && !UNITY_EDITOR)
  146. double retVal = video_BackgroundSubtractorMOG2_getVarThresholdGen_10(nativeObj);
  147. return retVal;
  148. #else
  149. return -1;
  150. #endif
  151. }
  152. //
  153. // C++: int cv::BackgroundSubtractorMOG2::getHistory()
  154. //
  155. //javadoc: BackgroundSubtractorMOG2::getHistory()
  156. public int getHistory() {
  157. ThrowIfDisposed();
  158. #if (UNITY_ANDROID && !UNITY_EDITOR)
  159. int retVal = video_BackgroundSubtractorMOG2_getHistory_10(nativeObj);
  160. return retVal;
  161. #else
  162. return -1;
  163. #endif
  164. }
  165. //
  166. // C++: int cv::BackgroundSubtractorMOG2::getNMixtures()
  167. //
  168. //javadoc: BackgroundSubtractorMOG2::getNMixtures()
  169. public int getNMixtures() {
  170. ThrowIfDisposed();
  171. #if (UNITY_ANDROID && !UNITY_EDITOR)
  172. int retVal = video_BackgroundSubtractorMOG2_getNMixtures_10(nativeObj);
  173. return retVal;
  174. #else
  175. return -1;
  176. #endif
  177. }
  178. //
  179. // C++: int cv::BackgroundSubtractorMOG2::getShadowValue()
  180. //
  181. //javadoc: BackgroundSubtractorMOG2::getShadowValue()
  182. public int getShadowValue() {
  183. ThrowIfDisposed();
  184. #if (UNITY_ANDROID && !UNITY_EDITOR)
  185. int retVal = video_BackgroundSubtractorMOG2_getShadowValue_10(nativeObj);
  186. return retVal;
  187. #else
  188. return -1;
  189. #endif
  190. }
  191. //
  192. // C++: void cv::BackgroundSubtractorMOG2::apply(Mat image, Mat& fgmask, double learningRate = -1)
  193. //
  194. //javadoc: BackgroundSubtractorMOG2::apply(image, fgmask, learningRate)
  195. public override void apply(Mat image, Mat fgmask, double learningRate) {
  196. ThrowIfDisposed();
  197. if (image != null)
  198. image.ThrowIfDisposed();
  199. if (fgmask != null)
  200. fgmask.ThrowIfDisposed();
  201. #if (UNITY_ANDROID && !UNITY_EDITOR)
  202. video_BackgroundSubtractorMOG2_apply_10(nativeObj, image.nativeObj, fgmask.nativeObj, learningRate);
  203. return;
  204. #else
  205. return;
  206. #endif
  207. }
  208. //javadoc: BackgroundSubtractorMOG2::apply(image, fgmask)
  209. public override void apply(Mat image, Mat fgmask) {
  210. ThrowIfDisposed();
  211. if (image != null)
  212. image.ThrowIfDisposed();
  213. if (fgmask != null)
  214. fgmask.ThrowIfDisposed();
  215. #if (UNITY_ANDROID && !UNITY_EDITOR)
  216. video_BackgroundSubtractorMOG2_apply_11(nativeObj, image.nativeObj, fgmask.nativeObj);
  217. return;
  218. #else
  219. return;
  220. #endif
  221. }
  222. //
  223. // C++: void cv::BackgroundSubtractorMOG2::setBackgroundRatio(double ratio)
  224. //
  225. //javadoc: BackgroundSubtractorMOG2::setBackgroundRatio(ratio)
  226. public void setBackgroundRatio(double ratio) {
  227. ThrowIfDisposed();
  228. #if (UNITY_ANDROID && !UNITY_EDITOR)
  229. video_BackgroundSubtractorMOG2_setBackgroundRatio_10(nativeObj, ratio);
  230. return;
  231. #else
  232. return;
  233. #endif
  234. }
  235. //
  236. // C++: void cv::BackgroundSubtractorMOG2::setComplexityReductionThreshold(double ct)
  237. //
  238. //javadoc: BackgroundSubtractorMOG2::setComplexityReductionThreshold(ct)
  239. public void setComplexityReductionThreshold(double ct) {
  240. ThrowIfDisposed();
  241. #if (UNITY_ANDROID && !UNITY_EDITOR)
  242. video_BackgroundSubtractorMOG2_setComplexityReductionThreshold_10(nativeObj, ct);
  243. return;
  244. #else
  245. return;
  246. #endif
  247. }
  248. //
  249. // C++: void cv::BackgroundSubtractorMOG2::setDetectShadows(bool detectShadows)
  250. //
  251. //javadoc: BackgroundSubtractorMOG2::setDetectShadows(detectShadows)
  252. public void setDetectShadows(bool detectShadows) {
  253. ThrowIfDisposed();
  254. #if (UNITY_ANDROID && !UNITY_EDITOR)
  255. video_BackgroundSubtractorMOG2_setDetectShadows_10(nativeObj, detectShadows);
  256. return;
  257. #else
  258. return;
  259. #endif
  260. }
  261. //
  262. // C++: void cv::BackgroundSubtractorMOG2::setHistory(int history)
  263. //
  264. //javadoc: BackgroundSubtractorMOG2::setHistory(history)
  265. public void setHistory(int history) {
  266. ThrowIfDisposed();
  267. #if (UNITY_ANDROID && !UNITY_EDITOR)
  268. video_BackgroundSubtractorMOG2_setHistory_10(nativeObj, history);
  269. return;
  270. #else
  271. return;
  272. #endif
  273. }
  274. //
  275. // C++: void cv::BackgroundSubtractorMOG2::setNMixtures(int nmixtures)
  276. //
  277. //javadoc: BackgroundSubtractorMOG2::setNMixtures(nmixtures)
  278. public void setNMixtures(int nmixtures) {
  279. ThrowIfDisposed();
  280. #if (UNITY_ANDROID && !UNITY_EDITOR)
  281. video_BackgroundSubtractorMOG2_setNMixtures_10(nativeObj, nmixtures);
  282. return;
  283. #else
  284. return;
  285. #endif
  286. }
  287. //
  288. // C++: void cv::BackgroundSubtractorMOG2::setShadowThreshold(double threshold)
  289. //
  290. //javadoc: BackgroundSubtractorMOG2::setShadowThreshold(threshold)
  291. public void setShadowThreshold(double threshold) {
  292. ThrowIfDisposed();
  293. #if (UNITY_ANDROID && !UNITY_EDITOR)
  294. video_BackgroundSubtractorMOG2_setShadowThreshold_10(nativeObj, threshold);
  295. return;
  296. #else
  297. return;
  298. #endif
  299. }
  300. //
  301. // C++: void cv::BackgroundSubtractorMOG2::setShadowValue(int value)
  302. //
  303. //javadoc: BackgroundSubtractorMOG2::setShadowValue(value)
  304. public void setShadowValue(int value) {
  305. ThrowIfDisposed();
  306. #if (UNITY_ANDROID && !UNITY_EDITOR)
  307. video_BackgroundSubtractorMOG2_setShadowValue_10(nativeObj, value);
  308. return;
  309. #else
  310. return;
  311. #endif
  312. }
  313. //
  314. // C++: void cv::BackgroundSubtractorMOG2::setVarInit(double varInit)
  315. //
  316. //javadoc: BackgroundSubtractorMOG2::setVarInit(varInit)
  317. public void setVarInit(double varInit) {
  318. ThrowIfDisposed();
  319. #if (UNITY_ANDROID && !UNITY_EDITOR)
  320. video_BackgroundSubtractorMOG2_setVarInit_10(nativeObj, varInit);
  321. return;
  322. #else
  323. return;
  324. #endif
  325. }
  326. //
  327. // C++: void cv::BackgroundSubtractorMOG2::setVarMax(double varMax)
  328. //
  329. //javadoc: BackgroundSubtractorMOG2::setVarMax(varMax)
  330. public void setVarMax(double varMax) {
  331. ThrowIfDisposed();
  332. #if (UNITY_ANDROID && !UNITY_EDITOR)
  333. video_BackgroundSubtractorMOG2_setVarMax_10(nativeObj, varMax);
  334. return;
  335. #else
  336. return;
  337. #endif
  338. }
  339. //
  340. // C++: void cv::BackgroundSubtractorMOG2::setVarMin(double varMin)
  341. //
  342. //javadoc: BackgroundSubtractorMOG2::setVarMin(varMin)
  343. public void setVarMin(double varMin) {
  344. ThrowIfDisposed();
  345. #if (UNITY_ANDROID && !UNITY_EDITOR)
  346. video_BackgroundSubtractorMOG2_setVarMin_10(nativeObj, varMin);
  347. return;
  348. #else
  349. return;
  350. #endif
  351. }
  352. //
  353. // C++: void cv::BackgroundSubtractorMOG2::setVarThreshold(double varThreshold)
  354. //
  355. //javadoc: BackgroundSubtractorMOG2::setVarThreshold(varThreshold)
  356. public void setVarThreshold(double varThreshold) {
  357. ThrowIfDisposed();
  358. #if (UNITY_ANDROID && !UNITY_EDITOR)
  359. video_BackgroundSubtractorMOG2_setVarThreshold_10(nativeObj, varThreshold);
  360. return;
  361. #else
  362. return;
  363. #endif
  364. }
  365. //
  366. // C++: void cv::BackgroundSubtractorMOG2::setVarThresholdGen(double varThresholdGen)
  367. //
  368. //javadoc: BackgroundSubtractorMOG2::setVarThresholdGen(varThresholdGen)
  369. public void setVarThresholdGen(double varThresholdGen) {
  370. ThrowIfDisposed();
  371. #if (UNITY_ANDROID && !UNITY_EDITOR)
  372. video_BackgroundSubtractorMOG2_setVarThresholdGen_10(nativeObj, varThresholdGen);
  373. return;
  374. #else
  375. return;
  376. #endif
  377. }
  378. #if (UNITY_ANDROID && !UNITY_EDITOR)
  379. const string LIBNAME = "opencvforunity";
  380. // C++: bool cv::BackgroundSubtractorMOG2::getDetectShadows()
  381. [DllImport(LIBNAME)]
  382. private static extern bool video_BackgroundSubtractorMOG2_getDetectShadows_10(IntPtr nativeObj);
  383. // C++: double cv::BackgroundSubtractorMOG2::getBackgroundRatio()
  384. [DllImport(LIBNAME)]
  385. private static extern double video_BackgroundSubtractorMOG2_getBackgroundRatio_10(IntPtr nativeObj);
  386. // C++: double cv::BackgroundSubtractorMOG2::getComplexityReductionThreshold()
  387. [DllImport(LIBNAME)]
  388. private static extern double video_BackgroundSubtractorMOG2_getComplexityReductionThreshold_10(IntPtr nativeObj);
  389. // C++: double cv::BackgroundSubtractorMOG2::getShadowThreshold()
  390. [DllImport(LIBNAME)]
  391. private static extern double video_BackgroundSubtractorMOG2_getShadowThreshold_10(IntPtr nativeObj);
  392. // C++: double cv::BackgroundSubtractorMOG2::getVarInit()
  393. [DllImport(LIBNAME)]
  394. private static extern double video_BackgroundSubtractorMOG2_getVarInit_10(IntPtr nativeObj);
  395. // C++: double cv::BackgroundSubtractorMOG2::getVarMax()
  396. [DllImport(LIBNAME)]
  397. private static extern double video_BackgroundSubtractorMOG2_getVarMax_10(IntPtr nativeObj);
  398. // C++: double cv::BackgroundSubtractorMOG2::getVarMin()
  399. [DllImport(LIBNAME)]
  400. private static extern double video_BackgroundSubtractorMOG2_getVarMin_10(IntPtr nativeObj);
  401. // C++: double cv::BackgroundSubtractorMOG2::getVarThreshold()
  402. [DllImport(LIBNAME)]
  403. private static extern double video_BackgroundSubtractorMOG2_getVarThreshold_10(IntPtr nativeObj);
  404. // C++: double cv::BackgroundSubtractorMOG2::getVarThresholdGen()
  405. [DllImport(LIBNAME)]
  406. private static extern double video_BackgroundSubtractorMOG2_getVarThresholdGen_10(IntPtr nativeObj);
  407. // C++: int cv::BackgroundSubtractorMOG2::getHistory()
  408. [DllImport(LIBNAME)]
  409. private static extern int video_BackgroundSubtractorMOG2_getHistory_10(IntPtr nativeObj);
  410. // C++: int cv::BackgroundSubtractorMOG2::getNMixtures()
  411. [DllImport(LIBNAME)]
  412. private static extern int video_BackgroundSubtractorMOG2_getNMixtures_10(IntPtr nativeObj);
  413. // C++: int cv::BackgroundSubtractorMOG2::getShadowValue()
  414. [DllImport(LIBNAME)]
  415. private static extern int video_BackgroundSubtractorMOG2_getShadowValue_10(IntPtr nativeObj);
  416. // C++: void cv::BackgroundSubtractorMOG2::apply(Mat image, Mat& fgmask, double learningRate = -1)
  417. [DllImport(LIBNAME)]
  418. private static extern void video_BackgroundSubtractorMOG2_apply_10(IntPtr nativeObj, IntPtr image_nativeObj, IntPtr fgmask_nativeObj, double learningRate);
  419. [DllImport(LIBNAME)]
  420. private static extern void video_BackgroundSubtractorMOG2_apply_11(IntPtr nativeObj, IntPtr image_nativeObj, IntPtr fgmask_nativeObj);
  421. // C++: void cv::BackgroundSubtractorMOG2::setBackgroundRatio(double ratio)
  422. [DllImport(LIBNAME)]
  423. private static extern void video_BackgroundSubtractorMOG2_setBackgroundRatio_10(IntPtr nativeObj, double ratio);
  424. // C++: void cv::BackgroundSubtractorMOG2::setComplexityReductionThreshold(double ct)
  425. [DllImport(LIBNAME)]
  426. private static extern void video_BackgroundSubtractorMOG2_setComplexityReductionThreshold_10(IntPtr nativeObj, double ct);
  427. // C++: void cv::BackgroundSubtractorMOG2::setDetectShadows(bool detectShadows)
  428. [DllImport(LIBNAME)]
  429. private static extern void video_BackgroundSubtractorMOG2_setDetectShadows_10(IntPtr nativeObj, bool detectShadows);
  430. // C++: void cv::BackgroundSubtractorMOG2::setHistory(int history)
  431. [DllImport(LIBNAME)]
  432. private static extern void video_BackgroundSubtractorMOG2_setHistory_10(IntPtr nativeObj, int history);
  433. // C++: void cv::BackgroundSubtractorMOG2::setNMixtures(int nmixtures)
  434. [DllImport(LIBNAME)]
  435. private static extern void video_BackgroundSubtractorMOG2_setNMixtures_10(IntPtr nativeObj, int nmixtures);
  436. // C++: void cv::BackgroundSubtractorMOG2::setShadowThreshold(double threshold)
  437. [DllImport(LIBNAME)]
  438. private static extern void video_BackgroundSubtractorMOG2_setShadowThreshold_10(IntPtr nativeObj, double threshold);
  439. // C++: void cv::BackgroundSubtractorMOG2::setShadowValue(int value)
  440. [DllImport(LIBNAME)]
  441. private static extern void video_BackgroundSubtractorMOG2_setShadowValue_10(IntPtr nativeObj, int value);
  442. // C++: void cv::BackgroundSubtractorMOG2::setVarInit(double varInit)
  443. [DllImport(LIBNAME)]
  444. private static extern void video_BackgroundSubtractorMOG2_setVarInit_10(IntPtr nativeObj, double varInit);
  445. // C++: void cv::BackgroundSubtractorMOG2::setVarMax(double varMax)
  446. [DllImport(LIBNAME)]
  447. private static extern void video_BackgroundSubtractorMOG2_setVarMax_10(IntPtr nativeObj, double varMax);
  448. // C++: void cv::BackgroundSubtractorMOG2::setVarMin(double varMin)
  449. [DllImport(LIBNAME)]
  450. private static extern void video_BackgroundSubtractorMOG2_setVarMin_10(IntPtr nativeObj, double varMin);
  451. // C++: void cv::BackgroundSubtractorMOG2::setVarThreshold(double varThreshold)
  452. [DllImport(LIBNAME)]
  453. private static extern void video_BackgroundSubtractorMOG2_setVarThreshold_10(IntPtr nativeObj, double varThreshold);
  454. // C++: void cv::BackgroundSubtractorMOG2::setVarThresholdGen(double varThresholdGen)
  455. [DllImport(LIBNAME)]
  456. private static extern void video_BackgroundSubtractorMOG2_setVarThresholdGen_10(IntPtr nativeObj, double varThresholdGen);
  457. // native support for java finalize()
  458. [DllImport(LIBNAME)]
  459. private static extern void video_BackgroundSubtractorMOG2_delete(IntPtr nativeObj);
  460. #endif
  461. }
  462. }