ShapeDistanceExtractor.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. // C++: class ShapeDistanceExtractor
  9. //javadoc: ShapeDistanceExtractor
  10. public class ShapeDistanceExtractor : Algorithm {
  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. shape_ShapeDistanceExtractor_delete(nativeObj);
  19. nativeObj = IntPtr.Zero;
  20. }
  21. } finally {
  22. base.Dispose(disposing);
  23. }
  24. #else
  25. return;
  26. #endif
  27. }
  28. protected internal ShapeDistanceExtractor(IntPtr addr) : base(addr) { }
  29. // internal usage only
  30. public static new ShapeDistanceExtractor __fromPtr__(IntPtr addr) { return new ShapeDistanceExtractor(addr); }
  31. //
  32. // C++: float cv::ShapeDistanceExtractor::computeDistance(Mat contour1, Mat contour2)
  33. //
  34. //javadoc: ShapeDistanceExtractor::computeDistance(contour1, contour2)
  35. public float computeDistance(Mat contour1, Mat contour2) {
  36. ThrowIfDisposed();
  37. if (contour1 != null) contour1.ThrowIfDisposed();
  38. if (contour2 != null) contour2.ThrowIfDisposed();
  39. #if (UNITY_ANDROID && !UNITY_EDITOR)
  40. float retVal = shape_ShapeDistanceExtractor_computeDistance_10(nativeObj, contour1.nativeObj, contour2.nativeObj);
  41. return retVal;
  42. #else
  43. return -1;
  44. #endif
  45. }
  46. #if (UNITY_ANDROID && !UNITY_EDITOR)
  47. const string LIBNAME = "opencvforunity";
  48. // C++: float cv::ShapeDistanceExtractor::computeDistance(Mat contour1, Mat contour2)
  49. [DllImport(LIBNAME)]
  50. private static extern float shape_ShapeDistanceExtractor_computeDistance_10(IntPtr nativeObj, IntPtr contour1_nativeObj, IntPtr contour2_nativeObj);
  51. // native support for java finalize()
  52. [DllImport(LIBNAME)]
  53. private static extern void shape_ShapeDistanceExtractor_delete(IntPtr nativeObj);
  54. #endif
  55. }
  56. }