FLImaging 7.8.25.3
CircleGauge.h
1#pragma once
2
3#include "DefinitionsAdvancedFunctions.h"
4
21
22
24namespace FLImaging
25{
27 namespace AdvancedFunctions
28 {
29 class CInternalCircleGauge;
30 class CInternalCircleArrayGauge;
31
48 {
49 public:
50
60 {
69
78
87
96
105
114 };
115
125 {
134
143
152
161
170 };
171
181 {
190
199 };
200
209
218
227
235 virtual ~CCircleGauge();
236
245
259 virtual const CResult Assign(const CCircleGauge& aib);
260
274 virtual const CResult Assign(const CCircleGauge* pAib);
275
287 virtual const CResult Execute();
288
300 virtual const CResult Clear();
301
327 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int32_t>& flpCenter, double f64Diameter, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360., double f64Angle = 0.);
328
354 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int32_t>* pFlpCenter, double f64Diameter, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360., double f64Angle = 0.);
355
381 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int64_t>& flpCenter, double f64Diameter, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360., double f64Angle = 0.);
382
408 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int64_t>* pFlpCenter, double f64Diameter, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360., double f64Angle = 0.);
409
435 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<float>& flpCenter, double f64Diameter, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360., double f64Angle = 0.);
436
462 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<float>* pFlpCenter, double f64Diameter, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360., double f64Angle = 0.);
463
489 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<double>& flpCenter, double f64Diameter, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360., double f64Angle = 0.);
490
516 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<double>* pFlpCenter, double f64Diameter, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360., double f64Angle = 0.);
517
543 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<int32_t>& flrRegion, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360.);
544
570 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<int32_t>* pFlrRegion, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360.);
571
597 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<int64_t>& flrRegion, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360.);
598
624 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<int64_t>* pFlrRegion, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360.);
625
651 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<float>& flrRegion, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360.);
652
676 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<float>* pFlrRegion, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360.);
677
703 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<double>& flrRegion, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360.);
704
730 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<double>* pFlrRegion, double f64Tolerance = 40., double f64StartDeg = 0., double f64DeltaDeg = 360.);
731
749 virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle<int32_t>& flcRegion, double f64Tolerance = 40.);
750
768 virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle<int32_t>* pFlcRegion, double f64Tolerance = 40.);
769
787 virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle<int64_t>& flcRegion, double f64Tolerance = 40.);
788
806 virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle<int64_t>* pFlcRegion, double f64Tolerance = 40.);
807
825 virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle<float>& flcRegion, double f64Tolerance = 40.);
826
844 virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle<float>* pFlcRegion, double f64Tolerance = 40.);
845
863 virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle<double>& flcRegion, double f64Tolerance = 40.);
864
882 virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle<double>* pFlcRegion, double f64Tolerance = 40.);
883
896
913
926
943
956
973
986
1000 virtual const CResult SetThreshold(double f64Threshold = 20);
1001
1011 virtual double GetThreshold() const;
1012
1026 virtual const CResult SetMinimumAmplitude(double f64MinimumAmplitude = 10);
1027
1037 virtual double GetMinimumAmplitude() const;
1038
1052 virtual const CResult SetSamplingStep(double f64SamplingStep = 5.);
1053
1063 virtual double GetSamplingStep() const;
1064
1078 virtual const CResult EnableClusterMode(bool bEnable = true);
1088 virtual bool IsClusterModeEnabled() const;
1089
1142
1156 virtual const CResult SetOutliersThreshold(double f64OutliersThreshold = 3.);
1157
1167 virtual double GetOutliersThreshold() const;
1168
1182 virtual const CResult SetOutliersThresholdCount(int64_t i64OutliersThresholdCount = 3);
1183
1193 virtual int64_t GetOutliersThresholdCount() const;
1194
1208 virtual const CResult SetThickness(int64_t i64Thickness = 1);
1209
1219 virtual int64_t GetThickness() const;
1220
1230 virtual double GetTolerance() const;
1231
1245 virtual const CResult EnableRegression(bool bEnable = true);
1246
1256 virtual const bool IsRegressionEnabled() const;
1257
1271 virtual const CResult EnableOptimalFitting(bool bEnable = true);
1272
1282 virtual const bool IsOptimalFittingEnabled() const;
1283
1297 virtual const CResult EnableAccurateMode(bool bAccurateMode = false);
1298
1308 virtual bool IsAccurateModeEnabled() const;
1309
1327 virtual const Foundation::CFLCircle<double> GetMeasuredObject(int64_t i64TransitionIndex = 0) const;
1328
1350 virtual const CResult GetMeasuredObject(Foundation::CFLCircle<double>& flcMeasuredObject, int64_t i64TransitionIndex = 0) const;
1351
1373 virtual const CResult GetMeasuredObject(Foundation::CFLCircle<double>* pFlcMeasuredObject, int64_t i64TransitionIndex = 0) const;
1374
1396 virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray& flfaResult, int64_t i64TransitionIndex = 0) const;
1418 virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray* pFlfaResult, int64_t i64TransitionIndex = 0) const;
1440 virtual const CResult GetMeasuredValidPoints(Foundation::CFLPointArray& flpaResult, int64_t i64TransitionIndex = 0) const;
1462 virtual const CResult GetMeasuredValidPoints(Foundation::CFLPointArray* pFlpaResult, int64_t i64TransitionIndex = 0) const;
1463
1481 virtual const CResult GetMeasuredTransitionOfValidPoints(Base::CFLArray<int32_t>& flaResult, int64_t i64TransitionIndex = 0) const;
1499 virtual const CResult GetMeasuredTransitionOfValidPoints(Base::CFLArray<int32_t>* pFlaResult, int64_t i64TransitionIndex = 0) const;
1500
1522 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray& flfaResult, int64_t i64TransitionIndex = 0) const;
1544 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray* pFlfaResult, int64_t i64TransitionIndex = 0) const;
1566 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray& flpaResult, int64_t i64TransitionIndex = 0) const;
1588 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray* pFlpaResult, int64_t i64TransitionIndex = 0) const;
1589
1607 virtual const CResult GetMeasuredTransitionOfInvalidPoints(Base::CFLArray<int32_t>& flaResult, int64_t i64TransitionIndex = 0) const;
1625 virtual const CResult GetMeasuredTransitionOfInvalidPoints(Base::CFLArray<int32_t>* pFlaResult, int64_t i64TransitionIndex = 0) const;
1626
1648 virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray& flfaResult, int64_t i64TransitionIndex = 0) const;
1670 virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray* pFlfaResult, int64_t i64TransitionIndex = 0) const;
1692 virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray& flpaResult, int64_t i64TransitionIndex = 0) const;
1714 virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray* pFlpaResult, int64_t i64TransitionIndex = 0) const;
1715
1733 virtual const CResult GetMeasuredTransition(Base::CFLArray<int32_t>& flaResult, int64_t i64TransitionIndex = 0) const;
1751 virtual const CResult GetMeasuredTransition(Base::CFLArray<int32_t>* pFlaResult, int64_t i64TransitionIndex = 0) const;
1752
1772 virtual const CResult GetMeasuredScore(double* pF64Score, int64_t i64TransitionIndex = 0) const;
1773
1793 virtual const CResult GetMeasuredScore(double& f64Score, int64_t i64TransitionIndex = 0) const;
1794
1807
1827 virtual const CResult GetMeasuredProfile(Base::CFLArray<double>& flaProfile, Base::CFLArray<double>& flaDerivative, double& f64MeasuredAverageDistance);
1828
1829 virtual bool IsLicenseAvailable() const override;
1830
1831
1832 DeclareGetClassType();
1833 SupportToDuplicateObject(CCircleGauge, *this);
1834
1835 protected:
1844
1853
1862
1871
1880
1889
1900
1909
1920
1931
1942
1951
1960
1971
1980
1989
1990 protected:
1991 friend class CInternalCircleGauge;
1992 friend class CInternalCircleArrayGauge;
1993
1994 CInternalCircleGauge* m_pInternal;
1995 };
1996 }
1997}
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int64_t > *pFlpCenter, double f64Diameter, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360., double f64Angle=0.)
virtual const CResult GetMeasuredTransitionOfInvalidPoints(Base::CFLArray< int32_t > *pFlaResult, int64_t i64TransitionIndex=0) const
virtual const CResult GetMeasuredTransitionOfInvalidPoints(Base::CFLArray< int32_t > &flaResult, int64_t i64TransitionIndex=0) const
virtual const CResult SetThickness(int64_t i64Thickness=1)
const CCircleGauge & operator=(const CCircleGauge &cg)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int64_t > &flpCenter, double f64Diameter, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360., double f64Angle=0.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< float > &flpCenter, double f64Diameter, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360., double f64Angle=0.)
ETransitionType m_eTransitionType
Definition CircleGauge.h:1930
double m_f64Threshold
Definition CircleGauge.h:1843
virtual const CResult SetTransitionType(ETransitionType eTransitionType=ETransitionType_DarkToBrightOrBrightToDark)
virtual const bool IsOptimalFittingEnabled() const
virtual const CResult GetMeasuredScore(double *pF64Score, int64_t i64TransitionIndex=0) const
virtual int64_t GetOutliersThresholdCount() const
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int32_t > &flpCenter, double f64Diameter, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360., double f64Angle=0.)
virtual EGaugeOutlierFilteringMode GetOutlierFilteringMode() const
virtual const bool IsRegressionEnabled() const
virtual const CResult SetMinimumAmplitude(double f64MinimumAmplitude=10)
virtual const CResult SetOutliersThresholdCount(int64_t i64OutliersThresholdCount=3)
virtual const CResult Assign(const CCircleGauge &aib)
EGaugeOutlierFilteringMode m_eOutlierFilteringMode
Definition CircleGauge.h:1919
virtual const CResult SetSamplingStep(double f64SamplingStep=5.)
virtual const CResult GetMeasuredObject(Foundation::CFLCircle< double > *pFlcMeasuredObject, int64_t i64TransitionIndex=0) const
virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray *pFlfaResult, int64_t i64TransitionIndex=0) const
virtual const CResult SetOutlierFilteringMode(EGaugeOutlierFilteringMode eOutlierFilteringMode=EGaugeOutlierFilteringMode_Manual)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< double > &flrRegion, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360.)
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray &flfaResult, int64_t i64TransitionIndex=0) const
Foundation::CFLCircle< double > m_flcMeasurementCircle
Definition CircleGauge.h:1899
virtual ETransitionType GetTransitionType() const
virtual ETransitionChoice GetTransitionChoice() const
virtual const CResult EnableRegression(bool bEnable=true)
virtual const CResult GetMeasuredValidPoints(Foundation::CFLPointArray *pFlpaResult, int64_t i64TransitionIndex=0) const
virtual const CResult GetMeasuredTransition(Base::CFLArray< int32_t > *pFlaResult, int64_t i64TransitionIndex=0) const
int64_t m_i64OutliersThresholdCount
Definition CircleGauge.h:1879
virtual const CResult GetMeasuredProfile(Base::CFLArray< double > &flaProfile, Base::CFLArray< double > &flaDerivative, double &f64MeasuredAverageDistance)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< float > &flrRegion, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360.)
virtual Foundation::CFLCircle< double > GetMeasurementRegion() const
virtual const CResult EnableAccurateMode(bool bAccurateMode=false)
virtual ESearchDirection GetSearchDirection() const
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< float > *pFlpCenter, double f64Diameter, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360., double f64Angle=0.)
double m_f64Tolerance
Definition CircleGauge.h:1908
virtual const CResult GetMeasuredTransition(Base::CFLArray< int32_t > &flaResult, int64_t i64TransitionIndex=0) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int64_t > &flrRegion, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360.)
virtual double GetOutliersThreshold() const
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int64_t > *pFlrRegion, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360.)
virtual const CResult Assign(const CCircleGauge *pAib)
ESearchDirection
Definition CircleGauge.h:181
@ ESearchDirection_InsideToOutside
Definition CircleGauge.h:189
@ ESearchDirection_OutsideToInside
Definition CircleGauge.h:198
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray *pFlpaResult, int64_t i64TransitionIndex=0) const
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray &flpaResult, int64_t i64TransitionIndex=0) const
double m_f64SamplingStep
Definition CircleGauge.h:1861
bool m_bAccurateMode
Definition CircleGauge.h:1988
virtual const CResult SetOutliersThreshold(double f64OutliersThreshold=3.)
virtual const CResult GetMeasuredObject(Foundation::CFLCircle< double > &flcMeasuredObject, int64_t i64TransitionIndex=0) const
virtual const CResult GetMeasuredScore(double &f64Score, int64_t i64TransitionIndex=0) const
double m_f64MinimumAmplitude
Definition CircleGauge.h:1852
virtual const CResult EnableClusterMode(bool bEnable=true)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< double > &flpCenter, double f64Diameter, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360., double f64Angle=0.)
virtual bool IsLicenseAvailable() const override
Returns whether the algorithm can be used with the current license.
virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle< float > &flcRegion, double f64Tolerance=40.)
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray *pFlfaResult, int64_t i64TransitionIndex=0) const
ETransitionType
Definition CircleGauge.h:60
@ ETransitionType_DarkToBrightToDark
Definition CircleGauge.h:95
@ ETransitionType_DarkToBrightOrBrightToDark
Definition CircleGauge.h:86
@ ETransitionType_BrightToDarkToBright
Definition CircleGauge.h:104
@ ETransitionType_BrightToDark
Definition CircleGauge.h:77
@ ETransitionType_DarkToBrightToDarkOrBrightToDarkToBright
Definition CircleGauge.h:113
@ ETransitionType_DarkToBright
Definition CircleGauge.h:68
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int32_t > *pFlrRegion, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle< double > *pFlcRegion, double f64Tolerance=40.)
virtual const Foundation::CFLCircle< double > GetMeasuredObject(int64_t i64TransitionIndex=0) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< double > *pFlrRegion, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360.)
virtual const CResult SetTransitionChoice(ETransitionChoice eTransitionChoice=ETransitionChoice_LargestAmplitude)
bool m_bEnable
Definition CircleGauge.h:1959
virtual const Foundation::CFLFigureArray GetActualMeasurementRegion()
virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle< float > *pFlcRegion, double f64Tolerance=40.)
virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray *pFlfaResult, int64_t i64TransitionIndex=0) const
int64_t m_i64Thickness
Definition CircleGauge.h:1888
virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray &flfaResult, int64_t i64TransitionIndex=0) const
bool m_bClusterMode
Definition CircleGauge.h:1950
virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray *pFlpaResult, int64_t i64TransitionIndex=0) const
virtual const CResult GetMeasuredTransitionOfValidPoints(Base::CFLArray< int32_t > &flaResult, int64_t i64TransitionIndex=0) const
virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray &flpaResult, int64_t i64TransitionIndex=0) const
bool m_bOptimalFitting
Definition CircleGauge.h:1979
double m_f64OutliersThreshold
Definition CircleGauge.h:1870
virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle< int64_t > &flcRegion, double f64Tolerance=40.)
virtual const CResult EnableOptimalFitting(bool bEnable=true)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< double > *pFlpCenter, double f64Diameter, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360., double f64Angle=0.)
virtual const CResult GetMeasuredTransitionOfValidPoints(Base::CFLArray< int32_t > *pFlaResult, int64_t i64TransitionIndex=0) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int32_t > *pFlpCenter, double f64Diameter, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360., double f64Angle=0.)
ETransitionChoice
Definition CircleGauge.h:125
@ ETransitionChoice_Begin
Definition CircleGauge.h:133
@ ETransitionChoice_LargestArea
Definition CircleGauge.h:169
@ ETransitionChoice_Closest
Definition CircleGauge.h:151
@ ETransitionChoice_End
Definition CircleGauge.h:142
@ ETransitionChoice_LargestAmplitude
Definition CircleGauge.h:160
ETransitionChoice m_eTransitionChoice
Definition CircleGauge.h:1941
virtual const CResult GetMeasuredValidPoints(Foundation::CFLPointArray &flpaResult, int64_t i64TransitionIndex=0) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle< double > &flcRegion, double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int32_t > &flrRegion, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360.)
virtual const CResult SetThreshold(double f64Threshold=20)
virtual const CResult SetSearchDirection(ESearchDirection eSearchDirection=ESearchDirection_InsideToOutside)
virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle< int32_t > *pFlcRegion, double f64Tolerance=40.)
virtual double GetMinimumAmplitude() const
virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle< int32_t > &flcRegion, double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< float > *pFlrRegion, double f64Tolerance=40., double f64StartDeg=0., double f64DeltaDeg=360.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLCircle< int64_t > *pFlcRegion, double f64Tolerance=40.)
ESearchDirection m_eSearchDirection
Definition CircleGauge.h:1970
virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray &flfaResult, int64_t i64TransitionIndex=0) const
Template type array class.
Definition FLArray.h:71
FLImaging module execution result object.
Definition ResultsDef.h:1704
A class representing circle.
Definition FLCircle.h:25
A base class representing array of figure.
Definition FLFigureArray.h:27
A base class representing array of figure.
Definition FLPointArray.h:26
A class representing a point.
Definition FLPoint.h:24
A class representing a rectangle.
Definition FLRect.h:24
Base class of image processing classes Base of imaging algorithm classes, has common getter/setter.
Definition AlgorithmFeature_SR.h:31
Definition AlgorithmFeature_DI_BAT_CI.h:15
EGaugeOutlierFilteringMode
Definition DefinitionsAdvancedFunctions.h:901
@ EGaugeOutlierFilteringMode_Manual
Definition DefinitionsAdvancedFunctions.h:906