Identifier.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include "PageMatcher.h"
  3. #include "ResultReader.h"
  4. #include <boost/smart_ptr.hpp>
  5. // 下列 ifdef 块是创建使从 DLL 导出更简单的
  6. // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 IDENTIFIER_EXPORTS
  7. // 符号编译的。在使用此 DLL 的
  8. // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
  9. // IDENTIFIER_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
  10. // 符号视为是被导出的。
  11. #ifdef IDENTIFIER_EXPORTS
  12. #define IDENTIFIER_API __declspec(dllexport)
  13. #else
  14. #define IDENTIFIER_API __declspec(dllimport)
  15. #endif
  16. namespace identify{
  17. // 此类是从 Identifier.dll 导出的
  18. class IDENTIFIER_API CIdentifier {
  19. public:
  20. CIdentifier(void);
  21. ~CIdentifier(void);
  22. private:
  23. bool m_isMuBanLoaded;
  24. CPageMatcher pm;
  25. CResultReader rr;
  26. std::string m_strQr;
  27. bool m_bUseQr;
  28. boost::shared_ptr<const ISCH_Schema> m_schema;
  29. public:
  30. void SetUseQr(bool bUseQr, const std::string&strQr);
  31. int GetMubanPageCount();
  32. void LoadMuban2(const boost::shared_ptr<const ISCH_Schema>& schema);
  33. BOOL IsMubanLoaded(){ return m_isMuBanLoaded; }
  34. int Identify2(const IplImage* img, OMR_RESULT* out_result);
  35. int Identify3(const IplImage* img, int schema_index, const std::vector<Point2f>& muban, const std::vector<Point2f>& shijuan, OMR_RESULT* out_result);
  36. };
  37. IDENTIFIER_API int PraseQRCode_Normal2(IplImage* img, std::string & resultString);
  38. }