SinusoidalPattern.cs 10 KB

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