vrcore  0.45
visuReal Messkern
 All Classes Files Functions Variables
ContoursAnalyser.h
1 #pragma once
2 
3 #include "Combine.h"
4 //schon drin: #include "CombiSystemsVector.h"
5 class ContourFinder;
6 /*
7 class ContoursAnalyser : public AnalysisUnit<FrontHeadModel>
8  {
9  protected:
10  void createAnalyser ();
11  public:
12  ContoursAnalyser (FrontHeadModel& headModel);
13  ~ContoursAnalyser ();
14  };
15 
16 */
18  {
19  private:
20  ContourVector &contoursOut;
21  cv::Mat mat;
22  const RoiRect &rRoi;
23  const ContourFinderPresets &presets;
24  public:
25  FindAndFilterOperator (ContourVector &contoursOut_, const RoiRect &rRoi_, const ContourFinderPresets &presets_);
26  void copyMat (cv::Mat rMat) { rMat.copyTo (mat); }
27 #ifdef _TESTEN
28  void operator ()(ContourVecVec &foundVec, ContourVecVec &filteredVec) const;
29 #else
30  void operator ()() const;
31 #endif
32  };
33 
35  {
36  private:
37  DoubleContourSPtrVector &contoursOut;
38  RoiRect &rRoi;
39  FrontHeadModel *lpHeadModel;
40  cv::Mat rMat;
41  void cutFlatContours (DoubleContourVector &contoursOut, const DoubleContourVector &contours, const double hwRatio) const;
42  void joinContours (ContourVector &contoursOut, const ContourVector &contours, const RoiRect &rRoi) const;
43  public:
44  FindAndFilterHandler (DoubleContourSPtrVector &contoursOut_, RoiRect &rRoi_, FrontHeadModel *lpHeadModel_);
45  bool prepare ();
46 #ifdef _TESTEN
47  void operator ()(ContourVecVec &foundVec, ContourVecVec &filteredVec, ContourVector &preJoined, ContourVector &joined) const;
48 #else
49  void operator ()() const;
50 #endif
51  };
52 
53 class FindAndFilterAnalyser : public Analyser<FrontHeadModel>
54  {
55  private:
56  int result;
57 // nur zur visualisierung
58  ContourVecVec rightFoundVec, leftFoundVec;
59  ContourVecVec rightFilteredVec, leftFilteredVec;
60  public:
62  int processing (LogableLogging *lpLogger);
63  bool isQualified ();
64  int getResult () const { return result; }
65 // nur zur visualisierung
66  ContourVecVec* getRightFoundContours () { return &rightFoundVec; }
67  ContourVecVec* getLeftFoundContours () { return &leftFoundVec; }
68  ContourVecVec* getRightFilteredContours() { return &rightFilteredVec; }
69  ContourVecVec* getLeftFilteredContours () { return &leftFilteredVec; }
70  };
71 
72 /*Im Wesentlichen Wrapper -> Einsparen?*/
74 {
75 private:
76  Rating* rating_;
77  CombiSystemsVector& combiStructs;
78  ContourVector& validatedOut_;
79  ContourDataVector& contDatas;
80 
81  RoiRect rRoi;
82  //eingefuehrt wg. Bild f. Segmentierung:
83  FrontHeadModel *lpHeadModel;
84  CciTransformer *lpTransformer;
85  DoubleContourSPtrVector *lpContours;
86  int runSegmentation( const ContourDataVector& contDatasIn) const;
87 public:
89  Rating* status,
90  CombiSystemsVector& combiSystemsIn,
91  ContourVector &validatedOut,
92  ContourDataVector& contDatasIn,
93  const LateralSide side,
94  FrontHeadModel *lpHeadModel);
96  bool canOperate ();
97 #ifdef _TESTEN
98  void operator ()(ContourVector &testValidated, ContourVecVec &testCombinedContours, DoubleContourVector &potContours, DoubleContourVector &cropContours);
99 #else
100  void operator ()() const;
101 #endif
102 };
103 
104 
105 
106 class ContoursValidator : public Analyser<FrontHeadModel>
107  {
108  private:
109  int result;
110  CombiSystemsVector combiStructsL;
111  CombiSystemsVector combiStructsR;
112  ContourDataVector contDatasL;
113  ContourDataVector contDatasR;
114 
115  void setResults(Rating& rating,
116  FrontModelIndex uppermostLensBox,
117  FrontModelIndex lowestLensBox,
118  FrontModelIndex leftestLensBox,
119  FrontModelIndex rightestLensBox,
120  MarkVector& boxPoints,
121  std::vector<int> outerStati,
122  FrontModelIndex uppermostToOuterLensBox,
123  FrontModelIndex lowestToOuterLensBox,
124  FrontModelIndex rightestToOuterLensBox,
125  FrontModelIndex leftestToOuterLensBox,
126  MarkVector& outerFramePoints//,
127  );
128 
129  void computeCombisApproximation(DoubleContourSPtrVector *lpContours,
130  const ContourVector& validated,
131  const CombiSystemsVector& combiStructs);
132  //, MatrixVector* contSpline);
133  public:
134  ContoursValidator (FrontHeadModel& headModel);
135  int processing (LogableLogging *lpLogger);
136  bool isQualified ();
137  int getResult () const { return result; }
138 
139  };
Definition: HeadModel.h:84
Definition: ContoursAnalyser.h:73
CCI = Camera Clamp Image.
Definition: ccitransformer.h:5
Definition: ContoursAnalyser.h:53
Definition: ContourFinder.h:3
Definition: unitDeterminations.h:41
void operator()() const
Definition: ContoursAnalyser.cpp:114
Definition: ContoursAnalyser.h:106
Definition: ContoursAnalyser.h:17
Definition: ContoursAnalyser.h:34
Definition: Analyser.h:5
Definition: Processable.h:29
Definition: CombiSystemsVector.h:7