ShapeTransformer.cs 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  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.ShapeModule
  8. {
  9. // C++: class ShapeTransformer
  10. //javadoc: ShapeTransformer
  11. public class ShapeTransformer : 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. shape_ShapeTransformer_delete(nativeObj);
  22. nativeObj = IntPtr.Zero;
  23. }
  24. } finally {
  25. base.Dispose (disposing);
  26. }
  27. #else
  28. return;
  29. #endif
  30. }
  31. protected internal ShapeTransformer (IntPtr addr) : base (addr) { }
  32. // internal usage only
  33. public static new ShapeTransformer __fromPtr__ (IntPtr addr) { return new ShapeTransformer (addr); }
  34. //
  35. // C++: float cv::ShapeTransformer::applyTransformation(Mat input, Mat& output = Mat())
  36. //
  37. //javadoc: ShapeTransformer::applyTransformation(input, output)
  38. public float applyTransformation (Mat input, Mat output)
  39. {
  40. ThrowIfDisposed ();
  41. if (input != null) input.ThrowIfDisposed ();
  42. if (output != null) output.ThrowIfDisposed ();
  43. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  44. float retVal = shape_ShapeTransformer_applyTransformation_10(nativeObj, input.nativeObj, output.nativeObj);
  45. return retVal;
  46. #else
  47. return -1;
  48. #endif
  49. }
  50. //javadoc: ShapeTransformer::applyTransformation(input)
  51. public float applyTransformation (Mat input)
  52. {
  53. ThrowIfDisposed ();
  54. if (input != null) input.ThrowIfDisposed ();
  55. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  56. float retVal = shape_ShapeTransformer_applyTransformation_11(nativeObj, input.nativeObj);
  57. return retVal;
  58. #else
  59. return -1;
  60. #endif
  61. }
  62. //
  63. // C++: void cv::ShapeTransformer::estimateTransformation(Mat transformingShape, Mat targetShape, vector_DMatch matches)
  64. //
  65. //javadoc: ShapeTransformer::estimateTransformation(transformingShape, targetShape, matches)
  66. public void estimateTransformation (Mat transformingShape, Mat targetShape, MatOfDMatch matches)
  67. {
  68. ThrowIfDisposed ();
  69. if (transformingShape != null) transformingShape.ThrowIfDisposed ();
  70. if (targetShape != null) targetShape.ThrowIfDisposed ();
  71. if (matches != null) matches.ThrowIfDisposed ();
  72. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  73. Mat matches_mat = matches;
  74. shape_ShapeTransformer_estimateTransformation_10(nativeObj, transformingShape.nativeObj, targetShape.nativeObj, matches_mat.nativeObj);
  75. return;
  76. #else
  77. return;
  78. #endif
  79. }
  80. //
  81. // C++: void cv::ShapeTransformer::warpImage(Mat transformingImage, Mat& output, int flags = INTER_LINEAR, int borderMode = BORDER_CONSTANT, Scalar borderValue = Scalar())
  82. //
  83. //javadoc: ShapeTransformer::warpImage(transformingImage, output, flags, borderMode, borderValue)
  84. public void warpImage (Mat transformingImage, Mat output, int flags, int borderMode, Scalar borderValue)
  85. {
  86. ThrowIfDisposed ();
  87. if (transformingImage != null) transformingImage.ThrowIfDisposed ();
  88. if (output != null) output.ThrowIfDisposed ();
  89. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  90. shape_ShapeTransformer_warpImage_10(nativeObj, transformingImage.nativeObj, output.nativeObj, flags, borderMode, borderValue.val[0], borderValue.val[1], borderValue.val[2], borderValue.val[3]);
  91. return;
  92. #else
  93. return;
  94. #endif
  95. }
  96. //javadoc: ShapeTransformer::warpImage(transformingImage, output, flags, borderMode)
  97. public void warpImage (Mat transformingImage, Mat output, int flags, int borderMode)
  98. {
  99. ThrowIfDisposed ();
  100. if (transformingImage != null) transformingImage.ThrowIfDisposed ();
  101. if (output != null) output.ThrowIfDisposed ();
  102. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  103. shape_ShapeTransformer_warpImage_11(nativeObj, transformingImage.nativeObj, output.nativeObj, flags, borderMode);
  104. return;
  105. #else
  106. return;
  107. #endif
  108. }
  109. //javadoc: ShapeTransformer::warpImage(transformingImage, output, flags)
  110. public void warpImage (Mat transformingImage, Mat output, int flags)
  111. {
  112. ThrowIfDisposed ();
  113. if (transformingImage != null) transformingImage.ThrowIfDisposed ();
  114. if (output != null) output.ThrowIfDisposed ();
  115. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  116. shape_ShapeTransformer_warpImage_12(nativeObj, transformingImage.nativeObj, output.nativeObj, flags);
  117. return;
  118. #else
  119. return;
  120. #endif
  121. }
  122. //javadoc: ShapeTransformer::warpImage(transformingImage, output)
  123. public void warpImage (Mat transformingImage, Mat output)
  124. {
  125. ThrowIfDisposed ();
  126. if (transformingImage != null) transformingImage.ThrowIfDisposed ();
  127. if (output != null) output.ThrowIfDisposed ();
  128. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  129. shape_ShapeTransformer_warpImage_13(nativeObj, transformingImage.nativeObj, output.nativeObj);
  130. return;
  131. #else
  132. return;
  133. #endif
  134. }
  135. #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
  136. const string LIBNAME = "__Internal";
  137. #else
  138. const string LIBNAME = "opencvforunity";
  139. #endif
  140. // C++: float cv::ShapeTransformer::applyTransformation(Mat input, Mat& output = Mat())
  141. [DllImport (LIBNAME)]
  142. private static extern float shape_ShapeTransformer_applyTransformation_10 (IntPtr nativeObj, IntPtr input_nativeObj, IntPtr output_nativeObj);
  143. [DllImport (LIBNAME)]
  144. private static extern float shape_ShapeTransformer_applyTransformation_11 (IntPtr nativeObj, IntPtr input_nativeObj);
  145. // C++: void cv::ShapeTransformer::estimateTransformation(Mat transformingShape, Mat targetShape, vector_DMatch matches)
  146. [DllImport (LIBNAME)]
  147. private static extern void shape_ShapeTransformer_estimateTransformation_10 (IntPtr nativeObj, IntPtr transformingShape_nativeObj, IntPtr targetShape_nativeObj, IntPtr matches_mat_nativeObj);
  148. // C++: void cv::ShapeTransformer::warpImage(Mat transformingImage, Mat& output, int flags = INTER_LINEAR, int borderMode = BORDER_CONSTANT, Scalar borderValue = Scalar())
  149. [DllImport (LIBNAME)]
  150. private static extern void shape_ShapeTransformer_warpImage_10 (IntPtr nativeObj, IntPtr transformingImage_nativeObj, IntPtr output_nativeObj, int flags, int borderMode, double borderValue_val0, double borderValue_val1, double borderValue_val2, double borderValue_val3);
  151. [DllImport (LIBNAME)]
  152. private static extern void shape_ShapeTransformer_warpImage_11 (IntPtr nativeObj, IntPtr transformingImage_nativeObj, IntPtr output_nativeObj, int flags, int borderMode);
  153. [DllImport (LIBNAME)]
  154. private static extern void shape_ShapeTransformer_warpImage_12 (IntPtr nativeObj, IntPtr transformingImage_nativeObj, IntPtr output_nativeObj, int flags);
  155. [DllImport (LIBNAME)]
  156. private static extern void shape_ShapeTransformer_warpImage_13 (IntPtr nativeObj, IntPtr transformingImage_nativeObj, IntPtr output_nativeObj);
  157. // native support for java finalize()
  158. [DllImport (LIBNAME)]
  159. private static extern void shape_ShapeTransformer_delete (IntPtr nativeObj);
  160. }
  161. }