8 class CInternalQuadrangleGauge;
10 class FL_EXPORT CQuadrangleGauge :
public ImageProcessing::CAlgorithmFeature_SR
16 ETransitionType_DarkToBright = 0x01,
17 ETransitionType_BrightToDark = 0x02,
18 ETransitionType_DarkToBrightOrBrightToDark = 0x04,
19 ETransitionType_DarkToBrightToDark = 0x08,
20 ETransitionType_BrightToDarkToBright = 0x10,
21 ETransitionType_DarkToBrightToDarkOrBrightToDarkToBright = 0x20,
24 enum ETransitionChoice
26 ETransitionChoice_Begin = 0x10000,
27 ETransitionChoice_End = 0x20000,
28 ETransitionChoice_Closest = 0x40000,
29 ETransitionChoice_LargestAmplitude = 0x80000,
30 ETransitionChoice_LargestArea = 0x100000,
35 EMargin_TopSide_Left = 0x0001,
36 EMargin_TopSide_Right = 0x0002,
37 EMargin_TopSide_Both = EMargin_TopSide_Left | EMargin_TopSide_Right,
38 EMargin_RightSide_Top = 0x0004,
39 EMargin_RightSide_Bottom = 0x0008,
40 EMargin_RightSide_Both = EMargin_RightSide_Top | EMargin_RightSide_Bottom,
41 EMargin_BottomSide_Right = 0x0010,
42 EMargin_BottomSide_Left = 0x0020,
43 EMargin_BottomSide_Both = EMargin_BottomSide_Right | EMargin_BottomSide_Left,
44 EMargin_LeftSide_Bottom = 0x0040,
45 EMargin_LeftSide_Top = 0x0080,
46 EMargin_LeftSide_Both = EMargin_LeftSide_Bottom | EMargin_LeftSide_Top,
47 EMargin_All = EMargin_TopSide_Both | EMargin_RightSide_Both | EMargin_BottomSide_Both | EMargin_LeftSide_Both,
52 ETolerance_TopSide_Top = 0x0001,
53 ETolerance_TopSide_Bottom = 0x0002,
54 ETolerance_TopSide_Both = ETolerance_TopSide_Top | ETolerance_TopSide_Bottom,
55 ETolerance_RightSide_Right = 0x0004,
56 ETolerance_RightSide_Left = 0x0008,
57 ETolerance_RightSide_Both = ETolerance_RightSide_Left | ETolerance_RightSide_Right,
58 ETolerance_BottomSide_Bottom = 0x0010,
59 ETolerance_BottomSide_Top = 0x0020,
60 ETolerance_BottomSide_Both = ETolerance_BottomSide_Top | ETolerance_BottomSide_Bottom,
61 ETolerance_LeftSide_Left = 0x0040,
62 ETolerance_LeftSide_Right = 0x0080,
63 ETolerance_LeftSide_Both = ETolerance_LeftSide_Left | ETolerance_LeftSide_Right,
64 ETolerance_All = ETolerance_TopSide_Both | ETolerance_RightSide_Both | ETolerance_BottomSide_Both | ETolerance_LeftSide_Both,
69 CQuadrangleGauge(
const CQuadrangleGauge& rg);
70 CQuadrangleGauge(
const CQuadrangleGauge* pRg);
71 virtual ~CQuadrangleGauge();
73 const CQuadrangleGauge& operator=(
const CQuadrangleGauge& rg);
74 virtual const CResult
Assign(
const CQuadrangleGauge& aib);
75 virtual const CResult
Assign(
const CQuadrangleGauge* pAib);
77 virtual const CResult Execute();
78 virtual const CResult
Clear();
80 virtual const CResult SetMeasurementRegion(
const Foundation::CFLPoint<int32_t>& flpPos1,
const Foundation::CFLPoint<int32_t>& flpPos2,
const Foundation::CFLPoint<int32_t>& flpPos3,
const Foundation::CFLPoint<int32_t>& flpPos4,
const double f64Tolerance = 40.);
81 virtual const CResult SetMeasurementRegion(
const Foundation::CFLPoint<int32_t>* pFlpPos1,
const Foundation::CFLPoint<int32_t>* pFlpPos2,
const Foundation::CFLPoint<int32_t>* pFlpPos3,
const Foundation::CFLPoint<int32_t>* pFlpPos4,
const double f64Tolerance = 40.);
82 virtual const CResult SetMeasurementRegion(
const Foundation::CFLPoint<int64_t>& flpPos1,
const Foundation::CFLPoint<int64_t>& flpPos2,
const Foundation::CFLPoint<int64_t>& flpPos3,
const Foundation::CFLPoint<int64_t>& flpPos4,
const double f64Tolerance = 40.);
83 virtual const CResult SetMeasurementRegion(
const Foundation::CFLPoint<int64_t>* pFlpPos1,
const Foundation::CFLPoint<int64_t>* pFlpPos2,
const Foundation::CFLPoint<int64_t>* pFlpPos3,
const Foundation::CFLPoint<int64_t>* pFlpPos4,
const double f64Tolerance = 40.);
84 virtual const CResult SetMeasurementRegion(
const Foundation::CFLPoint<float>& flpPos1,
const Foundation::CFLPoint<float>& flpPos2,
const Foundation::CFLPoint<float>& flpPos3,
const Foundation::CFLPoint<float>& flpPos4,
const double f64Tolerance = 40.);
85 virtual const CResult SetMeasurementRegion(
const Foundation::CFLPoint<float>* pFlpPos1,
const Foundation::CFLPoint<float>* pFlpPos2,
const Foundation::CFLPoint<float>* pFlpPos3,
const Foundation::CFLPoint<float>* pFlpPos4,
const double f64Tolerance = 40.);
86 virtual const CResult SetMeasurementRegion(
const Foundation::CFLPoint<double>& flpPos1,
const Foundation::CFLPoint<double>& flpPos2,
const Foundation::CFLPoint<double>& flpPos3,
const Foundation::CFLPoint<double>& flpPos4,
const double f64Tolerance = 40.);
87 virtual const CResult SetMeasurementRegion(
const Foundation::CFLPoint<double>* pFlpPos1,
const Foundation::CFLPoint<double>* pFlpPos2,
const Foundation::CFLPoint<double>* pFlpPos3,
const Foundation::CFLPoint<double>* pFlpPos4,
const double f64Tolerance = 40.);
89 virtual const CResult SetMeasurementRegion(
const Foundation::CFLRect<int32_t>& flrRegion,
const double f64Tolerance = 40.);
90 virtual const CResult SetMeasurementRegion(
const Foundation::CFLRect<int32_t>* pFlrRegion,
const double f64Tolerance = 40.);
91 virtual const CResult SetMeasurementRegion(
const Foundation::CFLRect<int64_t>& flrRegion,
const double f64Tolerance = 40.);
92 virtual const CResult SetMeasurementRegion(
const Foundation::CFLRect<int64_t>* pFlrRegion,
const double f64Tolerance = 40.);
93 virtual const CResult SetMeasurementRegion(
const Foundation::CFLRect<float>& flrRegion,
const double f64Tolerance = 40.);
94 virtual const CResult SetMeasurementRegion(
const Foundation::CFLRect<float>* pFlrRegion,
const double f64Tolerance = 40.);
95 virtual const CResult SetMeasurementRegion(
const Foundation::CFLRect<double>& flrRegion,
const double f64Tolerance = 40.);
96 virtual const CResult SetMeasurementRegion(
const Foundation::CFLRect<double>* pFlrRegion,
const double f64Tolerance = 40.);
98 virtual const CResult SetMeasurementRegion(
const Foundation::CFLQuad<int32_t>& flqRegion,
const double f64Tolerance = 40.);
99 virtual const CResult SetMeasurementRegion(
const Foundation::CFLQuad<int32_t>* pFlqRegion,
const double f64Tolerance = 40.);
100 virtual const CResult SetMeasurementRegion(
const Foundation::CFLQuad<int64_t>& flqRegion,
const double f64Tolerance = 40.);
101 virtual const CResult SetMeasurementRegion(
const Foundation::CFLQuad<int64_t>* pFlqRegion,
const double f64Tolerance = 40.);
102 virtual const CResult SetMeasurementRegion(
const Foundation::CFLQuad<float>& flqRegion,
const double f64Tolerance = 40.);
103 virtual const CResult SetMeasurementRegion(
const Foundation::CFLQuad<float>* pFlqRegion,
const double f64Tolerance = 40.);
104 virtual const CResult SetMeasurementRegion(
const Foundation::CFLQuad<double>& flqRegion,
const double f64Tolerance = 40.);
105 virtual const CResult SetMeasurementRegion(
const Foundation::CFLQuad<double>* pFlqRegion,
const double f64Tolerance = 40.);
108 virtual const Foundation::CFLQuad<double> GetMeasurementRegion()
const;
110 virtual const CResult SetTolerance(
double f64Tolerance = 40., ETolerance eTolerance = ETolerance_All);
111 virtual const Base::CFLArray<double> GetTolerance();
113 virtual const CResult SetMeasurementMarginRatio(
double f64Ratio = 0., EMargin eMargin = EMargin_All);
114 virtual const Base::CFLArray<double> GetMeasurementMarginRatio();
116 virtual const CResult SetTransitionType(
const ETransitionType eTransitionType = CQuadrangleGauge::ETransitionType_DarkToBrightOrBrightToDark);
117 virtual ETransitionType GetTransitionType()
const;
119 virtual const CResult SetTransitionChoice(
const ETransitionChoice eTransitionChoice = CQuadrangleGauge::ETransitionChoice_LargestAmplitude);
120 virtual ETransitionChoice GetTransitionChoice()
const;
122 virtual const CResult SetThreshold(
const double f64Threshold = 20);
123 virtual double GetThreshold()
const;
125 virtual const CResult SetMinimumAmplitude(
const double f64MinimumAmplitude = 10);
126 virtual double GetMinimumAmplitude()
const;
128 virtual const CResult SetSamplingStep(
const double f64SamplingStep = 5.);
129 virtual double GetSamplingStep()
const;
131 virtual const CResult EnableClusterMode(
bool bUse =
true);
132 virtual bool IsClusterModeEnabled();
134 virtual const CResult SetOutliersThreshold(
const double f64OutliersThreshold = 3.);
135 virtual double GetOutliersThreshold()
const;
137 virtual const CResult SetOutliersThresholdCount(
const int64_t i64OutliersThresholdCount = 3);
138 virtual int64_t GetOutliersThresholdCount()
const;
140 virtual const CResult SetThickness(
const int64_t i64Thickness = 1);
141 virtual int64_t GetThickness()
const;
143 virtual const CResult EnableConstraintShapeMode(
bool bUse =
true);
144 virtual bool IsConstraintShapeModeEnabled()
const;
146 virtual const Foundation::CFLQuad<double> GetMeasuredObject(int64_t i64Index = 0)
const;
147 virtual const CResult GetMeasuredObject(Foundation::CFLQuad<double>& flqMeasuredObject, int64_t i64Index = 0)
const;
148 virtual const CResult GetMeasuredObject(Foundation::CFLQuad<double>* pFlqMeasuredObject, int64_t i64Index = 0)
const;
150 virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray& flfaResult, int64_t i64Index = 0)
const;
151 virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray* pFlfaResult, int64_t i64Index = 0)
const;
153 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray& flfaResult, int64_t i64Index = 0)
const;
154 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray* pFlfaResult, int64_t i64Index = 0)
const;
156 virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray& flfaResult, int64_t i64Index = 0)
const;
157 virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray* pFlfaResult, int64_t i64Index = 0)
const;
159 virtual const CResult GetMeasuredScore(
double* pF64Score, int64_t i64Index = 0)
const;
160 virtual const CResult GetMeasuredScore(
double& f64Score, int64_t i64Index = 0)
const;
163 DeclareGetClassType();
164 SupportToDuplicateObject(CQuadrangleGauge, *
this);
167 double m_f64Threshold;
168 double m_f64MinimumAmplitude;
169 double m_f64SamplingStep;
170 double m_f64OutliersThreshold;
171 int64_t m_i64OutliersThresholdCount;
172 int64_t m_i64Thickness;
173 Foundation::CFLQuad<double> m_flqMeasurementQuad;
174 Base::CFLArray<double> m_arrF64Tolerance;
175 Base::CFLArray<double> m_arrF64MarginRatio;
176 CQuadrangleGauge::ETransitionType m_eTransitionType;
177 CQuadrangleGauge::ETransitionChoice m_eTransitionChoice;
180 bool m_bConstraintShapeMode;
181 int32_t m_i32ThreadNum;
186 friend class CInternalQuadrangleGauge;
188 CInternalQuadrangleGauge* m_pInternal;
Definition AlgorithmFeature_DI_BAT_CI.h:15
@ Assign
CGUIPropertyItemView3DFigure 의 값을 해당 도형으로 설정하는 함수
Definition DefinitionsGUIView3D.h:2732
@ Clear
도형 정리 메뉴
Definition DefinitionsGUI.h:2058