213 explicit operator bool()
254 const uint8_t identifier,
255 const uint16_t width,
256 const uint16_t height,
260 const std::vector<std::byte> &pixels);
266 uint8_t identifier{};
297 std::vector<std::byte> pixels{};
318 const uint32_t x = {},
319 const uint32_t y = {});
323 const Coordinate &rhs)
328 const Coordinate &rhs)
333 const Coordinate &rhs)
338 const Coordinate &rhs)
343 const Coordinate &rhs)
348 const Coordinate &rhs)
388 const uint16_t theta = {},
402 std::optional<uint16_t> direction{};
417 const std::optional<uint16_t> &direction = {});
431 std::optional<std::tuple<std::optional<uint16_t>,
432 std::optional<uint16_t>, std::optional<uint16_t>>>
448 const std::optional<std::tuple<std::optional<uint16_t>,
449 std::optional<uint16_t>, std::optional<uint16_t>>>
504 std::string probeIdentifier{};
506 uint8_t probeInputIdentifier{};
518 std::string referenceIdentifier{};
523 uint8_t referenceInputIdentifier{};
553 const std::string &probeIdentifier = {},
554 const uint8_t probeInputIdentifier = {},
555 const Minutia &probeMinutia = {},
556 const std::string &referenceIdentifier = {},
557 const uint8_t referenceInputIdentifier = {},
558 const Minutia &referenceMinutia = {});
568 std::vector<std::vector<Correspondence>>
580 std::optional<bool> complex{};
629 std::vector<Coordinate> region{};
648 uint8_t identifier{};
669 std::optional<int16_t> orientation{};
671 std::optional<std::vector<ProcessingMethod>> lpm{};
673 std::optional<ValueAssessment> valueAssessment{};
675 std::optional<Substrate> lsb{};
677 std::optional<PatternClassification> pat{};
682 std::optional<bool> plr{};
687 std::optional<bool> trv{};
699 std::optional<std::vector<Core>> cores{};
710 std::optional<std::vector<Delta>> deltas{};
726 std::optional<std::vector<Minutia>> minutiae{};
738 std::optional<std::vector<Coordinate>> roi{};
754 std::optional<std::vector<RidgeQualityRegion>> rqm{};
765 std::optional<bool> complex{};
782 std::string candidateIdentifier{};
785 uint8_t inputIdentifier{};
788 std::optional<EFS> efs{};
791 std::optional<uint8_t> imageQuality{};
800 std::vector<std::byte> data{};
825 std::optional<std::vector<TemplateData>> extractedData{};
832 std::string identifier{};
850 const std::string &identifier = {},
852 const double similarity = {});
856 const Candidate &rhs)
861 const Candidate &rhs)
866 const Candidate &rhs)
871 const Candidate &rhs)
876 const Candidate &rhs)
881 const Candidate &rhs)
905 std::vector<Candidate> candidateList{};
931 std::optional<CorrespondenceResult::Data> correspondence{};
947 std::filesystem::path archive{};
966 std::filesystem::path manifest{};
978 std::optional<uint16_t> algorithm{};
985 std::optional<std::string> marketing{};
987 std::optional<CBEFFIdentifier> cbeff{};
1028 const uint16_t versionNumber,
1029 const std::string &libraryIdentifier,
1030 const std::optional<ProductIdentifier>
1031 &exemplarAlgorithmIdentifier = {},
1032 const std::optional<ProductIdentifier>
1033 &latentAlgorithmIdentifier = {});
1039 uint16_t versionNumber{};
1046 std::string libraryIdentifier{};
1052 std::optional<ProductIdentifier>
1053 exemplarAlgorithmIdentifier{};
1058 std::optional<ProductIdentifier>
1059 latentAlgorithmIdentifier{};
1075 SubmissionIdentification
1131 const std::string &identifier,
1132 const std::vector<std::tuple<
1133 std::optional<Image>, std::optional<EFS>>> &samples)
1176 std::vector<TemplateData>>>
1219 const std::filesystem::path &databaseDirectory,
1220 const uint64_t maxSize)
1248 std::shared_ptr<ExtractionInterface>
1250 const std::filesystem::path &configurationDirectory);
1286 std::optional<ProductIdentifier>
1350 const uint64_t maxSize) = 0;
1403 const std::vector<std::byte> &probeTemplate,
1404 const uint16_t maxCandidates)
1448 std::optional<CorrespondenceResult>
1450 const std::vector<std::byte> &probeTemplate,
1493 std::shared_ptr<SearchInterface>
1495 const std::filesystem::path &configurationDirectory,
1496 const std::filesystem::path &databaseDirectory);
1515 #ifdef NIST_EXTERN_API_VERSION
1535 static_assert(std::is_same_v<std::underlying_type_t<std::byte>,
1536 uint8_t>,
"std::byte not represented as unsigned 8 bit type");
Interface for database search implemented by participant.
virtual std::optional< ProductIdentifier > getIdentification() const =0
Obtain identification and version information for the search portion of this submission.
virtual std::optional< CorrespondenceResult > extractCorrespondence(const std::vector< std::byte > &probeTemplate, const SearchResult &searchResult) const =0
Extract pairs of corresponding Minutia between TemplateType::Probe and TemplateType::Reference templa...
virtual ~SearchInterface()
virtual ReturnStatus load(const uint64_t maxSize)=0
Load reference database into memory.
static std::shared_ptr< SearchInterface > getImplementation(const std::filesystem::path &configurationDirectory, const std::filesystem::path &databaseDirectory)
Obtain a managed pointer to an object implementing SearchInterface.
virtual SearchResult search(const std::vector< std::byte > &probeTemplate, const uint16_t maxCandidates) const =0
Search the reference database for the samples represented in probeTemplate.
RidgeQuality
Local ridge quality codes from ANSI/NIST-ITL 1-2011 (2015).
@ DebatableMinutiae
Continuity of ridge flow is certain; minutiae are debatable.
@ DebatableRidgeFlow
Continuity of ridge flow is uncertain.
@ DefinitiveRidgeEdges
Ridge edges, minutiae, and ridge flow are obvious and unambiguous; pores are either debatable or not ...
@ DefinitivePores
Pores and ridge edges are obvious and unambiguous.
@ Background
No ridge information.
@ DefinitiveMinutiae
Minutiae and ridge flow are obvious and unambiguous; ridge edges are debatable.
Substrate
EFS substrate codes from ANSI/NIST-ITL 1-2011 (2015).
MinutiaType
Types of minutiae.
ValueAssessment
EFS value assessment codes from ANSI/NIST-ITL 1-2011 (2015).
FrictionRidgeCaptureTechnology
Capture device codes from ANSI/NIST-ITL 1-2011 (2015).
Impression
Friction ridge impression types from ANSI/NIST-ITL 1-2011 (2015).
@ RolledContactlessMoving
@ PlainContactlessStationary
@ RolledContactlessStationary
FrictionRidgeGeneralizedPosition
Friction positions codes from ANSI/NIST-ITL 1-2011 (2015).
@ LeftFullPalmAndWritersPalm
@ RightFullPalmAndWritersPalm
uint16_t API_PATCH_VERSION
API patch version number.
ProcessingMethod
EFS processing method codes from ANSI/NIST-ITL 1-2011 (2015).
uint16_t API_MINOR_VERSION
API minor version number.
uint16_t API_MAJOR_VERSION
API major version number.
TemplateType
Types of templates created by this interface.
@ Reference
Template to be added to a reference database.
@ Probe
Template to be used as probe in a search.
PatternClassification
Classification of friction ridge structure.
CorrespondenceType
Types of correspondence.
@ Definite
Probe feature definitely corresponds.
@ OutOfRegion
Probe feature lies outside the reference.
@ Possible
Probe feature possibly/debatably corresponds.
@ DoesNotExist
Probe feature definitely does not exist.
@ UnclearArea
Probe feature lies in an area experiencing quality issues in the reference.
Elements of a candidate list.
Pixel location in an image.
Singular point of focus of innermost recurving ridge.
Relationship between probe and reference features.
Information about a probe/reference relationship.
Output from extracting data from a search.
Output from extracting features into a template .
Singular point of ridge divergence.
Collection of ANSI/NIST-ITL 1-2011 (Update: 2015) Extended Feature Set fields understood by ELFT.
Data and metadata for an image.
Friction ridge feature details.
CBEFF information registered with and assigned by IBIA.
Identifying details about algorithm components for documentation.
Information about the result of calling an ELFT API function.
std::optional< std::string > message
Information about the result.
Result result
The result of the operation.
Result
Possible outcomes when performing operations.
Region defined in a map of ridge quality/confidence.
The results of a searching a database.
Collection of templates on disk.
Information possibly stored in a template.