NIST Biometric Evaluation Framework
Software components for biometric technology evaluations
be_finger_incitsview.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_FINGER_INCITSVIEW_H__
12#define __BE_FINGER_INCITSVIEW_H__
13
14#include <tuple>
15
16#include <be_view_view.h>
18
19namespace BiometricEvaluation
20{
21 namespace Finger
22 {
23
36 class INCITSView : public View::View {
37 public:
51 static Finger::Position
52 convertPosition(int incitsFGP);
53
71 convertImpression(int incitsIMP);
72
78
86
94
101 uint32_t getQuality() const;
102
109 uint16_t getCaptureEquipmentID() const;
110
118 inline bool
120 const
121 {
122 return (this->_appendixFCompliance);
123 }
124
132 uint16_t
134 const
135 {
136 return (this->_productIDOwner);
137 }
138
146 inline uint16_t
148 const
149 {
150 return (this->_productIDType);
151 }
152
157 uint32_t
159 const;
160
165 uint8_t
167 const;
168
170 uint8_t
172 const;
173
175 uint32_t
177 const;
178
184 uint16_t
186 const;
187
192 std::vector<uint8_t>
194 const;
195
202 void
204 const Feature::INCITSMinutiae &fmd);
205
212 void
214 const std::vector<uint8_t> &reservedBits);
215
216 protected:
217
218 static const uint32_t FMR_BASE_FORMAT_ID = 0x464D5200;
219 /* 'F' 'M' 'R' 'nul' */
220
226 static const uint32_t ANSI2004_STANDARD = 1;
227 static const uint32_t ISO2005_STANDARD = 2;
228 static const uint32_t ANSI2007_STANDARD = 3;
229
231
255 const std::string &fmrFilename,
256 const std::string &firFilename,
257 const uint32_t viewNumber);
258
280 const Memory::uint8Array &fmrBuffer,
281 const Memory::uint8Array &firBuffer,
282 const uint32_t viewNumber);
283
292
301
308 void setPosition(const Finger::Position &position);
309
317 const Finger::Impression &impression);
318
325 void setQuality(uint32_t quality);
326
333 void setViewNumber(uint32_t viewNumber);
334
341 void setCaptureEquipmentID(uint16_t id);
342
351 void setCBEFFProductIDs(uint16_t owner, uint16_t type);
352
360 void setAppendixFCompliance(bool flag);
361
385 const uint32_t formatStandard);
386
410
430 virtual
431 std::tuple<Feature::MinutiaPointSet,
432 std::vector<uint8_t>>
435 uint32_t count);
436
449
468 uint32_t dataLength);
469
488 virtual void readCoreDeltaData(
490 uint32_t dataLength,
492 Feature::DeltaPointSet &deltas) = 0;
493
494 private:
495 Memory::uint8Array _fmr{};
496 Memory::uint8Array _fir{};
497 Finger::Position _position{};
498 Feature::INCITSMinutiae _minutiae{};
499 std::vector<uint8_t> _fmdReserved{};
500 Finger::Impression _impression{};
501 uint32_t _viewNumber{};
502 uint32_t _quality{};
503 bool _appendixFCompliance{};
504 uint16_t _productIDOwner{};
505 uint16_t _productIDType{};
506 uint16_t _captureEquipmentID{};
507 uint32_t _recordLength{};
508 uint8_t _numFingerViews{};
509 uint8_t _fmrReservedByte{};
510 uint16_t _edbLength{};
511 };
512 }
513}
514#endif /* __BE_FINGER_INCITSVIEW_H__ */
515
A class to represent a set of minutiae in an ANSI/INCITS record.
A class to represent single finger view and derived information.
Finger::Position getPosition() const
Obtain the finger position.
void setImpressionType(const Finger::Impression &impression)
Mutator for the impression type.
std::vector< uint8_t > getMinutiaeReservedData() const
static const uint32_t ANSI2004_STANDARD
The type of record that will be read by the subclass.
void setMinutiaeReservedData(const std::vector< uint8_t > &reservedBits)
Mutator for the FMD reserved bits vector.
Memory::uint8Array const & getFIRData() const
Obtain a reference to the finger image record data buffer.
void readFVMR(Memory::IndexedBuffer &buf)
Read the common finger view record information from an INCITS record.
Memory::uint8Array const & getFMRData() const
Obtain a reference to the finger minutiae record data buffer.
uint32_t getQuality() const
Obtain the finger quality value.
void setQuality(uint32_t quality)
Mutator for the finger quality value.
void setCBEFFProductIDs(uint16_t owner, uint16_t type)
Mutator for the CBEFF Product ID owner and type.
virtual Feature::RidgeCountItemSet readRidgeCountData(Memory::IndexedBuffer &buf, uint32_t dataLength)
Read the ridge count data.
void setViewNumber(uint32_t viewNumber)
Mutator for the finger view number.
Finger::Impression getImpressionType() const
Obtain the finger impression code.
void setMinutiaeData(const Feature::INCITSMinutiae &fmd)
Mutator for the Feature::INCITSMinutiae item.
void setCaptureEquipmentID(uint16_t id)
Mutator for the equipment ID.
virtual std::tuple< Feature::MinutiaPointSet, std::vector< uint8_t > > readMinutiaeDataPoints(Memory::IndexedBuffer &buf, uint32_t count)
Read the minutiae data points, and extended data blocks.
uint16_t getProductIDType() const
Obtain the CBEFF product identifier type.
static Finger::Position convertPosition(int incitsFGP)
Convert a finger postion code from an INCITS finger record to the common code.
uint16_t getProductIDOwner() const
Obtain the CBEFF product identifier owner.
INCITSView(const std::string &fmrFilename, const std::string &firFilename, const uint32_t viewNumber)
Construct the common components of an INCITS finger view from records contained in files.
INCITSView(const Memory::uint8Array &fmrBuffer, const Memory::uint8Array &firBuffer, const uint32_t viewNumber)
Construct an INCITS finger view from records contained in buffers.
Feature::INCITSMinutiae getMinutiaeData() const
Obtain the set of minutiae records.
virtual void readExtendedDataBlock(Memory::IndexedBuffer &buf)
Read the common extended data block.
static Finger::Impression convertImpression(int incitsIMP)
Convert a impression type code from an INCITS finger record to the common code.
bool isAppendixFCompliant() const
Obtain the capture equipment compliance indicator for 'Appendix F'.
uint16_t getCaptureEquipmentID() const
Obtain the capture equipment identifier.
void readFMRHeader(Memory::IndexedBuffer &buf, const uint32_t formatStandard)
Read the common finger minutiae record header from an INCITS record.
virtual void readCoreDeltaData(Memory::IndexedBuffer &buf, uint32_t dataLength, Feature::CorePointSet &cores, Feature::DeltaPointSet &deltas)=0
Read the core points data.
void setAppendixFCompliance(bool flag)
Mutator for the Appendix F compliance indicator.
void setPosition(const Finger::Position &position)
Mutator for the position.
Wrap a memory buffer with an index.
A class to represent single biometric element view.
Definition: be_view_view.h:31
std::vector< MinutiaPoint > MinutiaPointSet
std::vector< DeltaPoint > DeltaPointSet
std::vector< RidgeCountItem > RidgeCountItemSet
std::vector< CorePoint > CorePointSet
Position
Finger position codes.
Definition: be_finger.h:62
Impression
Finger, palm, and latent impression types.
Definition: be_finger.h:103
This software was developed at the National Institute of Standards and Technology (NIST) by employees...