OCRBeamSearchDecoder.cs 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. #if !UNITY_WSA_10_0
  2. using OpenCVForUnity.CoreModule;
  3. using OpenCVForUnity.UtilsModule;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Runtime.InteropServices;
  7. namespace OpenCVForUnity.TextModule {
  8. // C++: class OCRBeamSearchDecoder
  9. //javadoc: OCRBeamSearchDecoder
  10. public class OCRBeamSearchDecoder : BaseOCR {
  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. text_OCRBeamSearchDecoder_delete(nativeObj);
  19. nativeObj = IntPtr.Zero;
  20. }
  21. } finally {
  22. base.Dispose(disposing);
  23. }
  24. #else
  25. return;
  26. #endif
  27. }
  28. protected internal OCRBeamSearchDecoder(IntPtr addr)
  29. : base(addr) {
  30. }
  31. // internal usage only
  32. public static new OCRBeamSearchDecoder __fromPtr__(IntPtr addr) {
  33. return new OCRBeamSearchDecoder(addr);
  34. }
  35. //
  36. // C++: static Ptr_OCRBeamSearchDecoder cv::text::OCRBeamSearchDecoder::create(Ptr_OCRBeamSearchDecoder_ClassifierCallback classifier, String vocabulary, Mat transition_probabilities_table, Mat emission_probabilities_table, int mode = OCR_DECODER_VITERBI, int beam_size = 500)
  37. //
  38. // Unknown type 'Ptr_OCRBeamSearchDecoder_ClassifierCallback' (I), skipping the function
  39. //
  40. // C++: static Ptr_OCRBeamSearchDecoder cv::text::OCRBeamSearchDecoder::create(String filename, String vocabulary, Mat transition_probabilities_table, Mat emission_probabilities_table, int mode = OCR_DECODER_VITERBI, int beam_size = 500)
  41. //
  42. //javadoc: OCRBeamSearchDecoder::create(filename, vocabulary, transition_probabilities_table, emission_probabilities_table, mode, beam_size)
  43. public static OCRBeamSearchDecoder create(string filename, string vocabulary, Mat transition_probabilities_table, Mat emission_probabilities_table, int mode, int beam_size) {
  44. if (transition_probabilities_table != null)
  45. transition_probabilities_table.ThrowIfDisposed();
  46. if (emission_probabilities_table != null)
  47. emission_probabilities_table.ThrowIfDisposed();
  48. #if (UNITY_ANDROID && !UNITY_EDITOR)
  49. OCRBeamSearchDecoder retVal = OCRBeamSearchDecoder.__fromPtr__(text_OCRBeamSearchDecoder_create_10(filename, vocabulary, transition_probabilities_table.nativeObj, emission_probabilities_table.nativeObj, mode, beam_size));
  50. return retVal;
  51. #else
  52. return null;
  53. #endif
  54. }
  55. //javadoc: OCRBeamSearchDecoder::create(filename, vocabulary, transition_probabilities_table, emission_probabilities_table, mode)
  56. public static OCRBeamSearchDecoder create(string filename, string vocabulary, Mat transition_probabilities_table, Mat emission_probabilities_table, int mode) {
  57. if (transition_probabilities_table != null)
  58. transition_probabilities_table.ThrowIfDisposed();
  59. if (emission_probabilities_table != null)
  60. emission_probabilities_table.ThrowIfDisposed();
  61. #if (UNITY_ANDROID && !UNITY_EDITOR)
  62. OCRBeamSearchDecoder retVal = OCRBeamSearchDecoder.__fromPtr__(text_OCRBeamSearchDecoder_create_11(filename, vocabulary, transition_probabilities_table.nativeObj, emission_probabilities_table.nativeObj, mode));
  63. return retVal;
  64. #else
  65. return null;
  66. #endif
  67. }
  68. //javadoc: OCRBeamSearchDecoder::create(filename, vocabulary, transition_probabilities_table, emission_probabilities_table)
  69. public static OCRBeamSearchDecoder create(string filename, string vocabulary, Mat transition_probabilities_table, Mat emission_probabilities_table) {
  70. if (transition_probabilities_table != null)
  71. transition_probabilities_table.ThrowIfDisposed();
  72. if (emission_probabilities_table != null)
  73. emission_probabilities_table.ThrowIfDisposed();
  74. #if (UNITY_ANDROID && !UNITY_EDITOR)
  75. OCRBeamSearchDecoder retVal = OCRBeamSearchDecoder.__fromPtr__(text_OCRBeamSearchDecoder_create_12(filename, vocabulary, transition_probabilities_table.nativeObj, emission_probabilities_table.nativeObj));
  76. return retVal;
  77. #else
  78. return null;
  79. #endif
  80. }
  81. //
  82. // C++: String cv::text::OCRBeamSearchDecoder::run(Mat image, Mat mask, int min_confidence, int component_level = 0)
  83. //
  84. //javadoc: OCRBeamSearchDecoder::run(image, mask, min_confidence, component_level)
  85. public string run(Mat image, Mat mask, int min_confidence, int component_level) {
  86. ThrowIfDisposed();
  87. if (image != null)
  88. image.ThrowIfDisposed();
  89. if (mask != null)
  90. mask.ThrowIfDisposed();
  91. #if (UNITY_ANDROID && !UNITY_EDITOR)
  92. string retVal = Marshal.PtrToStringAnsi(text_OCRBeamSearchDecoder_run_10(nativeObj, image.nativeObj, mask.nativeObj, min_confidence, component_level));
  93. return retVal;
  94. #else
  95. return null;
  96. #endif
  97. }
  98. //javadoc: OCRBeamSearchDecoder::run(image, mask, min_confidence)
  99. public string run(Mat image, Mat mask, int min_confidence) {
  100. ThrowIfDisposed();
  101. if (image != null)
  102. image.ThrowIfDisposed();
  103. if (mask != null)
  104. mask.ThrowIfDisposed();
  105. #if (UNITY_ANDROID && !UNITY_EDITOR)
  106. string retVal = Marshal.PtrToStringAnsi(text_OCRBeamSearchDecoder_run_11(nativeObj, image.nativeObj, mask.nativeObj, min_confidence));
  107. return retVal;
  108. #else
  109. return null;
  110. #endif
  111. }
  112. //
  113. // C++: String cv::text::OCRBeamSearchDecoder::run(Mat image, int min_confidence, int component_level = 0)
  114. //
  115. //javadoc: OCRBeamSearchDecoder::run(image, min_confidence, component_level)
  116. public string run(Mat image, int min_confidence, int component_level) {
  117. ThrowIfDisposed();
  118. if (image != null)
  119. image.ThrowIfDisposed();
  120. #if (UNITY_ANDROID && !UNITY_EDITOR)
  121. string retVal = Marshal.PtrToStringAnsi(text_OCRBeamSearchDecoder_run_12(nativeObj, image.nativeObj, min_confidence, component_level));
  122. return retVal;
  123. #else
  124. return null;
  125. #endif
  126. }
  127. //javadoc: OCRBeamSearchDecoder::run(image, min_confidence)
  128. public string run(Mat image, int min_confidence) {
  129. ThrowIfDisposed();
  130. if (image != null)
  131. image.ThrowIfDisposed();
  132. #if (UNITY_ANDROID && !UNITY_EDITOR)
  133. string retVal = Marshal.PtrToStringAnsi(text_OCRBeamSearchDecoder_run_13(nativeObj, image.nativeObj, min_confidence));
  134. return retVal;
  135. #else
  136. return null;
  137. #endif
  138. }
  139. #if (UNITY_ANDROID && !UNITY_EDITOR)
  140. const string LIBNAME = "opencvforunity";
  141. // C++: static Ptr_OCRBeamSearchDecoder cv::text::OCRBeamSearchDecoder::create(String filename, String vocabulary, Mat transition_probabilities_table, Mat emission_probabilities_table, int mode = OCR_DECODER_VITERBI, int beam_size = 500)
  142. [DllImport(LIBNAME)]
  143. private static extern IntPtr text_OCRBeamSearchDecoder_create_10(string filename, string vocabulary, IntPtr transition_probabilities_table_nativeObj, IntPtr emission_probabilities_table_nativeObj, int mode, int beam_size);
  144. [DllImport(LIBNAME)]
  145. private static extern IntPtr text_OCRBeamSearchDecoder_create_11(string filename, string vocabulary, IntPtr transition_probabilities_table_nativeObj, IntPtr emission_probabilities_table_nativeObj, int mode);
  146. [DllImport(LIBNAME)]
  147. private static extern IntPtr text_OCRBeamSearchDecoder_create_12(string filename, string vocabulary, IntPtr transition_probabilities_table_nativeObj, IntPtr emission_probabilities_table_nativeObj);
  148. // C++: String cv::text::OCRBeamSearchDecoder::run(Mat image, Mat mask, int min_confidence, int component_level = 0)
  149. [DllImport(LIBNAME)]
  150. private static extern IntPtr text_OCRBeamSearchDecoder_run_10(IntPtr nativeObj, IntPtr image_nativeObj, IntPtr mask_nativeObj, int min_confidence, int component_level);
  151. [DllImport(LIBNAME)]
  152. private static extern IntPtr text_OCRBeamSearchDecoder_run_11(IntPtr nativeObj, IntPtr image_nativeObj, IntPtr mask_nativeObj, int min_confidence);
  153. // C++: String cv::text::OCRBeamSearchDecoder::run(Mat image, int min_confidence, int component_level = 0)
  154. [DllImport(LIBNAME)]
  155. private static extern IntPtr text_OCRBeamSearchDecoder_run_12(IntPtr nativeObj, IntPtr image_nativeObj, int min_confidence, int component_level);
  156. [DllImport(LIBNAME)]
  157. private static extern IntPtr text_OCRBeamSearchDecoder_run_13(IntPtr nativeObj, IntPtr image_nativeObj, int min_confidence);
  158. // native support for java finalize()
  159. [DllImport(LIBNAME)]
  160. private static extern void text_OCRBeamSearchDecoder_delete(IntPtr nativeObj);
  161. #endif
  162. }
  163. }
  164. #endif