HOCRKnn.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. /***********************************************************
  2. * File generated by the HALCON-Compiler hcomp version 20.11
  3. * Usage: Interface to C++
  4. *
  5. * Software by: MVTec Software GmbH, www.mvtec.com
  6. ***********************************************************/
  7. #ifndef HCPP_HOCRKNN
  8. #define HCPP_HOCRKNN
  9. namespace HalconCpp
  10. {
  11. // Represents an instance of a k-NearestNeighbor OCR classifier.
  12. class LIntExport HOCRKnn : public HHandle
  13. {
  14. public:
  15. // Create an uninitialized instance
  16. HOCRKnn():HHandle() {}
  17. // Copy constructor
  18. HOCRKnn(const HOCRKnn& source) : HHandle(source) {}
  19. // Copy constructor
  20. HOCRKnn(const HHandle& handle);
  21. // Create HOCRKnn from handle, taking ownership
  22. explicit HOCRKnn(Hlong handle);
  23. bool operator==(const HHandle& obj) const
  24. {
  25. return HHandleBase::operator==(obj);
  26. }
  27. bool operator!=(const HHandle& obj) const
  28. {
  29. return HHandleBase::operator!=(obj);
  30. }
  31. protected:
  32. // Verify matching semantic type ('ocr_knn')!
  33. virtual void AssertType(Hphandle handle) const;
  34. public:
  35. // Deep copy of all data represented by this object instance
  36. HOCRKnn Clone() const;
  37. /*****************************************************************************
  38. * Operator-based class constructors
  39. *****************************************************************************/
  40. // read_ocr_class_knn: Read an OCR classifier from a file.
  41. explicit HOCRKnn(const HString& FileName);
  42. // read_ocr_class_knn: Read an OCR classifier from a file.
  43. explicit HOCRKnn(const char* FileName);
  44. #ifdef _WIN32
  45. // read_ocr_class_knn: Read an OCR classifier from a file.
  46. explicit HOCRKnn(const wchar_t* FileName);
  47. #endif
  48. // create_ocr_class_knn: Create an OCR classifier using a k-Nearest Neighbor (k-NN) classifier.
  49. explicit HOCRKnn(Hlong WidthCharacter, Hlong HeightCharacter, const HString& Interpolation, const HTuple& Features, const HTuple& Characters, const HTuple& GenParamName, const HTuple& GenParamValue);
  50. // create_ocr_class_knn: Create an OCR classifier using a k-Nearest Neighbor (k-NN) classifier.
  51. explicit HOCRKnn(Hlong WidthCharacter, Hlong HeightCharacter, const HString& Interpolation, const HString& Features, const HTuple& Characters, const HTuple& GenParamName, const HTuple& GenParamValue);
  52. // create_ocr_class_knn: Create an OCR classifier using a k-Nearest Neighbor (k-NN) classifier.
  53. explicit HOCRKnn(Hlong WidthCharacter, Hlong HeightCharacter, const char* Interpolation, const char* Features, const HTuple& Characters, const HTuple& GenParamName, const HTuple& GenParamValue);
  54. #ifdef _WIN32
  55. // create_ocr_class_knn: Create an OCR classifier using a k-Nearest Neighbor (k-NN) classifier.
  56. explicit HOCRKnn(Hlong WidthCharacter, Hlong HeightCharacter, const wchar_t* Interpolation, const wchar_t* Features, const HTuple& Characters, const HTuple& GenParamName, const HTuple& GenParamValue);
  57. #endif
  58. /***************************************************************************
  59. * Operators *
  60. ***************************************************************************/
  61. // Classify a related group of characters with an OCR classifier.
  62. HTuple DoOcrWordKnn(const HRegion& Character, const HImage& Image, const HString& Expression, Hlong NumAlternatives, Hlong NumCorrections, HTuple* Confidence, HString* Word, double* Score) const;
  63. // Classify a related group of characters with an OCR classifier.
  64. HString DoOcrWordKnn(const HRegion& Character, const HImage& Image, const HString& Expression, Hlong NumAlternatives, Hlong NumCorrections, double* Confidence, HString* Word, double* Score) const;
  65. // Classify a related group of characters with an OCR classifier.
  66. HString DoOcrWordKnn(const HRegion& Character, const HImage& Image, const char* Expression, Hlong NumAlternatives, Hlong NumCorrections, double* Confidence, HString* Word, double* Score) const;
  67. #ifdef _WIN32
  68. // Classify a related group of characters with an OCR classifier.
  69. HString DoOcrWordKnn(const HRegion& Character, const HImage& Image, const wchar_t* Expression, Hlong NumAlternatives, Hlong NumCorrections, double* Confidence, HString* Word, double* Score) const;
  70. #endif
  71. // Deserialize a serialized k-NN-based OCR classifier.
  72. void DeserializeOcrClassKnn(const HSerializedItem& SerializedItemHandle);
  73. // Serialize a k-NN-based OCR classifier.
  74. HSerializedItem SerializeOcrClassKnn() const;
  75. // Read an OCR classifier from a file.
  76. void ReadOcrClassKnn(const HString& FileName);
  77. // Read an OCR classifier from a file.
  78. void ReadOcrClassKnn(const char* FileName);
  79. #ifdef _WIN32
  80. // Read an OCR classifier from a file.
  81. void ReadOcrClassKnn(const wchar_t* FileName);
  82. #endif
  83. // Write a k-NN classifier for an OCR task to a file.
  84. void WriteOcrClassKnn(const HString& FileName) const;
  85. // Write a k-NN classifier for an OCR task to a file.
  86. void WriteOcrClassKnn(const char* FileName) const;
  87. #ifdef _WIN32
  88. // Write a k-NN classifier for an OCR task to a file.
  89. void WriteOcrClassKnn(const wchar_t* FileName) const;
  90. #endif
  91. // Clear an OCR classifier.
  92. void ClearOcrClassKnn() const;
  93. // Create an OCR classifier using a k-Nearest Neighbor (k-NN) classifier.
  94. void CreateOcrClassKnn(Hlong WidthCharacter, Hlong HeightCharacter, const HString& Interpolation, const HTuple& Features, const HTuple& Characters, const HTuple& GenParamName, const HTuple& GenParamValue);
  95. // Create an OCR classifier using a k-Nearest Neighbor (k-NN) classifier.
  96. void CreateOcrClassKnn(Hlong WidthCharacter, Hlong HeightCharacter, const HString& Interpolation, const HString& Features, const HTuple& Characters, const HTuple& GenParamName, const HTuple& GenParamValue);
  97. // Create an OCR classifier using a k-Nearest Neighbor (k-NN) classifier.
  98. void CreateOcrClassKnn(Hlong WidthCharacter, Hlong HeightCharacter, const char* Interpolation, const char* Features, const HTuple& Characters, const HTuple& GenParamName, const HTuple& GenParamValue);
  99. #ifdef _WIN32
  100. // Create an OCR classifier using a k-Nearest Neighbor (k-NN) classifier.
  101. void CreateOcrClassKnn(Hlong WidthCharacter, Hlong HeightCharacter, const wchar_t* Interpolation, const wchar_t* Features, const HTuple& Characters, const HTuple& GenParamName, const HTuple& GenParamValue);
  102. #endif
  103. // Trains an k-NN classifier for an OCR task.
  104. void TrainfOcrClassKnn(const HTuple& TrainingFile, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  105. // Trains an k-NN classifier for an OCR task.
  106. void TrainfOcrClassKnn(const HString& TrainingFile, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  107. // Trains an k-NN classifier for an OCR task.
  108. void TrainfOcrClassKnn(const char* TrainingFile, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  109. #ifdef _WIN32
  110. // Trains an k-NN classifier for an OCR task.
  111. void TrainfOcrClassKnn(const wchar_t* TrainingFile, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  112. #endif
  113. // Compute the features of a character.
  114. HTuple GetFeaturesOcrClassKnn(const HImage& Character, const HString& Transform) const;
  115. // Compute the features of a character.
  116. HTuple GetFeaturesOcrClassKnn(const HImage& Character, const char* Transform) const;
  117. #ifdef _WIN32
  118. // Compute the features of a character.
  119. HTuple GetFeaturesOcrClassKnn(const HImage& Character, const wchar_t* Transform) const;
  120. #endif
  121. // Return the parameters of an OCR classifier.
  122. void GetParamsOcrClassKnn(Hlong* WidthCharacter, Hlong* HeightCharacter, HString* Interpolation, HTuple* Features, HTuple* Characters, HString* Preprocessing, Hlong* NumTrees) const;
  123. // Return the parameters of an OCR classifier.
  124. void GetParamsOcrClassKnn(Hlong* WidthCharacter, Hlong* HeightCharacter, HString* Interpolation, HString* Features, HTuple* Characters, HString* Preprocessing, Hlong* NumTrees) const;
  125. // Classify multiple characters with an k-NN classifier.
  126. HTuple DoOcrMultiClassKnn(const HRegion& Character, const HImage& Image, HTuple* Confidence) const;
  127. // Classify multiple characters with an k-NN classifier.
  128. HString DoOcrMultiClassKnn(const HRegion& Character, const HImage& Image, double* Confidence) const;
  129. // Classify a single character with an OCR classifier.
  130. HTuple DoOcrSingleClassKnn(const HRegion& Character, const HImage& Image, const HTuple& NumClasses, const HTuple& NumNeighbors, HTuple* Confidence) const;
  131. // Classify a single character with an OCR classifier.
  132. HString DoOcrSingleClassKnn(const HRegion& Character, const HImage& Image, const HTuple& NumClasses, const HTuple& NumNeighbors, double* Confidence) const;
  133. // Select an optimal combination of features to classify OCR data.
  134. HTuple SelectFeatureSetTrainfKnn(const HTuple& TrainingFile, const HTuple& FeatureList, const HString& SelectionMethod, Hlong Width, Hlong Height, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score);
  135. // Select an optimal combination of features to classify OCR data.
  136. HTuple SelectFeatureSetTrainfKnn(const HString& TrainingFile, const HString& FeatureList, const HString& SelectionMethod, Hlong Width, Hlong Height, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score);
  137. // Select an optimal combination of features to classify OCR data.
  138. HTuple SelectFeatureSetTrainfKnn(const char* TrainingFile, const char* FeatureList, const char* SelectionMethod, Hlong Width, Hlong Height, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score);
  139. #ifdef _WIN32
  140. // Select an optimal combination of features to classify OCR data.
  141. HTuple SelectFeatureSetTrainfKnn(const wchar_t* TrainingFile, const wchar_t* FeatureList, const wchar_t* SelectionMethod, Hlong Width, Hlong Height, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score);
  142. #endif
  143. };
  144. // forward declarations and types for internal array implementation
  145. template<class T> class HSmartPtr;
  146. template<class T> class HHandleBaseArrayRef;
  147. typedef HHandleBaseArrayRef<HOCRKnn> HOCRKnnArrayRef;
  148. typedef HSmartPtr< HOCRKnnArrayRef > HOCRKnnArrayPtr;
  149. // Represents multiple tool instances
  150. class LIntExport HOCRKnnArray : public HHandleBaseArray
  151. {
  152. public:
  153. // Create empty array
  154. HOCRKnnArray();
  155. // Create array from native array of tool instances
  156. HOCRKnnArray(HOCRKnn* classes, Hlong length);
  157. // Copy constructor
  158. HOCRKnnArray(const HOCRKnnArray &tool_array);
  159. // Destructor
  160. virtual ~HOCRKnnArray();
  161. // Assignment operator
  162. HOCRKnnArray &operator=(const HOCRKnnArray &tool_array);
  163. // Clears array and all tool instances
  164. virtual void Clear();
  165. // Get array of native tool instances
  166. const HOCRKnn* Tools() const;
  167. // Get number of tools
  168. virtual Hlong Length() const;
  169. // Create tool array from tuple of handles
  170. virtual void SetFromTuple(const HTuple& handles);
  171. // Get tuple of handles for tool array
  172. virtual HTuple ConvertToTuple() const;
  173. protected:
  174. // Smart pointer to internal data container
  175. HOCRKnnArrayPtr *mArrayPtr;
  176. };
  177. }
  178. #endif