Enrollment 28.2.0
Loading...
Searching...
No Matches

It holds all functions and data related to print manipulation. More...

#include <Print.h>

Collaboration diagram for Print:

Public Member Functions

std::shared_ptr< Print > ChangeDpiTo (ImageDpi targetDpi) const
 Create new Print with given DPI.
std::shared_ptr< Print > ChangeDpiTo (const Image::ImageResampler &resampler) const
 Create new Print using provided DPI-change configuration.
std::vector< uint8_t > ToIsoImage (ImageEncoder &encoder) const
 Function creates ISO image based on ISO/IEC 19794-4 (Finger image data).
std::vector< uint8_t > ToIsoRawImage () const
 Function creates ISO image based on ISO/IEC 19794-4 (Finger image data) use RawImage.
uint8_t CalculatePresence ()
 Function calculates fingerprint presence on the fingerprint scanner surface.
uint8_t CalculateNFIQ1 ()
 Function calculates NFIQ score (quality score defined by NIST) of the fingerprint image.
uint8_t CalculateNFIQ2 ()
 Function calculates NFIQ2 score (quality score defined by NIST) of the fingerprint image.
uint8_t CalculateImageQuality ()
 Function calculates Image quality of the input fingerprint image.
uint8_t CalculatePlacement ()
 Function calculates the finger placement quality of the input fingerprint image.
uint8_t CalculateIntensity ()
 Function calculates the image intensity.
std::shared_ptr< Image > DrawMinutiae (const std::vector< std::shared_ptr< Minutia > > &minutiae, const ImageShapeAttributes &attr) const
 Draws minutiae on image.
std::shared_ptr< Image > DrawCriticalPoints (const std::vector< std::shared_ptr< CriticalPoint > > &points, const ImageShapeAttributes &attr) const
 Draws critical points on skeleton image.
void WriteTo (Writer &writer) const final
 Function serializes print via provided Writer.
bool IsSameAs (const Print &print) const
 Returns true when argument is same object.
bool operator== (const Print &f) const
 Compares if Print is equal with other one.
bool operator!= (const Print &f) const
 Compares if Print is not equal with other one.

Static Public Member Functions

static std::shared_ptr< Print > FromIsoImage (const std::vector< uint8_t > &isoImage)
 Function creates shared pointer of the Print object from ISO image based on ISO/IEC 19794-4 (Finger image data).
static uint8_t CalculateIntensity (const std::shared_ptr< inno::Image > &image, std::shared_ptr< PrintExecutor > &executor)
 Function calculates the image intensity.
static std::shared_ptr< Print > Create (std::shared_ptr< Image > img, const PrintPosition &position, const PrintAttributes &pa=PrintAttributes(), std::shared_ptr< PrintExecutor > executor=GlobalPrintExecutor::Get())
 Constructor creates Print object.

Public Attributes

const std::shared_ptr< Image > image
 Provides Print Image.
const PrintPosition position
 Provides Print position.
const PrintAttributes printAttributes
 Provides PrintCapture Image.

Detailed Description

It holds all functions and data related to print manipulation.

Member Function Documentation

◆ CalculateImageQuality()

uint8_t CalculateImageQuality ( )
inline

Function calculates Image quality of the input fingerprint image.

Image quality number is calculated in accordance with the general guidelines contained in Section 7.2.5 of ANSI/INCITS 381 standard (Section 8.3.7.3 Quality score of ISO/IEC 19794-4 international standard). the value is available in serialization.

Returns
the output range is from 0 (lowest quality) to 100 (highest quality)
Exceptions
EnrollmentExceptionwhen fails to calculate image quality.

References image.

◆ CalculateIntensity() [1/2]

uint8_t CalculateIntensity ( )
inline

Function calculates the image intensity.

The intensity value is low for dry fingerprints (and for low pressure prints) and high for wet fingerprints (or for high pressure prints).

Returns
image intensity in range 0 (lowest intensity, dry finger, low pressure) to 100 (highest intensity, wet finger, high pressure)
Exceptions
EnrollmentExceptionwhen fails to calculate intensity

References CalculateIntensity(), and image.

Referenced by CalculateIntensity(), and PrintCapture::CalculateIntensity().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CalculateIntensity() [2/2]

uint8_t CalculateIntensity ( const std::shared_ptr< inno::Image > & image,
std::shared_ptr< PrintExecutor > & executor )
inlinestatic

Function calculates the image intensity.

The intensity value is low for dry fingerprints (and for low pressure prints) and high for wet fingerprints (or for high pressure prints).

Returns
image intensity in range 0 (lowest intensity, dry finger, low pressure) to 100 (highest intensity, wet finger, high pressure)
Exceptions
EnrollmentExceptionwhen fails to calculate intensity
Parameters
imageimage to analyze
executorprint executor

References image.

◆ CalculateNFIQ1()

uint8_t CalculateNFIQ1 ( )
inline

Function calculates NFIQ score (quality score defined by NIST) of the fingerprint image.

This image quality number is calculated in accordance with the general guidelines contained in Section 7.2.5 of ANSI/INCITS 381 standard (Section 8.3.7.3 Quality score of ISO/IEC 19794-4 international standard). the value is available in serialization.

Returns
the output range is from 1 (highest quality) to 5 (lowest quality)
Exceptions
EnrollmentExceptionwhen fails to calculate NFIQ1

References image.

◆ CalculateNFIQ2()

uint8_t CalculateNFIQ2 ( )
inline

Function calculates NFIQ2 score (quality score defined by NIST) of the fingerprint image.

This image quality number is calculated in accordance with the general guidelines contained in Section 7.2.5 of ANSI/INCITS 381 standard (Section 8.3.7.3 Quality score of ISO/IEC 19794-4 international standard). the value is available in serialization. The NFIQ2 version is 2.3.0.

Warning
NFIQ 2 is developed for images captured at 500 dpi and as such it shall not be used for images of different resolution, e.g. 1000 dpi. NFIQ 2 is developed for plain impression captured using optical sensors or scanned from inked card. Therefore, it shall not be used for images captured using other capture technologies, e.g. capacitive. [1]
Returns
the output range is from 0 (lowest quality) to 100 (highest quality)
Exceptions
EnrollmentExceptionwhen fails to calculate NFIQ2
InvalidImageArgumentExceptionwhen print image has different DPI as 500.

References DefaultDpi, and image.

◆ CalculatePlacement()

uint8_t CalculatePlacement ( )
inline

Function calculates the finger placement quality of the input fingerprint image.

The placement score number ranges from 0 to 100 and represents the fitness of the finger placement, evaluated with respect to the detected fingerprint classification (arch, loop, whorl), the value is available in serialization.

Returns
the output range is from 0 (lowest quality) to 100 (highest quality)
Exceptions
EnrollmentExceptionwhen fails to calculate placement

References image.

◆ CalculatePresence()

uint8_t CalculatePresence ( )
inline

Function calculates fingerprint presence on the fingerprint scanner surface.

Image quality number is calculated as an area where presence of fingerprint is detected. This function does not measure quality of the presented fingerprint pattern.Presence value is calculated from the fingerprint image, the value is available in serialization.

Returns
the output range is from 0 (lowest quality) to 100 (highest quality)
Exceptions
EnrollmentExceptionwhen fails to calculate presence

References image.

◆ ChangeDpiTo() [1/2]

std::shared_ptr< Print > ChangeDpiTo ( const Image::ImageResampler & resampler) const
inlinenodiscard

Create new Print using provided DPI-change configuration.

It creates new print with changed image dpi by function Image::ChangeDpiTo() and with same position and attributes using a DPI-change configuration.

Parameters
resamplerimage resampler
Returns
print with given DPI
Exceptions
ImageExceptionwhen there is an processing error
EnrollmentInvalidArgumentExceptionwhen resize algorithm is NIST and print image is not single-channel grayscale

References Create(), image, position, and printAttributes.

Here is the call graph for this function:

◆ ChangeDpiTo() [2/2]

std::shared_ptr< Print > ChangeDpiTo ( ImageDpi targetDpi) const
inlinenodiscard

Create new Print with given DPI.

It creates new print with changed image dpi by function Image::ChangeDpiTo() and with same position and attributes. The function uses Standard resizing algorithm. See BicubicImageResampler.

Parameters
targetDpiDPI of new print.
Returns
print with target DPI
Exceptions
ImageExceptionwhen it is not possible to change image DPI
EnrollmentInvalidArgumentExceptionwhen targetDpi is 0

References ChangeDpiTo().

Referenced by ChangeDpiTo().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Create()

std::shared_ptr< Print > Create ( std::shared_ptr< Image > img,
const PrintPosition & position,
const PrintAttributes & pa = PrintAttributes(),
std::shared_ptr< PrintExecutor > executor = GlobalPrintExecutor::Get() )
inlinestatic

Constructor creates Print object.

Parameters
imgprint image
positionPrintPosition
paPrintAttributes
executorPrintExecutor to use for Print functionality execution
Exceptions
NullArgumentExceptionwhen executor is null
NullArgumentExceptionwhen image is null
Returns
created Print object

References GlobalPrintExecutor::Get(), and position.

Referenced by ChangeDpiTo(), FromIsoImage(), and PrintSegment::ToPrint().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DrawCriticalPoints()

std::shared_ptr< Image > DrawCriticalPoints ( const std::vector< std::shared_ptr< CriticalPoint > > & points,
const ImageShapeAttributes & attr ) const
inlinenodiscard

Draws critical points on skeleton image.

Parameters
pointscritical points to be drawn
attrImageShapeAttributes of minutiae
Returns
Image with drawn critical points

References image.

◆ DrawMinutiae()

std::shared_ptr< Image > DrawMinutiae ( const std::vector< std::shared_ptr< Minutia > > & minutiae,
const ImageShapeAttributes & attr ) const
inlinenodiscard

Draws minutiae on image.

Parameters
minutiaeMinutiae to be drawn
attrImageShapeAttributes of minutiae
Returns
Image with drawn minutiae

References image.

◆ FromIsoImage()

std::shared_ptr< Print > FromIsoImage ( const std::vector< uint8_t > & isoImage)
inlinestatic

Function creates shared pointer of the Print object from ISO image based on ISO/IEC 19794-4 (Finger image data).

[5]

Parameters
isoImageISO image from ISO/IEC 19794-4 (Finger image data)
Returns
shared pointer of the Print object
Exceptions
ImageExceptionwhen type is not supported or image data are corrupted
EnrollmentInvalidArgumentExceptionwhen it is not possible to decode image
EnrollmentInvalidArgumentExceptionfor invalid conversion from ISO to PrintPosition
EnrollmentInvalidArgumentExceptionfor invalid conversion from ISO to PrintImpression
EnrollmentInvalidArgumentExceptionfor invalid conversion from ISO to PrintCaptureDeviceTechnology
NotSupportedExceptionwhen horizontal and vertical image dpi is different
NotSupportedExceptionwhen bit depth for raw image is not 8

References Create(), Image::Decode(), Image::DecodeRawImage(), ImageDpi::FromDPCM(), RawImage::GRAYSCALE, IsoToPrintCaptureDeviceTechnology(), IsoToPrintImpression(), IsoToPrintPosition(), position, PrintAttributes::SetCaptureDeviceTechnology(), PrintAttributes::SetCaptureDeviceTypeID(), PrintAttributes::SetCaptureDeviceVendorID(), PrintAttributes::SetCertificationFlag(), and PrintAttributes::SetImpression().

Here is the call graph for this function:

◆ IsSameAs()

bool IsSameAs ( const Print & print) const
inline

Returns true when argument is same object.

Parameters
printto check if it is reference to same object
Returns
true when given print is the same object
false when given print is a different object

◆ operator!=()

bool operator!= ( const Print & f) const
inline

Compares if Print is not equal with other one.

Parameters
fcompared Print
Returns
true when data of Print are different
false when data of Print are same

◆ operator==()

bool operator== ( const Print & f) const
inline

Compares if Print is equal with other one.

Parameters
fcompared Print
Returns
true when data of Print are same
false when data of Print are different

References image, position, and printAttributes.

◆ ToIsoImage()

std::vector< uint8_t > ToIsoImage ( ImageEncoder & encoder) const
inline

Function creates ISO image based on ISO/IEC 19794-4 (Finger image data).

The ISO standard specifies a data record interchange format for storing, recording, and transmitting the information from one or more finger or palm image areas [5]

Parameters
encoderspecific encoder for encoding Print image. Supported WSQ, JPG (lossy), JPEG 2000 (lossy & lossless), PNG
Returns
ISO image from ISO/IEC 19794-4 (Finger image data)
Exceptions
ImageExceptionwhen it is not possible to encode image
EnrollmentInvalidArgumentExceptionwhen encoder is not supported
EnrollmentRuntimeExceptionfor invalid conversion size

◆ ToIsoRawImage()

std::vector< uint8_t > ToIsoRawImage ( ) const
inline

Function creates ISO image based on ISO/IEC 19794-4 (Finger image data) use RawImage.

Returns
ISO raw image from ISO/IEC 19794-4 (Finger image data)
Exceptions
EnrollmentRuntimeExceptionfor invalid conversion size

References image.

◆ WriteTo()

void WriteTo ( Writer & writer) const
inlinefinalvirtual

Function serializes print via provided Writer.

Parameters
writerused to serialize Print.

Implements Serializable.

References image, position, and printAttributes.


The documentation for this class was generated from the following file: