1 #ifndef VR_FRONT_FEATURES_H
2 #define VR_FRONT_FEATURES_H
11 class CoordinateTransformation;
22 void checkIrisResult(
const LateralSide side,
int& result,
24 void ffaMarkChanged(
const LateralSide side);
25 bool locateMainMarks(
const cv::Mat& image,
const bool faceFound);
26 void locateFfaMarks(
const cv::Mat& image);
27 void locateIrises(
const cv::Mat& image);
28 void locateFace(
const cv::Mat& image);
29 void locateEye(
const cv::Mat& image,
const LateralSide side);
30 cv::Rect getScaledPeakMarkRoi()
const;
31 cv::Rect getScaledEyeRoi(
const LateralSide side)
const;
32 cv::Rect getScaledIrisRoi(
const LateralSide side)
const;
33 cv::Rect getPupilVicinity(
const LateralSide side,
const float margin)
const;
34 cv::Point3f getGuessedPupil(
const LateralSide side)
const;
35 inline bool isFrontCameraImage()
const {
36 switch (arrangement_) {
39 case iPad_mini_3_front:
48 cv::CascadeClassifier& faceCascade_;
49 cv::CascadeClassifier& eyeCascade_;
52 const ExposureArrangement arrangement_;
54 FeatureStatus status_;
55 cv::Rect mainMarkRoi_;
56 cv::Rect peakMarkRoi_;
57 cv::Rect eyeRoi[LATERAL_SIDE];
58 cv::Rect irisRoi[LATERAL_SIDE];
59 cv::Rect ffaRoi[LATERAL_SIDE];
60 cv::Vec3d ffaMark3d[LATERAL_SIDE];
62 void centerChanged(
Feature& feature);
68 Mark mainMark[LATERAL_SIDE];
76 Mark faceFormAngleMark[LATERAL_SIDE];
85 cv::CascadeClassifier& faceCascade,
86 cv::CascadeClassifier& eyeCascade);
98 inline FeatureStatus
getStatus()
const {
return status_; };
99 inline void setStatus(
const FeatureStatus status) { status_ = status; };
114 bool locate(
const cv::Mat& image);
119 inline float getPixelsPerMm()
const {
return pixelsPerMm_ * scaleFactor_; }
130 cv::Rect getEyeRoi(LateralSide side) {
return scaledRect(eyeRoi[side], scaleFactor_); };
131 cv::Rect getMainMarksRoi() {
return scaledRect(mainMarkRoi_, scaleFactor_); };
132 cv::Rect getPeakMarkRoi() {
return scaledRect(peakMarkRoi_, scaleFactor_); };
133 cv::Rect getIrisRoi(LateralSide side) {
return scaledRect(irisRoi[side], scaleFactor_); };
134 cv::Rect getFfaRoi(LateralSide side) {
return scaledRect(ffaRoi[side], scaleFactor_); };
135 const cv::Vec3d& getFfaMark3d(LateralSide side)
const {
return ffaMark3d[side]; };
138 typedef std::shared_ptr<FrontFeatures> FrontFeaturesSPtr;
142 #endif // VR_FRONT_FEATURES_H
double getFaceFormAngle(LateralSide side) const
gibt Fassungsscheibenwinkel zurück, z.Zt. ohne Anlagekorrektur.
Definition: front_features.cpp:273
Repräsentiert eine Marke des Meßaufsatzes (aka Meßbügel) im Bild.
Definition: features.h:168
float getScaledPixelsPerMm() const
ungefähre Pixel/millimeter in Bügelentfernung.
Definition: front_features.h:118
Definition: front_features.h:20
bool isInfantConfiguration(FeatureStatus &status)
Ist der Bügel für Kinderbrillen konfiguriert?
Definition: front_features.cpp:125
Definition: features.h:68
FeatureStatus getStatus() const
Status der Feature-Suche in der Frontalaufnahme.
Definition: front_features.h:98
void reset()
Setzt den Status der Features zurück auf todo
Definition: front_features.cpp:390
Definition: features.h:214
Definition: features.h:26
Repräsentiert ein kreisförmiges Feature.
Definition: features.h:124
bool locate(const cv::Mat &image)
Sucht alle Features im Frontbild.
Definition: front_features.cpp:137