SinusoidalPattern.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  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.Structured_lightModule
  8. {
  9. // C++: class SinusoidalPattern
  10. //javadoc: SinusoidalPattern
  11. public class SinusoidalPattern : StructuredLightPattern
  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. structured_1light_SinusoidalPattern_delete(nativeObj);
  22. nativeObj = IntPtr.Zero;
  23. }
  24. } finally {
  25. base.Dispose (disposing);
  26. }
  27. #else
  28. return;
  29. #endif
  30. }
  31. protected internal SinusoidalPattern (IntPtr addr) : base (addr) { }
  32. // internal usage only
  33. public static new SinusoidalPattern __fromPtr__ (IntPtr addr) { return new SinusoidalPattern (addr); }
  34. //
  35. // C++: static Ptr_SinusoidalPattern cv::structured_light::SinusoidalPattern::create(Ptr_SinusoidalPattern_Params parameters = makePtr<SinusoidalPattern::Params>())
  36. //
  37. //javadoc: SinusoidalPattern::create()
  38. public static SinusoidalPattern create ()
  39. {
  40. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  41. SinusoidalPattern retVal = SinusoidalPattern.__fromPtr__(structured_1light_SinusoidalPattern_create_10());
  42. return retVal;
  43. #else
  44. return null;
  45. #endif
  46. }
  47. //
  48. // C++: void cv::structured_light::SinusoidalPattern::computeDataModulationTerm(vector_Mat patternImages, Mat& dataModulationTerm, Mat shadowMask)
  49. //
  50. //javadoc: SinusoidalPattern::computeDataModulationTerm(patternImages, dataModulationTerm, shadowMask)
  51. public void computeDataModulationTerm (List<Mat> patternImages, Mat dataModulationTerm, Mat shadowMask)
  52. {
  53. ThrowIfDisposed ();
  54. if (dataModulationTerm != null) dataModulationTerm.ThrowIfDisposed ();
  55. if (shadowMask != null) shadowMask.ThrowIfDisposed ();
  56. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  57. Mat patternImages_mat = Converters.vector_Mat_to_Mat(patternImages);
  58. structured_1light_SinusoidalPattern_computeDataModulationTerm_10(nativeObj, patternImages_mat.nativeObj, dataModulationTerm.nativeObj, shadowMask.nativeObj);
  59. return;
  60. #else
  61. return;
  62. #endif
  63. }
  64. //
  65. // C++: void cv::structured_light::SinusoidalPattern::computePhaseMap(vector_Mat patternImages, Mat& wrappedPhaseMap, Mat& shadowMask = Mat(), Mat fundamental = Mat())
  66. //
  67. //javadoc: SinusoidalPattern::computePhaseMap(patternImages, wrappedPhaseMap, shadowMask, fundamental)
  68. public void computePhaseMap (List<Mat> patternImages, Mat wrappedPhaseMap, Mat shadowMask, Mat fundamental)
  69. {
  70. ThrowIfDisposed ();
  71. if (wrappedPhaseMap != null) wrappedPhaseMap.ThrowIfDisposed ();
  72. if (shadowMask != null) shadowMask.ThrowIfDisposed ();
  73. if (fundamental != null) fundamental.ThrowIfDisposed ();
  74. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  75. Mat patternImages_mat = Converters.vector_Mat_to_Mat(patternImages);
  76. structured_1light_SinusoidalPattern_computePhaseMap_10(nativeObj, patternImages_mat.nativeObj, wrappedPhaseMap.nativeObj, shadowMask.nativeObj, fundamental.nativeObj);
  77. return;
  78. #else
  79. return;
  80. #endif
  81. }
  82. //javadoc: SinusoidalPattern::computePhaseMap(patternImages, wrappedPhaseMap, shadowMask)
  83. public void computePhaseMap (List<Mat> patternImages, Mat wrappedPhaseMap, Mat shadowMask)
  84. {
  85. ThrowIfDisposed ();
  86. if (wrappedPhaseMap != null) wrappedPhaseMap.ThrowIfDisposed ();
  87. if (shadowMask != null) shadowMask.ThrowIfDisposed ();
  88. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  89. Mat patternImages_mat = Converters.vector_Mat_to_Mat(patternImages);
  90. structured_1light_SinusoidalPattern_computePhaseMap_11(nativeObj, patternImages_mat.nativeObj, wrappedPhaseMap.nativeObj, shadowMask.nativeObj);
  91. return;
  92. #else
  93. return;
  94. #endif
  95. }
  96. //javadoc: SinusoidalPattern::computePhaseMap(patternImages, wrappedPhaseMap)
  97. public void computePhaseMap (List<Mat> patternImages, Mat wrappedPhaseMap)
  98. {
  99. ThrowIfDisposed ();
  100. if (wrappedPhaseMap != null) wrappedPhaseMap.ThrowIfDisposed ();
  101. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  102. Mat patternImages_mat = Converters.vector_Mat_to_Mat(patternImages);
  103. structured_1light_SinusoidalPattern_computePhaseMap_12(nativeObj, patternImages_mat.nativeObj, wrappedPhaseMap.nativeObj);
  104. return;
  105. #else
  106. return;
  107. #endif
  108. }
  109. //
  110. // C++: void cv::structured_light::SinusoidalPattern::findProCamMatches(Mat projUnwrappedPhaseMap, Mat camUnwrappedPhaseMap, vector_Mat& matches)
  111. //
  112. //javadoc: SinusoidalPattern::findProCamMatches(projUnwrappedPhaseMap, camUnwrappedPhaseMap, matches)
  113. public void findProCamMatches (Mat projUnwrappedPhaseMap, Mat camUnwrappedPhaseMap, List<Mat> matches)
  114. {
  115. ThrowIfDisposed ();
  116. if (projUnwrappedPhaseMap != null) projUnwrappedPhaseMap.ThrowIfDisposed ();
  117. if (camUnwrappedPhaseMap != null) camUnwrappedPhaseMap.ThrowIfDisposed ();
  118. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  119. Mat matches_mat = new Mat();
  120. structured_1light_SinusoidalPattern_findProCamMatches_10(nativeObj, projUnwrappedPhaseMap.nativeObj, camUnwrappedPhaseMap.nativeObj, matches_mat.nativeObj);
  121. Converters.Mat_to_vector_Mat(matches_mat, matches);
  122. matches_mat.release();
  123. return;
  124. #else
  125. return;
  126. #endif
  127. }
  128. //
  129. // C++: void cv::structured_light::SinusoidalPattern::unwrapPhaseMap(vector_Mat wrappedPhaseMap, Mat& unwrappedPhaseMap, Size camSize, Mat shadowMask = Mat())
  130. //
  131. //javadoc: SinusoidalPattern::unwrapPhaseMap(wrappedPhaseMap, unwrappedPhaseMap, camSize, shadowMask)
  132. public void unwrapPhaseMap (List<Mat> wrappedPhaseMap, Mat unwrappedPhaseMap, Size camSize, Mat shadowMask)
  133. {
  134. ThrowIfDisposed ();
  135. if (unwrappedPhaseMap != null) unwrappedPhaseMap.ThrowIfDisposed ();
  136. if (shadowMask != null) shadowMask.ThrowIfDisposed ();
  137. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  138. Mat wrappedPhaseMap_mat = Converters.vector_Mat_to_Mat(wrappedPhaseMap);
  139. structured_1light_SinusoidalPattern_unwrapPhaseMap_10(nativeObj, wrappedPhaseMap_mat.nativeObj, unwrappedPhaseMap.nativeObj, camSize.width, camSize.height, shadowMask.nativeObj);
  140. return;
  141. #else
  142. return;
  143. #endif
  144. }
  145. //javadoc: SinusoidalPattern::unwrapPhaseMap(wrappedPhaseMap, unwrappedPhaseMap, camSize)
  146. public void unwrapPhaseMap (List<Mat> wrappedPhaseMap, Mat unwrappedPhaseMap, Size camSize)
  147. {
  148. ThrowIfDisposed ();
  149. if (unwrappedPhaseMap != null) unwrappedPhaseMap.ThrowIfDisposed ();
  150. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  151. Mat wrappedPhaseMap_mat = Converters.vector_Mat_to_Mat(wrappedPhaseMap);
  152. structured_1light_SinusoidalPattern_unwrapPhaseMap_11(nativeObj, wrappedPhaseMap_mat.nativeObj, unwrappedPhaseMap.nativeObj, camSize.width, camSize.height);
  153. return;
  154. #else
  155. return;
  156. #endif
  157. }
  158. #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
  159. const string LIBNAME = "__Internal";
  160. #else
  161. const string LIBNAME = "opencvforunity";
  162. #endif
  163. // C++: static Ptr_SinusoidalPattern cv::structured_light::SinusoidalPattern::create(Ptr_SinusoidalPattern_Params parameters = makePtr<SinusoidalPattern::Params>())
  164. [DllImport (LIBNAME)]
  165. private static extern IntPtr structured_1light_SinusoidalPattern_create_10 ();
  166. // C++: void cv::structured_light::SinusoidalPattern::computeDataModulationTerm(vector_Mat patternImages, Mat& dataModulationTerm, Mat shadowMask)
  167. [DllImport (LIBNAME)]
  168. private static extern void structured_1light_SinusoidalPattern_computeDataModulationTerm_10 (IntPtr nativeObj, IntPtr patternImages_mat_nativeObj, IntPtr dataModulationTerm_nativeObj, IntPtr shadowMask_nativeObj);
  169. // C++: void cv::structured_light::SinusoidalPattern::computePhaseMap(vector_Mat patternImages, Mat& wrappedPhaseMap, Mat& shadowMask = Mat(), Mat fundamental = Mat())
  170. [DllImport (LIBNAME)]
  171. private static extern void structured_1light_SinusoidalPattern_computePhaseMap_10 (IntPtr nativeObj, IntPtr patternImages_mat_nativeObj, IntPtr wrappedPhaseMap_nativeObj, IntPtr shadowMask_nativeObj, IntPtr fundamental_nativeObj);
  172. [DllImport (LIBNAME)]
  173. private static extern void structured_1light_SinusoidalPattern_computePhaseMap_11 (IntPtr nativeObj, IntPtr patternImages_mat_nativeObj, IntPtr wrappedPhaseMap_nativeObj, IntPtr shadowMask_nativeObj);
  174. [DllImport (LIBNAME)]
  175. private static extern void structured_1light_SinusoidalPattern_computePhaseMap_12 (IntPtr nativeObj, IntPtr patternImages_mat_nativeObj, IntPtr wrappedPhaseMap_nativeObj);
  176. // C++: void cv::structured_light::SinusoidalPattern::findProCamMatches(Mat projUnwrappedPhaseMap, Mat camUnwrappedPhaseMap, vector_Mat& matches)
  177. [DllImport (LIBNAME)]
  178. private static extern void structured_1light_SinusoidalPattern_findProCamMatches_10 (IntPtr nativeObj, IntPtr projUnwrappedPhaseMap_nativeObj, IntPtr camUnwrappedPhaseMap_nativeObj, IntPtr matches_mat_nativeObj);
  179. // C++: void cv::structured_light::SinusoidalPattern::unwrapPhaseMap(vector_Mat wrappedPhaseMap, Mat& unwrappedPhaseMap, Size camSize, Mat shadowMask = Mat())
  180. [DllImport (LIBNAME)]
  181. private static extern void structured_1light_SinusoidalPattern_unwrapPhaseMap_10 (IntPtr nativeObj, IntPtr wrappedPhaseMap_mat_nativeObj, IntPtr unwrappedPhaseMap_nativeObj, double camSize_width, double camSize_height, IntPtr shadowMask_nativeObj);
  182. [DllImport (LIBNAME)]
  183. private static extern void structured_1light_SinusoidalPattern_unwrapPhaseMap_11 (IntPtr nativeObj, IntPtr wrappedPhaseMap_mat_nativeObj, IntPtr unwrappedPhaseMap_nativeObj, double camSize_width, double camSize_height);
  184. // native support for java finalize()
  185. [DllImport (LIBNAME)]
  186. private static extern void structured_1light_SinusoidalPattern_delete (IntPtr nativeObj);
  187. }
  188. }