LHCompareAPI.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef LHCOMPAREAPI_H
  2. #define LHCOMPAREAPI_H
  3. #include <string>
  4. #include <vector>
  5. class QString;
  6. #pragma pack(1)
  7. struct CompareResult
  8. {
  9. double highest_similarity;
  10. double average_similarity;
  11. std::vector<std::vector<double>> full_offsets;
  12. std::vector<std::vector<double>> fragment_offsets;
  13. ~CompareResult() {
  14. full_offsets.clear();
  15. fragment_offsets.clear();
  16. }
  17. };
  18. #pragma pack()
  19. enum ChromaprintAlgorithm {
  20. CHROMAPRINT_ALGORITHM_TEST1 = 0,
  21. CHROMAPRINT_ALGORITHM_TEST2,
  22. CHROMAPRINT_ALGORITHM_TEST3,
  23. CHROMAPRINT_ALGORITHM_TEST4,
  24. CHROMAPRINT_ALGORITHM_TEST5,
  25. CHROMAPRINT_ALGORITHM_TEST2_2,
  26. CHROMAPRINT_ALGORITHM_TEST5_2,
  27. CHROMAPRINT_ALGORITHM_DEFAULT = CHROMAPRINT_ALGORITHM_TEST5_2,
  28. };
  29. /* 加载动态库 */
  30. bool LoadCompareLibrary();
  31. /* 比对函数 */
  32. CompareResult* LHCompare(const char *source_file, const char *target_file, double compare_sensitivity, ChromaprintAlgorithm algorithm = CHROMAPRINT_ALGORITHM_TEST5_2);
  33. /* 释放结果数据 */
  34. void LHFreeCompareResult(CompareResult* result);
  35. #endif // LHCOMPAREAPI_H