NIST Biometric Evaluation Framework
Software components for biometric technology evaluations
be_feature_minutiae.h
Go to the documentation of this file.
1/*
2 * This software was developed at the National Institute of Standards and
3 * Technology (NIST) by employees of the Federal Government in the course
4 * of their official duties. Pursuant to title 17 Section 105 of the
5 * United States Code, this software is not subject to copyright protection
6 * and is in the public domain. NIST assumes no responsibility whatsoever for
7 * its use by other parties, and makes no guarantees, expressed or implied,
8 * about its quality, reliability, or any other characteristic.
9 */
10
11#ifndef __BE_FEATURE_MINUTIAE_H__
12#define __BE_FEATURE_MINUTIAE_H__
13
14#include <iostream>
15#include <memory>
16#include <string>
17#include <vector>
18
19#include <be_error.h>
20#include <be_finger.h>
22#include <be_image.h>
23#include <be_memory_autoarray.h>
24
25namespace BiometricEvaluation
26{
27 namespace Feature
28 {
33 enum class MinutiaeFormat
34 {
35 AN2K7 = 0,
36 IAFIS,
37 Cogent,
39 Sagem,
40 NEC,
41 Identix,
42 M1
43 };
44
50 enum class MinutiaeType
51 {
52 RidgeEnding = 0,
56 Other
57 };
58
64 {
65 unsigned int index;
69 unsigned int theta;
71 unsigned int quality;
72 };
73 using MinutiaPoint = struct MinutiaPoint;
74 std::ostream& operator<< (std::ostream&,
75 const MinutiaPoint&);
76 using MinutiaPointSet = std::vector<MinutiaPoint>;
77
83 {
84 NonSpecific = 0,
85 FourNeighbor = 1,
86 EightNeighbor = 2,
87 Other = 3
88 };
89
97
104 int index_one,
105 int index_two,
106 int count = 0);
111 int count;
112 };
114 std::ostream& operator<< (std::ostream&,
115 const RidgeCountItem&);
116 using RidgeCountItemSet = std::vector<RidgeCountItem>;
117
126 struct CorePoint {
133 bool has_angle = false,
134 int angle = 0);
135
138 int angle;
139 };
140 using CorePoint = struct CorePoint;
141 std::ostream& operator<< (std::ostream&,const CorePoint&);
142 using CorePointSet = std::vector<CorePoint>;
143
152 struct DeltaPoint {
159 bool has_angle = false,
160 int angle1 = 0,
161 int angle2 = 0,
162 int angle3 = 0);
163
169 };
170 using DeltaPoint = struct DeltaPoint;
171 std::ostream& operator<< (std::ostream&,const DeltaPoint&);
172
173 using DeltaPointSet = std::vector<DeltaPoint>;
174
185 class Minutiae {
186 public:
187 virtual ~Minutiae();
188
194 virtual MinutiaeFormat getFormat() const = 0;
195
202
209 const = 0;
210
216 virtual CorePointSet getCores() const = 0;
217
223 virtual DeltaPointSet getDeltas() const = 0;
224
225 protected:
227
228 private:
229 };
230 using MinutiaeSet = std::vector<std::shared_ptr<Minutiae>>;
231 }
232}
233#endif /* __BE_FEATURE_MINUTIAE_H__ */
234
237 BE_Feature_MinutiaeFormat_EnumToStringMap);
238
241 BE_Feature_MinutiaeType_EnumToStringMap);
242
245 BE_Feature_RidgeCountExtractionMethod_EnumToStringMap);
BE_FRAMEWORK_ENUMERATION_DECLARATIONS(BiometricEvaluation::Feature::MinutiaeFormat, BE_Feature_MinutiaeFormat_EnumToStringMap)
A class to represent a set of minutiae data points.
virtual CorePointSet getCores() const =0
Obtains the set of core positions.
virtual MinutiaeFormat getFormat() const =0
Obtain the minutiae format kind.
virtual RidgeCountItemSet getRidgeCountItems() const =0
Obtain the set of ridge count data items.
virtual MinutiaPointSet getMinutiaPoints() const =0
Obtain the set of finger minutiae data points.
virtual DeltaPointSet getDeltas() const =0
Obtains the set of delta positions.
MinutiaeFormat
Enumerate the minutiae format standards.
std::vector< MinutiaPoint > MinutiaPointSet
std::vector< DeltaPoint > DeltaPointSet
std::vector< std::shared_ptr< Minutiae > > MinutiaeSet
std::ostream & operator<<(std::ostream &s, const Feature::FGP &fgp)
Output stream overload for FrictionRidgeGeneralizedPosition.
RidgeCountExtractionMethod
Enumerate the types of extraction methods for ridge counts.
MinutiaeType
Enumerate the types of minutiae: Ridge Ending, Bifurcation, Compound, or other.
std::vector< RidgeCountItem > RidgeCountItemSet
std::vector< CorePoint > CorePointSet
This software was developed at the National Institute of Standards and Technology (NIST) by employees...
CorePoint(Image::Coordinate coordinate, bool has_angle=false, int angle=0)
Create a CorePoint struct.
DeltaPoint(Image::Coordinate coordinate, bool has_angle=false, int angle1=0, int angle2=0, int angle3=0)
Create a DeltaPoint struct.
Representation of a finger minutiae data point.
Representation of ridge count data, which is the number of ridges between any two minutia data points...
RidgeCountItem(RidgeCountExtractionMethod extraction_method, int index_one, int index_two, int count=0)
Create a RidgeCountItem struct.
A structure to contain a two-dimensional coordinate without a specified origin.
Definition: be_image.h:67