Enrollment 28.2.0
Loading...
Searching...
No Matches
IrisSegment.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include "enrollment/Export.h"
17#include <memory>
18#include <vector>
19
20// cppcoreguidelines-non-private-member-variables-in-classes,misc-non-private-member-variables-in-classes: This is not a
21// problem because we are using them only as read only.
22// cppcoreguidelines-avoid-const-or-ref-data-members: We design te API with const member variables instead of
23// implementing getter methods. This is nicely transformed in C# to properties. Usually our objects are immutable by
24// intention to have no problem in multithreaded applications.
25// NOLINTBEGIN(cppcoreguidelines-non-private-member-variables-in-classes,misc-non-private-member-variables-in-classes,cppcoreguidelines-avoid-const-or-ref-data-members)
26namespace inno
27{
31 */
32 class IrisSegment : public Serializable
33 {
34 public:
36 const std::shared_ptr<Iris> iris;
42 const bool isInside;
43
47 */
48 void WriteTo(Writer& writer) const final
49 {
50 writer.Write("ir", *iris);
51 writer.Write("pc", pupilRoundingBox);
52 writer.Write("ic", irisRoundingBox);
53 writer.Write("i", static_cast<int>(isInside));
54 }
55
56 IrisSegment() = delete;
57 virtual ~IrisSegment() = default;
58 IrisSegment(const IrisSegment&) = delete;
59 IrisSegment(IrisSegment&&) = delete;
60 IrisSegment& operator=(IrisSegment&) = delete;
61 IrisSegment& operator=(IrisSegment&&) = delete;
62
63 private:
64 static std::shared_ptr<IrisSegment> Create(std::shared_ptr<Iris> i, bool inside, Rectangle pc, Rectangle ic)
65 {
66 return std::shared_ptr<IrisSegment>(new IrisSegment(std::move(i), inside, std::move(pc), std::move(ic)));
67 }
68
69 IrisSegment(std::shared_ptr<Iris> i, bool inside, Rectangle pc, Rectangle ic)
70 : iris(std::move(i))
71 , pupilRoundingBox(std::move(pc))
72 , irisRoundingBox(std::move(ic))
73 , isInside(inside)
74 {
75 }
76
77 friend class IrisDetector;
78 };
79} // namespace inno
80// NOLINTEND(cppcoreguidelines-non-private-member-variables-in-classes,misc-non-private-member-variables-in-classes,cppcoreguidelines-avoid-const-or-ref-data-members)
It describes Iris segmented from original IrisCapture (one that contain this IrisSegment) with IrisDe...
Definition IrisSegment.h:32
const std::shared_ptr< Iris > iris
Detected Iris image in original Iris capture.
Definition IrisSegment.h:35
const Rectangle irisRoundingBox
Provides rounding box for iris in image.
Definition IrisSegment.h:39
void WriteTo(Writer &writer) const final
Function serializes Iris segment.
Definition IrisSegment.h:47
const Rectangle pupilRoundingBox
Provides rounding box for pupil in image.
Definition IrisSegment.h:37
const bool isInside
true when rounding circle around iris of detected Iris is completely inside of original capture
Definition IrisSegment.h:41
It holds rectangle vertexes, width, height.
Definition ImageAttribute.h:357
Provides interface for serialization of all classes.
Definition Writer.h:164