matcher.h
См. документацию.
1 
6 #ifndef _MATCHER_H_
7 #define _MATCHER_H_
8 
9 #pragma once
10 
11 #include "config.h"
12 #include "extractor.h"
13 #include "export.h"
14 
15 
16 namespace Diametrix {
17 
23  class TemplateDB {
24  public:
31  virtual void add(const std::shared_ptr<Diametrix::Template>& template0, const long long id) = 0;
32 
33  virtual void clear() = 0;
34  virtual size_t size() = 0;
35  virtual size_t maxSize() = 0;
36 
37  virtual void getLoadedIDs(std::vector<long long>& ids) = 0;
38  virtual bool isLoaded(const long long id) = 0;
39 
40  virtual void save(const std::string& path) = 0;
41  virtual void load(const std::string& path) = 0;
42 
43  virtual ~TemplateDB() = default;
44  };
45 
53  std::shared_ptr<Diametrix::TemplateDB> DMXSDK_API constructTemplateDB(size_t maxSize, int batchSize = 1);
54 
55 
61  class Matcher {
62  public:
69  virtual float match(const std::shared_ptr<Diametrix::Template>& template0,
70  const std::shared_ptr<Diametrix::Template>& template1) = 0;
71 
72  virtual void matchN(const std::vector<std::shared_ptr<Diametrix::Template>>& templates,
73  std::shared_ptr<Diametrix::TemplateDB>& db,
74  std::vector<float*>& results, long long * ids = nullptr) = 0;
75 
85  virtual void matchK(const std::vector<std::shared_ptr<Diametrix::Template>>& templates,
86  std::shared_ptr<Diametrix::TemplateDB>& db,
87  unsigned int K, float threshold,
88  std::vector<std::vector<std::pair<long long,float>>>& results) = 0;
89 
90  virtual ~Matcher() = default;
91 
92  };
93 
101  std::unique_ptr<Diametrix::Matcher> DMXSDK_API createMatcher(const std::shared_ptr<Diametrix::Config>& cfg);
102 }
103 
104 
105 #endif /* _MATCHER_H_ */
Матчер Сравнивает шаблоны отпечатков
Definition: matcher.h:61
virtual float match(const std::shared_ptr< Diametrix::Template > &template0, const std::shared_ptr< Diametrix::Template > &template1)=0
virtual void matchK(const std::vector< std::shared_ptr< Diametrix::Template >> &templates, std::shared_ptr< Diametrix::TemplateDB > &db, unsigned int K, float threshold, std::vector< std::vector< std::pair< long long, float >>> &results)=0
Галерея шаблонов Используется для хранения в памяти шаблонов вместе с их идентификаторами
Definition: matcher.h:23
virtual bool isLoaded(const long long id)=0
Проверяет, загружен ли шаблон с конкретным идентификатором
virtual void add(const std::shared_ptr< Diametrix::Template > &template0, const long long id)=0
virtual void save(const std::string &path)=0
Сохраняет Галерею на диск
virtual void load(const std::string &path)=0
Загружает Галерею с диска
virtual size_t size()=0
Количество загруженных шаблонов в Галерее
virtual size_t maxSize()=0
Максимально возможное количестов шаблонов в Галерее
virtual void clear()=0
Очищает Галерею
virtual void getLoadedIDs(std::vector< long long > &ids)=0
Возвращает идентификаторы загруженных шаблонов
Заголовочный файл с описанием конфигурации
Заголовочный файл с описаниями шаблонов отпечатков и построителя шаблонов отпечатков
std::shared_ptr< Diametrix::TemplateDB > DMXSDK_API constructTemplateDB(size_t maxSize, int batchSize=1)
std::unique_ptr< Diametrix::Matcher > DMXSDK_API createMatcher(const std::shared_ptr< Diametrix::Config > &cfg)
Пространство имен, содержащее все символы Diametrix SDK.
Definition: config.h:22