FLImaging 7.8.25.3
LineGauge.h
1#pragma once
2
18
19#include "DefinitionsAdvancedFunctions.h"
20
22namespace FLImaging
23{
25 namespace AdvancedFunctions
26 {
27 class CInternalLineGauge;
28 class CInternalLineGapDetector;
29
46 {
47 public:
48
58 {
67
76
85
94
103
112 };
113
123 {
164 };
165
174
183
192
200 virtual ~CLineGauge();
201
209 const CLineGauge& operator=(const CLineGauge& lg);
210
224 virtual const CResult Assign(const CLineGauge& aib);
238 virtual const CResult Assign(const CLineGauge* pAib);
239
251 virtual const CResult Execute();
252
264 virtual const CResult Clear();
265
287 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int32_t>* pFlpRegion, double f64Length, double f64Angle, double f64Tolerance = 40.);
309 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int32_t>& flpRegion, double f64Length, double f64Angle, double f64Tolerance = 40.);
331 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int64_t>* pFlpRegion, double f64Length, double f64Angle, double f64Tolerance = 40.);
353 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int64_t>& flpRegion, double f64Length, double f64Angle, double f64Tolerance = 40.);
375 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<float>* pFlpRegion, double f64Length, double f64Angle, double f64Tolerance = 40.);
397 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<float>& flpRegion, double f64Length, double f64Angle, double f64Tolerance = 40.);
419 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<double>* pFlpRegion, double f64Length, double f64Angle, double f64Tolerance = 40.);
441 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<double>& flpRegion, double f64Length, double f64Angle, double f64Tolerance = 40.);
459 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int32_t>* pFllRegion, double f64Tolerance = 40.);
477 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int32_t>& fllRegion, double f64Tolerance = 40.);
495 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int64_t>* pFllRegion, double f64Tolerance = 40.);
513 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int64_t>& fllRegion, double f64Tolerance = 40.);
531 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<float>* pFllRegion, double f64Tolerance = 40.);
549 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<float>& fllRegion, double f64Tolerance = 40.);
567 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<double>* pFllRegion, double f64Tolerance = 40.);
585 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<double>& fllRegion, double f64Tolerance = 40.);
605 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int32_t>* pFllRegion, double f64ToleranceLeft, double f64ToleranceRight);
625 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int32_t>& fllRegion, double f64ToleranceLeft, double f64ToleranceRight);
645 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int64_t>* pFllRegion, double f64ToleranceLeft, double f64ToleranceRight);
665 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int64_t>& fllRegion, double f64ToleranceLeft, double f64ToleranceRight);
685 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<float>* pFllRegion, double f64ToleranceLeft, double f64ToleranceRight);
705 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<float>& fllRegion, double f64ToleranceLeft, double f64ToleranceRight);
725 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<double>* pFllRegion, double f64ToleranceLeft, double f64ToleranceRight);
745 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<double>& fllRegion, double f64ToleranceLeft, double f64ToleranceRight);
886
915
944
958 virtual const CResult SetThreshold(double f64Threshold = 20);
968 virtual double GetThreshold() const;
969
983 virtual const CResult SetMinimumAmplitude(double f64MinimumAmplitude = 10);
993 virtual double GetMinimumAmplitude() const;
994
1008 virtual const CResult SetSamplingStep(double f64SamplingStep = 5.);
1018 virtual double GetSamplingStep() const;
1019
1033 virtual const CResult EnableClusterMode(bool bEnable = true);
1043 virtual bool IsClusterModeEnabled() const;
1044
1097
1111 virtual const CResult SetOutliersThreshold(double f64OutliersThreshold = 3.);
1121 virtual double GetOutliersThreshold() const;
1122
1136 virtual const CResult SetOutliersThresholdCount(int64_t i64OutliersThresholdCount = 3);
1146 virtual int64_t GetOutliersThresholdCount() const;
1147
1161 virtual const CResult SetThickness(int64_t i64Thickness = 1);
1162
1172 virtual int64_t GetThickness() const;
1173
1189 virtual const CResult GetTolerance(double& f64Left, double& f64Right) const;
1190
1204 virtual const CResult EnableRegression(bool bEnable = true);
1205
1215 virtual const bool IsRegressionEnabled() const;
1216
1230 virtual const CResult EnableOptimalFitting(bool bEnable = true);
1231
1241 virtual const bool IsOptimalFittingEnabled() const;
1242
1256 virtual const CResult EnableAccurateMode(bool bAccurateMode = false);
1257
1267 virtual bool IsAccurateModeEnabled() const;
1268
1286 virtual const Foundation::CFLLine<double> GetMeasuredObject(int64_t i64Index = 0) const;
1287
1309 virtual const CResult GetMeasuredObject(Foundation::CFLLine<double>& fllMeasuredObject, int64_t i64Index = 0) const;
1310
1332 virtual const CResult GetMeasuredObject(Foundation::CFLLine<double>* pFllMeasuredObject, int64_t i64Index = 0) const;
1333
1355 virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray& flfaResult, int64_t i64Index = 0) const;
1377 virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray* pFlfaResult, int64_t i64Index = 0) const;
1399 virtual const CResult GetMeasuredValidPoints(Foundation::CFLPointArray& flpaResult, int64_t i64Index = 0) const;
1421 virtual const CResult GetMeasuredValidPoints(Foundation::CFLPointArray* pFlpaResult, int64_t i64Index = 0) const;
1422
1440 const CResult GetMeasuredTransitionOfValidPoints(Base::CFLArray<int32_t>& flaResult, int64_t i64Index = 0) const;
1458 const CResult GetMeasuredTransitionOfValidPoints(Base::CFLArray<int32_t>* pFlaResult, int64_t i64Index = 0) const;
1459
1481 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray& flfaResult, int64_t i64Index = 0) const;
1503 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray* pFlfaResult, int64_t i64Index = 0) const;
1525 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray& flpaResult, int64_t i64Index = 0) const;
1547 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray* pFlpaResult, int64_t i64Index = 0) const;
1548
1566 const CResult GetMeasuredTransitionOfInvalidPoints(Base::CFLArray<int32_t>& flaResult, int64_t i64Index = 0) const;
1584 const CResult GetMeasuredTransitionOfInvalidPoints(Base::CFLArray<int32_t>* pFlaResult, int64_t i64Index = 0) const;
1585
1607 virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray& flfaResult, int64_t i64Index = 0) const;
1629 virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray* pFlfaResult, int64_t i64Index = 0) const;
1651 virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray& flpaResult, int64_t i64Index = 0) const;
1673 virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray* pFlpaResult, int64_t i64Index = 0) const;
1674
1692 const CResult GetMeasuredTransition(Base::CFLArray<int32_t>& flaResult, int64_t i64Index = 0) const;
1710 const CResult GetMeasuredTransition(Base::CFLArray<int32_t>* pFlaResult, int64_t i64Index = 0) const;
1711
1731 virtual const CResult GetMeasuredScore(double* pF64Score, int64_t i64Index = 0) const;
1751 virtual const CResult GetMeasuredScore(double& f64Score, int64_t i64Index = 0) const;
1752
1765
1778
1798 virtual const CResult GetMeasuredProfile(Base::CFLArray<double>& flaProfile, Base::CFLArray<double>& flaDerivative, double& f64MeasuredAverageDistance);
1799
1800 virtual bool IsLicenseAvailable() const override;
1801
1802
1803 DeclareGetClassType();
1804 SupportToDuplicateObject(CLineGauge, *this);
1805
1806 protected:
1815
1824
1833
1842
1851
1860
1871
1880
1889
1900
1911
1922
1931
1940
1949
1958
1959 protected:
1960 friend class CInternalLineGauge;
1961 friend class CInternalLineGapDetector;
1962
1963 CInternalLineGauge* m_pInternal;
1964 };
1965 }
1966}
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< float > &flrRegion)
virtual const CResult GetMeasuredScore(double *pF64Score, int64_t i64Index=0) const
const CResult GetMeasuredTransition(Base::CFLArray< int32_t > *pFlaResult, int64_t i64Index=0) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< float > &fllRegion, double f64ToleranceLeft, double f64ToleranceRight)
virtual const CResult SetTransitionType(ETransitionType eTransitionType=ETransitionType_DarkToBrightOrBrightToDark)
const CResult GetMeasuredTransitionOfValidPoints(Base::CFLArray< int32_t > &flaResult, int64_t i64Index=0) const
virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray *pFlpaResult, int64_t i64Index=0) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int64_t > &fllRegion, double f64ToleranceLeft, double f64ToleranceRight)
virtual const CResult Assign(const CLineGauge *pAib)
ETransitionChoice m_eTransitionChoice
Definition LineGauge.h:1921
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< double > *pFlrRegion)
virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray &flfaResult, int64_t i64Index=0) const
virtual const CResult GetMeasuredObject(Foundation::CFLLine< double > &fllMeasuredObject, int64_t i64Index=0) const
virtual int64_t GetThickness() const
EGaugeOutlierFilteringMode m_eOutlierFilteringMode
Definition LineGauge.h:1899
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< double > &fllRegion, double f64ToleranceLeft, double f64ToleranceRight)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< double > &flpRegion, double f64Length, double f64Angle, double f64Tolerance=40.)
virtual ETransitionChoice GetTransitionChoice() const
virtual double GetOutliersThreshold() const
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray *pFlpaResult, int64_t i64Index=0) const
Foundation::CFLLine< double > m_fllMeasurementLine
Definition LineGauge.h:1870
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int64_t > *pFllRegion, double f64Tolerance=40.)
bool m_bAccurateMode
Definition LineGauge.h:1957
double m_f64ToleranceRight
Definition LineGauge.h:1888
double m_f64SamplingStep
Definition LineGauge.h:1832
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< float > &fllRegion, double f64Tolerance=40.)
bool m_bClusterMode
Definition LineGauge.h:1930
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< double > &flrRegion)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int64_t > &flpRegion, double f64Length, double f64Angle, double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int32_t > &fllRegion, double f64ToleranceLeft, double f64ToleranceRight)
int64_t m_i64OutliersThresholdCount
Definition LineGauge.h:1850
virtual const CResult SetThickness(int64_t i64Thickness=1)
bool m_bEnable
Definition LineGauge.h:1939
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< float > *pFllRegion, double f64ToleranceLeft, double f64ToleranceRight)
virtual bool IsAccurateModeEnabled() const
virtual const CResult EnableRegression(bool bEnable=true)
virtual const CResult GetMeasuredValidPoints(Foundation::CFLPointArray &flpaResult, int64_t i64Index=0) const
virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray *pFlfaResult, int64_t i64Index=0) const
virtual const CResult GetTolerance(double &f64Left, double &f64Right) const
virtual const CResult SetSamplingStep(double f64SamplingStep=5.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int64_t > *pFlrRegion)
virtual Foundation::CFLLine< double > GetMeasurementRegion() const
virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray *pFlfaResult, int64_t i64Index=0) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int32_t > &fllRegion, double f64Tolerance=40.)
virtual const bool IsRegressionEnabled() const
virtual EGaugeOutlierFilteringMode GetOutlierFilteringMode() const
const CLineGauge & operator=(const CLineGauge &lg)
virtual const CResult GetMeasuredScore(double &f64Score, int64_t i64Index=0) const
virtual const CResult SetOutliersThreshold(double f64OutliersThreshold=3.)
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray *pFlfaResult, int64_t i64Index=0) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int64_t > &flrRegion)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< float > &flpRegion, double f64Length, double f64Angle, double f64Tolerance=40.)
virtual bool IsLicenseAvailable() const override
Returns whether the algorithm can be used with the current license.
virtual const CResult GetMeasuredProfile(Base::CFLArray< double > &flaProfile, Base::CFLArray< double > &flaDerivative, double &f64MeasuredAverageDistance)
ETransitionType m_eTransitionType
Definition LineGauge.h:1910
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< double > *pFllRegion, double f64ToleranceLeft, double f64ToleranceRight)
const CResult GetMeasuredTransition(Base::CFLArray< int32_t > &flaResult, int64_t i64Index=0) const
int64_t m_i64Thickness
Definition LineGauge.h:1859
virtual const CResult SetMinimumAmplitude(double f64MinimumAmplitude=10)
virtual const CResult EnableClusterMode(bool bEnable=true)
virtual int64_t GetOutliersThresholdCount() const
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int64_t > &fllRegion, double f64Tolerance=40.)
virtual double GetMinimumAmplitude() const
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< double > *pFlpRegion, double f64Length, double f64Angle, double f64Tolerance=40.)
double m_f64OutliersThreshold
Definition LineGauge.h:1841
virtual const Foundation::CFLLine< double > GetMeasuredObject(int64_t i64Index=0) const
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray &flpaResult, int64_t i64Index=0) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int32_t > *pFllRegion, double f64Tolerance=40.)
virtual const CResult Assign(const CLineGauge &aib)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int32_t > &flrRegion)
const CResult GetMeasuredTransitionOfInvalidPoints(Base::CFLArray< int32_t > *pFlaResult, int64_t i64Index=0) const
virtual const CResult GetMeasuredObject(Foundation::CFLLine< double > *pFllMeasuredObject, int64_t i64Index=0) const
virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray &flfaResult, int64_t i64Index=0) const
double m_f64ToleranceLeft
Definition LineGauge.h:1879
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int32_t > *pFlpRegion, double f64Length, double f64Angle, double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< double > &fllRegion, double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int32_t > &flpRegion, double f64Length, double f64Angle, double f64Tolerance=40.)
virtual const CResult GetMeasuredValidPoints(Foundation::CFLPointArray *pFlpaResult, int64_t i64Index=0) const
virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray &flpaResult, int64_t i64Index=0) const
virtual const CResult SetOutliersThresholdCount(int64_t i64OutliersThresholdCount=3)
virtual const CResult SetTransitionChoice(ETransitionChoice eTransitionChoice=ETransitionChoice_LargestAmplitude)
virtual const Foundation::CFLLine< double > GetMeasuredLine() const
const CResult GetMeasuredTransitionOfInvalidPoints(Base::CFLArray< int32_t > &flaResult, int64_t i64Index=0) const
double m_f64Threshold
Definition LineGauge.h:1814
ETransitionType
Definition LineGauge.h:58
@ ETransitionType_DarkToBrightOrBrightToDark
Definition LineGauge.h:84
@ ETransitionType_DarkToBrightToDark
Definition LineGauge.h:93
@ ETransitionType_BrightToDark
Definition LineGauge.h:75
@ ETransitionType_DarkToBright
Definition LineGauge.h:66
@ ETransitionType_BrightToDarkToBright
Definition LineGauge.h:102
@ ETransitionType_DarkToBrightToDarkOrBrightToDarkToBright
Definition LineGauge.h:111
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< float > *pFlrRegion)
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int32_t > *pFllRegion, double f64ToleranceLeft, double f64ToleranceRight)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int32_t > *pFlrRegion)
bool m_bOptimalFitting
Definition LineGauge.h:1948
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< float > *pFlpRegion, double f64Length, double f64Angle, double f64Tolerance=40.)
ETransitionChoice
Definition LineGauge.h:123
@ ETransitionChoice_Closest
Definition LineGauge.h:147
@ ETransitionChoice_End
Definition LineGauge.h:139
@ ETransitionChoice_LargestAmplitude
Definition LineGauge.h:155
@ ETransitionChoice_LargestArea
Definition LineGauge.h:163
@ ETransitionChoice_Begin
Definition LineGauge.h:131
double m_f64MinimumAmplitude
Definition LineGauge.h:1823
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< double > *pFllRegion, double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int64_t > *pFllRegion, double f64ToleranceLeft, double f64ToleranceRight)
virtual double GetSamplingStep() const
const CResult GetMeasuredTransitionOfValidPoints(Base::CFLArray< int32_t > *pFlaResult, int64_t i64Index=0) const
virtual const CResult EnableOptimalFitting(bool bEnable=true)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int64_t > *pFlpRegion, double f64Length, double f64Angle, double f64Tolerance=40.)
virtual const Foundation::CFLFigureArray GetActualMeasurementRegion()
virtual const CResult SetOutlierFilteringMode(EGaugeOutlierFilteringMode eOutlierFilteringMode=EGaugeOutlierFilteringMode_Manual)
virtual ETransitionType GetTransitionType() const
virtual const CResult SetThreshold(double f64Threshold=20)
virtual const CResult EnableAccurateMode(bool bAccurateMode=false)
virtual const bool IsOptimalFittingEnabled() const
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< float > *pFllRegion, double f64Tolerance=40.)
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray &flfaResult, int64_t i64Index=0) const
Template type array class.
Definition FLArray.h:71
FLImaging module execution result object.
Definition ResultsDef.h:1704
A base class representing array of figure.
Definition FLFigureArray.h:27
A class representing a line.
Definition FLLine.h:25
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