19 static const int roiRand = 1;
24 cv::Mat mImage, mGray;
27 MarkPresetsVector presetsVec;
31 #ifdef ALLOW_BOOST_FILESYSTEM
32 boost::filesystem::path resultDirectory_;
38 void resetModel (
const int nMarks);
39 virtual void prepareModel (
const ExposureArrangement exposureArrangement) = 0;
40 #ifdef ALLOW_BOOST_FILESYSTEM
42 void setResultDirectory (boost::filesystem::path& p) { resultDirectory_ = p; }
45 int pixel (
double mm) {
return cvRound (mm * pixPerMM); }
46 float fPixel (
double mm)
const {
return (
float) (mm * pixPerMM); }
47 void setPixelPerMM (
double ppMM) { pixPerMM = ppMM; }
48 bool isPointStatus (
int idx, StatusValue status) {
return markStatus.isStatus (idx, status); }
49 void setPointStatus (
int idx, StatusValue status, StatusValue clearValue = 0) { markStatus.setStatus (idx, status, clearValue); }
50 void clearPointStatus (
int idx, StatusValue status) { markStatus.clearStatus (idx, status); }
51 StatusValue getPointStatus (
int idx) {
return markStatus.getStatus (idx); }
52 void getImage (cv::Mat &mat)
const { mat = mImage; }
53 void setRoiImage (cv::Mat &mat) { mGray = mat; }
54 bool getRoiImage (RoiRect &rRoi, cv::Mat &mRoi);
55 cv::Mat
const& getGrayScaleImage ()
const;
56 bool getPoint (
int markIdx, cv::Point2f& point);
59 bool setMarkDataResult (
int markIdx, StatusValue status,
MarkImageData &markData);
60 bool setMarkDataResult (
int markIdx, StatusValue status, cv::Vec2d& point);
61 double getPlanarNorm (
int markIdxA,
int markIdxB);
63 inline const PhotoParams& getPhotoParams()
const {
return photoValues; };
65 void setPhotoParams (
const PhotoParams& photoValues);
66 bool isMarkValid (
int markIdx) {
return isPointStatus (markIdx, St_Valid | St_Adjusted); }
67 bool isMarkAdjusted (
int markIdx) {
return isPointStatus (markIdx, St_Adjusted); }
68 bool isMarkCalculated (
int markIdx) {
return isPointStatus (markIdx, St_Calculated); }
69 bool isMarkUseable (
int markIdx) {
return isMarkValid (markIdx) || isMarkCalculated (markIdx); }
70 RoiBuilder* createPresetsRoiBuilder (
size_t markIdx);
72 #ifdef ALLOW_BOOST_FILESYSTEM
73 boost::filesystem::path getResultDirectory() {
return resultDirectory_; }
88 vr::FrontFeaturesSPtr frontFeatures_;
89 cv::CascadeClassifier faceCascade;
90 cv::CascadeClassifier eyeCascade;
91 RoiRect rightBoxRoi, leftBoxRoi;
92 RoiRect rightFswMarkRoi, leftFswMarkRoi;
94 DoubleContourSPtrVector rightContours;
95 DoubleContourSPtrVector leftContours;
96 ContourFinderPresetsVector boxContourPresetsVec;
97 ContourFinderPresetsVector fswContourPresetsVec;
99 DoubleContourPair contours_;
100 vr::MetsResult mets_;
101 StatusInfo metsStatus_;
105 StatusInfo InfantGlassesConfigStatus_;
106 bool isInfantGlassesConfig_;
107 void prepareBoxContourPresets ();
108 void prepareFswContourPresets ();
111 RoiRect rightIrisRoi, leftIrisRoi;
114 std::vector<cv::Vec3d> boxesVector;
115 void prepareIrisLocatorPresets ();
116 double getScaleFactor ();
117 virtual void prepareModel (
const ExposureArrangement exposureArrangement);
118 virtual void resetBoxesValues (
double rXVar,
double lXVar);
122 const vr::FrontFeaturesSPtr& getFrontFeatures(
const ExposureArrangement exposureArrangement);
123 const vr::FrontFeaturesSPtr& getFrontFeatures()
const {
return frontFeatures_; };
124 double getPseudoKorr ();
127 virtual void calculateFrontRois ();
128 void getRightIrisRoi (RoiRect &rRoi) { rRoi = rightIrisRoi; }
129 void getLeftIrisRoi (RoiRect &rRoi) { rRoi = leftIrisRoi; }
130 double getPixelsPerMm () {
return getScaleFactor(); }
135 DoubleContourSPtrVector* getRightContours () {
return &rightContours; }
136 DoubleContourSPtrVector* getLeftContours () {
return &leftContours; }
137 ContourFinderPresetsVector* getBoxContourPresetsVec () {
return &boxContourPresetsVec; }
138 ContourFinderPresetsVector* getFswContourPresetsVec () {
return &fswContourPresetsVec; }
140 DoubleContourPair& getContours();
141 std::string contoursErrorMessage;
142 std::string contoursDetectorVersion;
144 vr::MetsResult& getHoyaMets (StatusInfo& statusInfo);
145 void setHoyaMets (
const vr::MetsResult& mets,
const StatusInfo& statusInfo);
146 void getRightBoxRoi (RoiRect &rRoi) { rRoi = rightBoxRoi; }
147 void getLeftBoxRoi (RoiRect &rRoi) { rRoi = leftBoxRoi; }
148 void getRightFswMarkRoi (RoiRect &rRoi) { rRoi = rightFswMarkRoi; }
149 void getLeftFswMarkRoi (RoiRect &rRoi) { rRoi = leftFswMarkRoi; }
151 void setIsInfantGlassesConfig (
const bool value,
const StatusInfo& statusInfo);
152 bool isInfantGlassesConfig (StatusInfo& statusInfo)
const;
164 vr::FrontFeaturesSPtr frontFeatures_;
168 virtual void prepareModel (
const ExposureArrangement exposureArrangement);
172 bool isRightSide () {
return bRight; }
173 void setDownDistance (
int distance) { downDistance = distance; }
174 int getDownDistance () {
return downDistance; }
175 const vr::FrontFeaturesSPtr& getFrontFeatures()
const {
return frontFeatures_; };
176 void setFrontFeatures (
const vr::FrontFeaturesSPtr& features) { frontFeatures_ = features; };
Definition: HeadModel.h:84
Koordinatensystemunabhängige Daten, Dinge, die innerhalb der Engine sind und defaultwerte.
Definition: RealConstants.h:5
Definition: mark_types.h:23
beschreibt eine Visierbügelmarke
Definition: types.h:31
Voreinstellungen für IrisLocator.
Definition: types.h:62
Definition: MeasuringHead.h:12
Definition: ClampModel.h:9
Definition: RoiBuilder.h:10
Definition: HeadModel.h:15
Definition: PhotoParams.h:27
Definition: HeadModel.h:161
Definition: StatusGroup.h:6