NIST Biometric Evaluation Framework
Software components for biometric technology evaluations
be_feature_an2k11efs.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_AN2K11EFS_H__
12#define __BE_FEATURE_AN2K11EFS_H__
13
14#include <be_image.h>
15#include <be_finger.h>
16#include <be_palm.h>
17#include <be_plantar.h>
18#include <be_feature.h>
19#include <be_feature_minutiae.h>
21#include <be_memory_autoarray.h>
22
23namespace BiometricEvaluation
24{
25 namespace Feature {
26 namespace AN2K11EFS {
27
33 struct Orientation {
35 enum class EncodingMethod {
37 Default,
42 Indeterminate,
44 UserDefined
45 };
46
48 static const int EODDefault = 0;
50 static const int EUCDefault = 15;
52 static const int EUCIndeterminate = 180;
53
56
58 int eod;
59 bool has_euc;
61 int euc;
62 };
63 std::ostream& operator<< (std::ostream&, const Orientation&);
64
69 enum class FingerprintSegment {
70 PRX = 0,
71 DST,
72 MED,
73 UNK
74 };
75
81 T = 0,
82 R,
83 L
84 };
86
96 struct FPPPosition {
99
103
107
111
112 };
113 std::ostream& operator<< (std::ostream&, const FPPPosition&);
114
119 enum class TonalReversal {
124 N = 0,
129 P,
133 U
134 };
135
140 enum class LateralReversal {
142 L = 0,
144 U
145 };
146
152 struct ImageInfo {
157
162
168
174
180 };
181 std::ostream& operator<< (std::ostream&,
182 const ImageInfo&);
183
192 int mru;
195 int mdu;
196 };
197 std::ostream& operator<< (std::ostream&,
198 const MinutiaPoint&);
199 using MinutiaPointSet = std::vector<MinutiaPoint>;
200
207 int mia;
209 int mib;
211 int mir;
214 int mrn;
217 int mrs;
218 };
219 std::ostream& operator<< (std::ostream&,
220 const MinutiaeRidgeCount&);
222 std::vector<MinutiaeRidgeCount>;
223
230 A = 0,
232 T,
234 M
235 };
237
247 int mcv;
248 };
250 std::ostream& operator<< (std::ostream&,
253 std::vector<MinutiaeRidgeCountConfidence>;
254
260 OCTANT = 0,
261 EFTS7,
263 };
265
277 };
278 std::ostream& operator<< (std::ostream&,
280
281 /*
282 * @brief
283 * Representation of an extended feature set core.
284 */
285 struct CorePoint {
288 int cdi;
290 int rpu;
292 int duy;
293 };
294 std::ostream& operator<< (std::ostream&, const CorePoint&);
295 using CorePointSet = std::vector<CorePoint>;
296
301 enum class DeltaType {
303 L,
305 R,
307 I00,
309 I02,
311 I03,
313 I04,
315 I05,
317 I07,
319 I08,
321 I09,
323 I10,
325 I16,
327 I17,
329 C,
331 Other
332 };
333
338 struct DeltaPoint {
341 int dup;
343 int dlf;
345 int drt;
349 int rpu;
351 int duu;
353 int dul;
355 int dur;
356 };
357 using DeltaPointSet = std::vector<DeltaPoint>;
358 std::ostream& operator<< (std::ostream&, const DeltaPoint&);
359
372 bool cores;
373 bool deltas;
375 };
376 std::ostream& operator<< (
377 std::ostream&, const NoFeaturesPresent&);
378
381 {
382 I12,
383 ADX,
384 ALS,
385 AMB,
386 AY7,
387 BAR,
388 BLE,
389 BLP,
390 BPA,
391 BRY,
392 CBB,
393 CDS,
394 COG,
395 DAB,
396 DFO,
397 FLP,
398 GEN,
399 GRP,
400 GTV,
401 HCA,
402 IOD,
403 ISR,
404 LAS,
405 LCV,
406 LIQ,
407 LQD,
408 MBD,
409 MBP,
410 MGP,
411 MPD,
412 MRM,
413 NIN,
414 OTH,
415 PDV,
416 R6G,
417 RAM,
418 RUV,
419 SAO,
420 SDB,
421 SGF,
422 SPR,
423 SSP,
424 SVN,
425 TEC,
426 TID,
427 VIS,
428 WHP,
429 ZIC
430 };
432
435 {
436 Value,
438 VID = Value,
439 Limited,
441 VEO = Limited,
442 NoValue,
443 NV = NoValue,
445 };
446
449 {
451 bool present{false};
452
456 std::string aln;
458 std::string afn;
460 std::string aaf;
462 std::string amt;
464 std::string acm{};
466 bool has_cxf{false};
468 bool cxf{};
469 };
470 std::ostream&
472 std::ostream&,
474
476 enum class SubstrateCode
477 {
478 Paper,
479 Cardboard,
482
483 Plastic,
484 Glass,
492
493 Rubber,
494 Leather,
500
501 Other,
502 Unknown
503 };
504
507 {
509 bool present{false};
510
514 std::string osd{};
515 };
516 std::ostream&
518 std::ostream&,
519 const Substrate&);
520
522 struct Pattern
523 {
532 {
533 Arch,
534 Whorl,
535 RightSlantLoop,
536 LeftSlantLoop,
537 Amputation,
538 TemporarilyUnavailable,
539 Unclassifiable,
540 Scar,
541 DissociatedRidges
542 };
543
544 /* Details subclassification for arches */
546 {
547 Plain,
548 Tented
549 };
550
551 /* Details subclassification for whorls */
553 {
554 Plain,
555 CentralPocketLoop,
556 DoubleLoop,
557 Accidental
558 };
559
562 {
563 Inner,
564 Outer,
565 Meeting
566 };
567
568 bool present{false};
569
571
572 bool hasSubclass{false};
573 union
574 {
578
581 };
582 std::ostream&
584 std::ostream&,
585 const Pattern&);
586
597 public:
624 const std::string &filename,
625 int recordNumber);
626
649 int recordNumber);
650
661 const;
662
675 const;
676
691 const;
692
705 const;
706
719 const;
720
731 std::vector<LatentProcessingMethod>
733 const;
734
742 const;
743
754 const;
755
763 const;
764
769 std::vector<Pattern>
771 const;
772
774
775 private:
776 class Impl;
777 std::unique_ptr<ExtendedFeatureSet::Impl> pimpl;
778 };
779 } /* Namespace AN2K11EFS */
780 } /* Namespace Feature */
781}
782
785 BE_Feature_AN2K11EFS_Orientation_EncodingMethod_EnumToStringMap);
786
789 BE_Feature_AN2K11EFS_FingerprintSegment_EnumToStringMap);
790
793 BE_Feature_AN2K11EFS_OCF_EnumToStringMap);
794
797 BE_Feature_AN2K11EFS_TonalReversal_EnumToStringMap);
798
801 BE_Feature_AN2K11EFS_LateralReversal_EnumToStringMap);
802
805 BE_Feature_AN2K11EFS_MethodOfRidgeCounting_EnumToStringMap);
806
809 BE_Feature_AN2K11EFS_MRA_EnumToStringMap);
810
813 BE_Feature_AN2K11EFS_DeltaType_EnumToStringMap);
814
817 BE_Feature_AN2K11EFS_LatentProcessingMethod_EnumToStringMap);
818
821 BE_Feature_AN2K11EFS_ValueAssessmentCode_EnumToStringMap);
822
825 BE_Feature_AN2K11EFS_SubstrateCode_EnumToStringMap);
826
829 BE_Feature_AN2K11EFS_Pattern_GeneralClassification_EnumToStringMap);
830
833 BE_Feature_AN2K11EFS_Pattern_ArchSubclassification_EnumToStringMap);
834
837 BE_Feature_AN2K11EFS_Pattern_WhorlSubclassification_EnumToStringMap);
838
841 BE_Feature_AN2K11EFS_Pattern_WhorlDeltaRelationship_EnumToStringMap);
842
843#endif /* __BE_FEATURE_AN2K11EFS_H__ */
844
BE_FRAMEWORK_ENUMERATION_DECLARATIONS(BiometricEvaluation::Feature::AN2K11EFS::Orientation::EncodingMethod, BE_Feature_AN2K11EFS_Orientation_EncodingMethod_EnumToStringMap)
A class to represent the Extended Feature Set optionally present in an ANSI/NIST Type-9 record.
BiometricEvaluation::Feature::AN2K11EFS::DeltaPointSet getDPS() const
Obtain the delta point set.
BiometricEvaluation::Feature::AN2K11EFS::MinutiaeRidgeCountInfo getMRCI() const
Obtain all the information relating to minutiae ridge count information.
BiometricEvaluation::Feature::AN2K11EFS::NoFeaturesPresent getNFP() const
Obtain the No Features Present indicators.
ExtendedFeatureSet(const std::string &filename, int recordNumber)
Construct an AN2K11 EFS object from file data.
BiometricEvaluation::Feature::AN2K11EFS::CorePointSet getCPS() const
Obtain the core point set.
ImageInfo getImageInfo() const
Obtain the structure containing information about the image and Extended Feature Set.
BiometricEvaluation::Feature::AN2K11EFS::MinutiaPointSet getMPS() const
Obtain the minutiae point set.
ExaminerAnalysisAssessment getEAA() const
Obtain the examiner's analysis assessment of the print.
ExtendedFeatureSet(Memory::uint8Array &buf, int recordNumber)
Construct an AN2K11 EFS object from data contained in a memory buffer.
std::vector< LatentProcessingMethod > getLPM() const
Obtain set of methods used to process this latent.
FingerprintSegment
The finger segment positions.
DeltaType
The type of extended feature set delta.
MinutiaeRidgeCountAlgorithm
The type of EFS ridge count algorithm.
std::vector< MinutiaeRidgeCount > MinutiaeRidgeCountSet
std::vector< MinutiaeRidgeCountConfidence > MinutiaeRidgeCountConfidenceSet
LateralReversal
Representation of possible latent reversal information.
std::vector< MinutiaPoint > MinutiaPointSet
MethodOfRidgeCounting
The type of EFS ridge count method.
ValueAssessmentCode
Code indicating the value of a print.
TonalReversal
Representation of tonal reversal.
@ P
Partial, ridges are light and valleys are dark only in portions of the image.
@ N
Negative, ridges are light and valleys are dark throughout the image.
std::ostream & operator<<(std::ostream &, const Orientation &)
OffCenterFingerPosition
The finger segment positions.
SubstrateCode
Substrates on which latent impression was deposited.
LatentProcessingMethod
Representation of latent processing method (9.352)
std::vector< Image::Coordinate > CoordinateSet
Definition: be_image.h:112
This software was developed at the National Institute of Standards and Technology (NIST) by employees...
Representation of an extended feature set delta.
std::string aaf
Examiner's employer/affiliation (required)
std::string amt
Date and time determination made (GMT, required)
std::string afn
Examiner's first and middle names (required)
Representation of finger-palm-plantar position.
BiometricEvaluation::Image::CoordinateSet sgp
The segment polygon.
OffCenterFingerPosition ocf
The off-center fingerprint position.
FingerprintSegment fsm
The finger segment position.
Feature::FGP fgp
The friction ridge generalized position.
A structure representing information about the image and extended feature set region.
FPPPosition fpp
The Finger/Palm/Plantar Position: Mandatory field.
TonalReversal trv
The tonal reversal information.
LateralReversal plr
The possible latent reversal information.
BiometricEvaluation::Image::ROI roi
The region of interest: A mandatory field.
Representation of an extended feature set minutia data point.
Representation of an extended feature set minutiae ridge count confidence item.
Representation of an extended feature set ridge count info.
A set of flags indicating "No features present" indicators contained within the extended feature set.
Representation of orientation (deviation from upright) and its uncertainty.
EncodingMethod
Interpretation of encoded orientation values.
static const int EUCDefault
ANSI/NIST default uncertainty.
EncodingMethod encodingMethod
Interpretation of encoded values.
static const int EODDefault
ANSI/NIST default direction.
static const int EUCIndeterminate
ANSI/NIST indeterminate uncertainty.
union BiometricEvaluation::Feature::AN2K11EFS::Pattern::@1 subclass
WhorlDeltaRelationship
Relationship between multiple deltas in a whorl.
Description of surface on which latent was deposited.
SubstrateCode cls
Type of substrate (required)
std::string osd
Description and/or clarification (optional)
Representation of the position (Finger/Palm/Plantar) used in this class and child classes.
Definition: be_feature.h:48
Representation of a finger minutiae data point.
A structure to contain a two-dimensional coordinate without a specified origin.
Definition: be_image.h:67
A structure to represent a region of interest (ROI), which is a bounding box and a set of coordinates...
Definition: be_image.h:348