Slap Fingerprint Segmentation Evaluation III
API for participating in NIST's evaluation of slap fingerprint segmentation algorithms.
Public Member Functions | Static Public Member Functions | List of all members
SlapSegIII::Interface Class Referenceabstract

Slap Fingerprint Segmentation III interface. More...

#include <slapsegiii.h>

Collaboration diagram for SlapSegIII::Interface:
Collaboration graph

Public Member Functions

virtual SubmissionIdentification getIdentification () const =0
 Obtain identification and version information for this submission. More...
 
virtual std::tuple< std::set< SlapImage::Kind >, bool > getSupported () const =0
 Obtain features supported by this implementation. More...
 
virtual std::tuple< ReturnStatus, std::vector< SegmentationPosition > > segment (const SlapImage &image)=0
 Discover fingerprint segmentation positions within a slap image. More...
 
virtual std::tuple< ReturnStatus, SlapImage::OrientationdetermineOrientation (const SlapImage &image)=0
 Determine the hand orientation of a slap image. More...
 
virtual ~Interface ()
 Destructor. More...
 

Static Public Member Functions

static std::shared_ptr< InterfacegetImplementation (const std::filesystem::path &configurationDirectory)
 Obtain a managed pointer to an object implementing SlapSegIII::Interface. More...
 

Detailed Description

Slap Fingerprint Segmentation III interface.

Participants must inherit from this class and implement all methods.

Definition at line 442 of file slapsegiii.h.

Constructor & Destructor Documentation

◆ ~Interface()

SlapSegIII::Interface::~Interface ( )
virtual

Destructor.

Definition at line 105 of file libslapsegiii.cpp.

Member Function Documentation

◆ getIdentification()

virtual SubmissionIdentification SlapSegIII::Interface::getIdentification ( ) const
pure virtual

Obtain identification and version information for this submission.

Returns
SubmissionIdentification with identification details about this submission.
Note
This method shall return instantly.

◆ getSupported()

virtual std::tuple< std::set< SlapImage::Kind >, bool > SlapSegIII::Interface::getSupported ( ) const
pure virtual

Obtain features supported by this implementation.

Returns
A tuple whose first member is the set of supported SlapImage::Kind and whose second member indicates the presence of an implementation of Interface::determineOrientation().
Note
Returned set of SlapImage::Kind must include at least one SlapImage::Kind.
This method shall return instantly.
If an orientation determination algorithm is not present (e.g., the second member of the return value from this method is false), the implementation must still provide an implementation for Interface::determineOrientation() that returns ReturnStatus::Code::NotImplemented.

◆ segment()

virtual std::tuple< ReturnStatus, std::vector< SegmentationPosition > > SlapSegIII::Interface::segment ( const SlapImage image)
pure virtual

Discover fingerprint segmentation positions within a slap image.

Parameters
imageImage data and metadata to segment.
Returns
A tuple whose first member is ReturnStatus (with ReturnStatus.code set to ReturnStatus::Code::Success when successful, or another ReturnStatus::Code and reason ReturnStatus.message on failure) and whose second member is a std::vector containing a SegmentationPosition for each segmentation position found within image.
Note
In failure situations, a best-effort segmentation shall still be performed. Some images may be provided whose content should cause an implementation to reject the image. This is in support of an evaluation goal to determine if an implementation can correctly determine when to issue a request for recapture and specify the reasoning. If the implementation incorrectly determines a failure, the best-effort segmentation positions can still be scored.
This method shall return on average within the time limits specified in Table 8 of the SlapSegIII Test Plan.
Be cognizant of semantics in returned SegmentationPosition. Fingers in TwoInch should be rotated identically while UpperPalm and FullPalm may be rotated independently. ThreeInch shall not be rotated. See Section 3 of the SlapSegIII Test Plan for more details.

◆ determineOrientation()

virtual std::tuple< ReturnStatus, SlapImage::Orientation > SlapSegIII::Interface::determineOrientation ( const SlapImage image)
pure virtual

Determine the hand orientation of a slap image.

Parameters
imageImage data and metadata.
Returns
A tuple whose first member is ReturnStatus (with ReturnStatus.code set to ReturnStatus::Code::Success when successful, or another ReturnStatus::Code and reason ReturnStatus.message on failure) and whose second member is the hypothesized SlapImage::Orientation of image.
Warning
Do not consult the orientation member of image. It will be default-initialized only.
Note
Although this method must be implemented, ReturnStatus::Code::NotImplemented can be set if no orientation determination algorithm is available. A possible implementation for participants who will not support this method might be: return std::make_tuple(ReturnStatus::Code::NotImplemented, SlapImage::Orientation{});

◆ getImplementation()

static std::shared_ptr< Interface > SlapSegIII::Interface::getImplementation ( const std::filesystem::path &  configurationDirectory)
static

Obtain a managed pointer to an object implementing SlapSegIII::Interface.

Parameters
configurationDirectoryPath to a read-only directory populated with configuration files provided in validation.
Returns
Shared pointer to an instance of Interface containing the participant's segmentation algorithm.
Note
A possible implementation might be: return (std::make_shared<Implementation>( configurationDirectory));
configurationDirectory may be stored on a slow disk. NIST suggests reading data into available RAM.
This method shall return in <= 10 seconds.

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