GrayCodePattern.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  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 GrayCodePattern
  9. //javadoc: GrayCodePattern
  10. public class GrayCodePattern : 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_GrayCodePattern_delete(nativeObj);
  19. nativeObj = IntPtr.Zero;
  20. }
  21. } finally {
  22. base.Dispose(disposing);
  23. }
  24. #else
  25. return;
  26. #endif
  27. }
  28. protected internal GrayCodePattern(IntPtr addr) : base(addr) {
  29. }
  30. // internal usage only
  31. public static new GrayCodePattern __fromPtr__(IntPtr addr) {
  32. return new GrayCodePattern(addr);
  33. }
  34. //
  35. // C++: static Ptr_GrayCodePattern cv::structured_light::GrayCodePattern::create(int width, int height)
  36. //
  37. //javadoc: GrayCodePattern::create(width, height)
  38. public static GrayCodePattern create(int width, int height) {
  39. #if (UNITY_ANDROID && !UNITY_EDITOR)
  40. GrayCodePattern retVal = GrayCodePattern.__fromPtr__(structured_1light_GrayCodePattern_create_10(width, height));
  41. return retVal;
  42. #else
  43. return null;
  44. #endif
  45. }
  46. //
  47. // C++: bool cv::structured_light::GrayCodePattern::getProjPixel(vector_Mat patternImages, int x, int y, Point& projPix)
  48. //
  49. //javadoc: GrayCodePattern::getProjPixel(patternImages, x, y, projPix)
  50. public bool getProjPixel(List<Mat> patternImages, int x, int y, Point projPix) {
  51. ThrowIfDisposed();
  52. #if (UNITY_ANDROID && !UNITY_EDITOR)
  53. Mat patternImages_mat = Converters.vector_Mat_to_Mat(patternImages);
  54. double[] projPix_out = new double[2];
  55. bool retVal = structured_1light_GrayCodePattern_getProjPixel_10(nativeObj, patternImages_mat.nativeObj, x, y, projPix_out);
  56. if (projPix != null) {
  57. projPix.x = projPix_out[0];
  58. projPix.y = projPix_out[1];
  59. }
  60. return retVal;
  61. #else
  62. return false;
  63. #endif
  64. }
  65. //
  66. // C++: size_t cv::structured_light::GrayCodePattern::getNumberOfPatternImages()
  67. //
  68. //javadoc: GrayCodePattern::getNumberOfPatternImages()
  69. public long getNumberOfPatternImages() {
  70. ThrowIfDisposed();
  71. #if (UNITY_ANDROID && !UNITY_EDITOR)
  72. long retVal = structured_1light_GrayCodePattern_getNumberOfPatternImages_10(nativeObj);
  73. return retVal;
  74. #else
  75. return -1;
  76. #endif
  77. }
  78. //
  79. // C++: void cv::structured_light::GrayCodePattern::getImagesForShadowMasks(Mat& blackImage, Mat& whiteImage)
  80. //
  81. //javadoc: GrayCodePattern::getImagesForShadowMasks(blackImage, whiteImage)
  82. public void getImagesForShadowMasks(Mat blackImage, Mat whiteImage) {
  83. ThrowIfDisposed();
  84. if (blackImage != null)
  85. blackImage.ThrowIfDisposed();
  86. if (whiteImage != null)
  87. whiteImage.ThrowIfDisposed();
  88. #if (UNITY_ANDROID && !UNITY_EDITOR)
  89. structured_1light_GrayCodePattern_getImagesForShadowMasks_10(nativeObj, blackImage.nativeObj, whiteImage.nativeObj);
  90. return;
  91. #else
  92. return;
  93. #endif
  94. }
  95. //
  96. // C++: void cv::structured_light::GrayCodePattern::setBlackThreshold(size_t value)
  97. //
  98. //javadoc: GrayCodePattern::setBlackThreshold(value)
  99. public void setBlackThreshold(long value) {
  100. ThrowIfDisposed();
  101. #if (UNITY_ANDROID && !UNITY_EDITOR)
  102. structured_1light_GrayCodePattern_setBlackThreshold_10(nativeObj, value);
  103. return;
  104. #else
  105. return;
  106. #endif
  107. }
  108. //
  109. // C++: void cv::structured_light::GrayCodePattern::setWhiteThreshold(size_t value)
  110. //
  111. //javadoc: GrayCodePattern::setWhiteThreshold(value)
  112. public void setWhiteThreshold(long value) {
  113. ThrowIfDisposed();
  114. #if (UNITY_ANDROID && !UNITY_EDITOR)
  115. structured_1light_GrayCodePattern_setWhiteThreshold_10(nativeObj, value);
  116. return;
  117. #else
  118. return;
  119. #endif
  120. }
  121. #if (UNITY_ANDROID && !UNITY_EDITOR)
  122. const string LIBNAME = "opencvforunity";
  123. // C++: static Ptr_GrayCodePattern cv::structured_light::GrayCodePattern::create(int width, int height)
  124. [DllImport(LIBNAME)]
  125. private static extern IntPtr structured_1light_GrayCodePattern_create_10(int width, int height);
  126. // C++: bool cv::structured_light::GrayCodePattern::getProjPixel(vector_Mat patternImages, int x, int y, Point& projPix)
  127. [DllImport(LIBNAME)]
  128. private static extern bool structured_1light_GrayCodePattern_getProjPixel_10(IntPtr nativeObj, IntPtr patternImages_mat_nativeObj, int x, int y, double[] projPix_out);
  129. // C++: size_t cv::structured_light::GrayCodePattern::getNumberOfPatternImages()
  130. [DllImport(LIBNAME)]
  131. private static extern long structured_1light_GrayCodePattern_getNumberOfPatternImages_10(IntPtr nativeObj);
  132. // C++: void cv::structured_light::GrayCodePattern::getImagesForShadowMasks(Mat& blackImage, Mat& whiteImage)
  133. [DllImport(LIBNAME)]
  134. private static extern void structured_1light_GrayCodePattern_getImagesForShadowMasks_10(IntPtr nativeObj, IntPtr blackImage_nativeObj, IntPtr whiteImage_nativeObj);
  135. // C++: void cv::structured_light::GrayCodePattern::setBlackThreshold(size_t value)
  136. [DllImport(LIBNAME)]
  137. private static extern void structured_1light_GrayCodePattern_setBlackThreshold_10(IntPtr nativeObj, long value);
  138. // C++: void cv::structured_light::GrayCodePattern::setWhiteThreshold(size_t value)
  139. [DllImport(LIBNAME)]
  140. private static extern void structured_1light_GrayCodePattern_setWhiteThreshold_10(IntPtr nativeObj, long value);
  141. // native support for java finalize()
  142. [DllImport(LIBNAME)]
  143. private static extern void structured_1light_GrayCodePattern_delete(IntPtr nativeObj);
  144. #endif
  145. }
  146. }