OCRHMMDecoder.cs 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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 OCRHMMDecoder
  9. //javadoc: OCRHMMDecoder
  10. public class OCRHMMDecoder : 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_OCRHMMDecoder_delete(nativeObj);
  19. nativeObj = IntPtr.Zero;
  20. }
  21. } finally {
  22. base.Dispose(disposing);
  23. }
  24. #else
  25. return;
  26. #endif
  27. }
  28. protected internal OCRHMMDecoder(IntPtr addr)
  29. : base(addr) {
  30. }
  31. // internal usage only
  32. public static new OCRHMMDecoder __fromPtr__(IntPtr addr) {
  33. return new OCRHMMDecoder(addr);
  34. }
  35. //
  36. // C++: static Ptr_OCRHMMDecoder cv::text::OCRHMMDecoder::create(Ptr_OCRHMMDecoder_ClassifierCallback classifier, String vocabulary, Mat transition_probabilities_table, Mat emission_probabilities_table, int mode = OCR_DECODER_VITERBI)
  37. //
  38. // Unknown type 'Ptr_OCRHMMDecoder_ClassifierCallback' (I), skipping the function
  39. //
  40. // C++: static Ptr_OCRHMMDecoder cv::text::OCRHMMDecoder::create(String filename, String vocabulary, Mat transition_probabilities_table, Mat emission_probabilities_table, int mode = OCR_DECODER_VITERBI, int classifier = OCR_KNN_CLASSIFIER)
  41. //
  42. //javadoc: OCRHMMDecoder::create(filename, vocabulary, transition_probabilities_table, emission_probabilities_table, mode, classifier)
  43. public static OCRHMMDecoder create(string filename, string vocabulary, Mat transition_probabilities_table, Mat emission_probabilities_table, int mode, int classifier) {
  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. OCRHMMDecoder retVal = OCRHMMDecoder.__fromPtr__(text_OCRHMMDecoder_create_10(filename, vocabulary, transition_probabilities_table.nativeObj, emission_probabilities_table.nativeObj, mode, classifier));
  50. return retVal;
  51. #else
  52. return null;
  53. #endif
  54. }
  55. //javadoc: OCRHMMDecoder::create(filename, vocabulary, transition_probabilities_table, emission_probabilities_table, mode)
  56. public static OCRHMMDecoder 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. OCRHMMDecoder retVal = OCRHMMDecoder.__fromPtr__(text_OCRHMMDecoder_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: OCRHMMDecoder::create(filename, vocabulary, transition_probabilities_table, emission_probabilities_table)
  69. public static OCRHMMDecoder 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. OCRHMMDecoder retVal = OCRHMMDecoder.__fromPtr__(text_OCRHMMDecoder_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::OCRHMMDecoder::run(Mat image, Mat mask, int min_confidence, int component_level = 0)
  83. //
  84. //javadoc: OCRHMMDecoder::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_OCRHMMDecoder_run_10(nativeObj, image.nativeObj, mask.nativeObj, min_confidence, component_level));
  93. return retVal;
  94. #else
  95. return null;
  96. #endif
  97. }
  98. //javadoc: OCRHMMDecoder::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_OCRHMMDecoder_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::OCRHMMDecoder::run(Mat image, int min_confidence, int component_level = 0)
  114. //
  115. //javadoc: OCRHMMDecoder::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_OCRHMMDecoder_run_12(nativeObj, image.nativeObj, min_confidence, component_level));
  122. return retVal;
  123. #else
  124. return null;
  125. #endif
  126. }
  127. //javadoc: OCRHMMDecoder::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_OCRHMMDecoder_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_OCRHMMDecoder cv::text::OCRHMMDecoder::create(String filename, String vocabulary, Mat transition_probabilities_table, Mat emission_probabilities_table, int mode = OCR_DECODER_VITERBI, int classifier = OCR_KNN_CLASSIFIER)
  142. [DllImport(LIBNAME)]
  143. private static extern IntPtr text_OCRHMMDecoder_create_10(string filename, string vocabulary, IntPtr transition_probabilities_table_nativeObj, IntPtr emission_probabilities_table_nativeObj, int mode, int classifier);
  144. [DllImport(LIBNAME)]
  145. private static extern IntPtr text_OCRHMMDecoder_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_OCRHMMDecoder_create_12(string filename, string vocabulary, IntPtr transition_probabilities_table_nativeObj, IntPtr emission_probabilities_table_nativeObj);
  148. // C++: String cv::text::OCRHMMDecoder::run(Mat image, Mat mask, int min_confidence, int component_level = 0)
  149. [DllImport(LIBNAME)]
  150. private static extern IntPtr text_OCRHMMDecoder_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_OCRHMMDecoder_run_11(IntPtr nativeObj, IntPtr image_nativeObj, IntPtr mask_nativeObj, int min_confidence);
  153. // C++: String cv::text::OCRHMMDecoder::run(Mat image, int min_confidence, int component_level = 0)
  154. [DllImport(LIBNAME)]
  155. private static extern IntPtr text_OCRHMMDecoder_run_12(IntPtr nativeObj, IntPtr image_nativeObj, int min_confidence, int component_level);
  156. [DllImport(LIBNAME)]
  157. private static extern IntPtr text_OCRHMMDecoder_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_OCRHMMDecoder_delete(IntPtr nativeObj);
  161. #endif
  162. }
  163. }
  164. #endif