BackgroundSubtractor.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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. {
  9. // C++: class BackgroundSubtractor
  10. //javadoc: BackgroundSubtractor
  11. public class BackgroundSubtractor : Algorithm
  12. {
  13. protected override void Dispose (bool disposing)
  14. {
  15. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  16. try {
  17. if (disposing) {
  18. }
  19. if (IsEnabledDispose) {
  20. if (nativeObj != IntPtr.Zero)
  21. video_BackgroundSubtractor_delete (nativeObj);
  22. nativeObj = IntPtr.Zero;
  23. }
  24. } finally {
  25. base.Dispose (disposing);
  26. }
  27. #else
  28. return;
  29. #endif
  30. }
  31. protected internal BackgroundSubtractor (IntPtr addr)
  32. : base (addr)
  33. {
  34. }
  35. // internal usage only
  36. public static new BackgroundSubtractor __fromPtr__ (IntPtr addr)
  37. {
  38. return new BackgroundSubtractor (addr);
  39. }
  40. //
  41. // C++: void cv::BackgroundSubtractor::apply(Mat image, Mat& fgmask, double learningRate = -1)
  42. //
  43. //javadoc: BackgroundSubtractor::apply(image, fgmask, learningRate)
  44. public virtual void apply (Mat image, Mat fgmask, double learningRate)
  45. {
  46. ThrowIfDisposed ();
  47. if (image != null)
  48. image.ThrowIfDisposed ();
  49. if (fgmask != null)
  50. fgmask.ThrowIfDisposed ();
  51. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  52. video_BackgroundSubtractor_apply_10 (nativeObj, image.nativeObj, fgmask.nativeObj, learningRate);
  53. return;
  54. #else
  55. return;
  56. #endif
  57. }
  58. //javadoc: BackgroundSubtractor::apply(image, fgmask)
  59. public virtual void apply (Mat image, Mat fgmask)
  60. {
  61. ThrowIfDisposed ();
  62. if (image != null)
  63. image.ThrowIfDisposed ();
  64. if (fgmask != null)
  65. fgmask.ThrowIfDisposed ();
  66. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  67. video_BackgroundSubtractor_apply_11 (nativeObj, image.nativeObj, fgmask.nativeObj);
  68. return;
  69. #else
  70. return;
  71. #endif
  72. }
  73. //
  74. // C++: void cv::BackgroundSubtractor::getBackgroundImage(Mat& backgroundImage)
  75. //
  76. //javadoc: BackgroundSubtractor::getBackgroundImage(backgroundImage)
  77. public virtual void getBackgroundImage (Mat backgroundImage)
  78. {
  79. ThrowIfDisposed ();
  80. if (backgroundImage != null)
  81. backgroundImage.ThrowIfDisposed ();
  82. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  83. video_BackgroundSubtractor_getBackgroundImage_10 (nativeObj, backgroundImage.nativeObj);
  84. return;
  85. #else
  86. return;
  87. #endif
  88. }
  89. #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
  90. const string LIBNAME = "__Internal";
  91. #else
  92. const string LIBNAME = "opencvforunity";
  93. #endif
  94. // C++: void cv::BackgroundSubtractor::apply(Mat image, Mat& fgmask, double learningRate = -1)
  95. [DllImport (LIBNAME)]
  96. private static extern void video_BackgroundSubtractor_apply_10 (IntPtr nativeObj, IntPtr image_nativeObj, IntPtr fgmask_nativeObj, double learningRate);
  97. [DllImport (LIBNAME)]
  98. private static extern void video_BackgroundSubtractor_apply_11 (IntPtr nativeObj, IntPtr image_nativeObj, IntPtr fgmask_nativeObj);
  99. // C++: void cv::BackgroundSubtractor::getBackgroundImage(Mat& backgroundImage)
  100. [DllImport (LIBNAME)]
  101. private static extern void video_BackgroundSubtractor_getBackgroundImage_10 (IntPtr nativeObj, IntPtr backgroundImage_nativeObj);
  102. // native support for java finalize()
  103. [DllImport (LIBNAME)]
  104. private static extern void video_BackgroundSubtractor_delete (IntPtr nativeObj);
  105. }
  106. }