FLImaging 7.8.25.3
CrossGauge.h
1#pragma once
2
3#include "DefinitionsAdvancedFunctions.h"
4
21
22
24namespace FLImaging
25{
27 namespace AdvancedFunctions
28 {
29 class CInternalCrossGauge;
30
48 {
49 public:
50
60 {
69
78
87 };
88
98 {
107
116
125 };
126
135
144
153
161 virtual ~CCrossGauge();
162
171
185 virtual const CResult Assign(const CCrossGauge& aib);
186
200 virtual const CResult Assign(const CCrossGauge* pAib);
201
213 virtual const CResult Execute();
214
226 virtual const CResult Clear();
227
251 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int32_t>& flpRegion, double f64Width = 80., double f64Height = 80., double f64Angle = 0., double f64Tolerance = 40.);
252
276 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int32_t>* pFlpRegion, double f64Width = 80., double f64Height = 80., double f64Angle = 0., double f64Tolerance = 40.);
277
301 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int64_t>& flpRegion, double f64Width = 80., double f64Height = 80., double f64Angle = 0., double f64Tolerance = 40.);
302
326 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int64_t>* pFlpRegion, double f64Width = 80., double f64Height = 80., double f64Angle = 0., double f64Tolerance = 40.);
327
351 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<float>& flpRegion, double f64Width = 80., double f64Height = 80., double f64Angle = 0., double f64Tolerance = 40.);
352
376 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<float>* pFlpRegion, double f64Width = 80., double f64Height = 80., double f64Angle = 0., double f64Tolerance = 40.);
377
401 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<double>& flpRegion, double f64Width = 80., double f64Height = 80., double f64Angle = 0., double f64Tolerance = 40.);
402
426 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<double>* pFlpRegion, double f64Width = 80., double f64Height = 80., double f64Angle = 0., double f64Tolerance = 40.);
427
445 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<int32_t>& flrRegion, double f64Tolerance = 40.);
446
464 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<int32_t>* pFlrRegion, double f64Tolerance = 40.);
465
483 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<int64_t>& flrRegion, double f64Tolerance = 40.);
484
502 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<int64_t>* pFlrRegion, double f64Tolerance = 40.);
503
521 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<float>& flrRegion, double f64Tolerance = 40.);
522
540 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<float>* pFlrRegion, double f64Tolerance = 40.);
541
559 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<double>& flrRegion, double f64Tolerance = 40.);
560
578 virtual const CResult SetMeasurementRegion(const Foundation::CFLRect<double>* pFlrRegion, double f64Tolerance = 40.);
579
592
610 virtual const CResult SetMeasurementMarginRatio(double f64InnerMargin = 0.3, double f64OuterMargin = 0.1);
611
629 virtual const CResult GetMeasurementMarginRatio(double& f64InnerMargin, double& f64OuterMargin) const;
630
647
660
677
690
704 virtual const CResult SetThreshold(double f64Threshold = 20);
705
715 virtual double GetThreshold() const;
716
730 virtual const CResult SetMinimumAmplitude(double f64MinimumAmplitude = 10);
731
741 virtual double GetMinimumAmplitude() const;
742
756 virtual const CResult SetSamplingStep(double f64SamplingStep = 5.);
757
767 virtual double GetSamplingStep() const;
768
782 virtual const CResult EnableClusterMode(bool bEnable = true);
783
793 virtual bool IsClusterModeEnabled() const;
794
847
861 virtual const CResult SetOutliersThreshold(double f64OutliersThreshold = 3.);
862
872 virtual double GetOutliersThreshold() const;
873
887 virtual const CResult SetOutliersThresholdCount(int64_t i64OutliersThresholdCount = 3);
888
898 virtual int64_t GetOutliersThresholdCount() const;
899
913 virtual const CResult SetThickness(int64_t i64Thickness = 1);
914
924 virtual int64_t GetThickness() const;
925
935 virtual double GetTolerance() const;
936
950 virtual const CResult EnableRegression(bool bEnable = true);
951
961 virtual const bool IsRegressionEnabled() const;
962
976 virtual const CResult EnableOptimalFitting(bool bEnable = true);
977
987 virtual const bool IsOptimalFittingEnabled() const;
988
1002 virtual const CResult EnableAccurateMode(bool bAccurateMode = false);
1003
1013 virtual bool IsAccurateModeEnabled() const;
1014
1034 virtual const CResult GetMeasurementLines(Foundation::CFLFigureArray& flfaMeasuredLines) const;
1035
1055 virtual const CResult GetMeasurementLines(Foundation::CFLFigureArray* pFlfaMeasuredLines) const;
1056
1076 virtual const CResult GetMeasuredLines(Foundation::CFLFigureArray& flfaMeasuredLines) const;
1077
1097 virtual const CResult GetMeasuredLines(Foundation::CFLFigureArray* pFlfaMeasuredLines) const;
1098
1111
1127 virtual const CResult GetMeasuredObject(Foundation::CFLPoint<double>& flpMeasuredObject) const;
1128
1144 virtual const CResult GetMeasuredObject(Foundation::CFLPoint<double>* pFlpMeasuredObject) const;
1145
1162
1179
1196
1213
1246
1263
1280
1297
1314
1347
1363 virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray& flfaResult) const;
1364
1380 virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray* pFlfaResult) const;
1381
1397 virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray& flpaResult) const;
1398
1414 virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray* pFlpaResult) const;
1415
1448
1462 virtual const CResult GetMeasuredAngle(double* pF64Angle) const;
1463
1477 virtual const CResult GetMeasuredAngle(double& f64Angle) const;
1478
1492 virtual const CResult GetMeasuredScore(double* pF64Score) const;
1493
1507 virtual const CResult GetMeasuredScore(double& f64Score) const;
1508
1521
1541 virtual const CResult GetMeasuredProfile(Base::CFLArray<double>& flaProfile, Base::CFLArray<double>& flaDerivative, double& f64MeasuredAverageDistance);
1542
1543 virtual bool IsLicenseAvailable() const override;
1544
1545
1546 DeclareGetClassType();
1547 SupportToDuplicateObject(CCrossGauge, *this);
1548
1549 protected:
1558
1567
1576
1585
1594
1603
1614
1623
1634
1645
1656
1665
1674
1683
1692
1701
1710
1711 protected:
1712 friend class CInternalCrossGauge;
1713 CInternalCrossGauge* m_pInternal;
1714 };
1715 }
1716}
virtual const CResult SetThreshold(double f64Threshold=20)
virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray &flfaResult) const
virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray &flfaResult) const
virtual const CResult SetMinimumAmplitude(double f64MinimumAmplitude=10)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< double > &flrRegion, double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< double > *pFlrRegion, double f64Tolerance=40.)
virtual bool IsLicenseAvailable() const override
Returns whether the algorithm can be used with the current license.
Foundation::CFLRect< double > m_flrMeasurementLine
Definition CrossGauge.h:1613
const CResult GetMeasuredTransitionOfInvalidPoints(Base::CFLArray< int32_t > *pFlaResult) const
virtual const CResult Assign(const CCrossGauge *pAib)
const CResult GetMeasuredTransitionOfValidPoints(Base::CFLArray< int32_t > *pFlaResult) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< double > *pFlpRegion, double f64Width=80., double f64Height=80., double f64Angle=0., double f64Tolerance=40.)
virtual const Foundation::CFLFigureArray GetActualMeasurementRegion()
virtual const CResult GetMeasuredScore(double *pF64Score) const
const CResult GetMeasuredTransition(Base::CFLArray< int32_t > *pFlaResult) const
virtual const CResult GetMeasuredLines(Foundation::CFLFigureArray &flfaMeasuredLines) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int64_t > *pFlpRegion, double f64Width=80., double f64Height=80., double f64Angle=0., double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< float > *pFlpRegion, double f64Width=80., double f64Height=80., double f64Angle=0., double f64Tolerance=40.)
virtual Foundation::CFLRect< double > GetMeasurementRegion() const
ETransitionType m_eTransitionType
Definition CrossGauge.h:1644
double m_f64Tolerance
Definition CrossGauge.h:1622
EGaugeOutlierFilteringMode m_eOutlierFilteringMode
Definition CrossGauge.h:1633
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int64_t > *pFlrRegion, double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< float > &flpRegion, double f64Width=80., double f64Height=80., double f64Angle=0., double f64Tolerance=40.)
virtual double GetMinimumAmplitude() const
bool m_bAccurateMode
Definition CrossGauge.h:1709
const CResult GetMeasuredTransition(Base::CFLArray< int32_t > &flaResult) const
virtual const CResult Assign(const CCrossGauge &aib)
virtual int64_t GetOutliersThresholdCount() const
const CCrossGauge & operator=(const CCrossGauge &lg)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int32_t > *pFlpRegion, double f64Width=80., double f64Height=80., double f64Angle=0., double f64Tolerance=40.)
virtual const CResult SetMeasurementMarginRatio(double f64InnerMargin=0.3, double f64OuterMargin=0.1)
double m_f64MinimumAmplitude
Definition CrossGauge.h:1566
virtual const CResult GetMeasurementMarginRatio(double &f64InnerMargin, double &f64OuterMargin) const
double m_f64SamplingStep
Definition CrossGauge.h:1575
virtual const bool IsOptimalFittingEnabled() const
virtual double GetOutliersThreshold() const
bool m_bOptimalFitting
Definition CrossGauge.h:1700
virtual const CResult GetMeasuredValidPoints(Foundation::CFLPointArray &flpaResult) const
int64_t m_i64Thickness
Definition CrossGauge.h:1602
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int64_t > &flpRegion, double f64Width=80., double f64Height=80., double f64Angle=0., double f64Tolerance=40.)
ETransitionType
Definition CrossGauge.h:60
@ ETransitionType_DarkToBrightToDark
Definition CrossGauge.h:68
@ ETransitionType_DarkToBrightToDarkOrBrightToDarkToBright
Definition CrossGauge.h:86
@ ETransitionType_BrightToDarkToBright
Definition CrossGauge.h:77
ETransitionChoice
Definition CrossGauge.h:98
@ ETransitionChoice_LargestAmplitude
Definition CrossGauge.h:115
@ ETransitionChoice_LargestArea
Definition CrossGauge.h:124
@ ETransitionChoice_Closest
Definition CrossGauge.h:106
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< float > &flrRegion, double f64Tolerance=40.)
virtual const CResult GetMeasuredObject(Foundation::CFLPoint< double > &flpMeasuredObject) const
virtual const CResult EnableOptimalFitting(bool bEnable=true)
virtual const CResult GetMeasuredAngle(double &f64Angle) const
virtual ETransitionChoice GetTransitionChoice() const
virtual const CResult GetMeasurementLines(Foundation::CFLFigureArray &flfaMeasuredLines) const
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray &flfaResult) const
double m_f64OuterMargin
Definition CrossGauge.h:1682
bool m_bEnable
Definition CrossGauge.h:1691
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray *pFlfaResult) const
virtual const CResult SetThickness(int64_t i64Thickness=1)
const CResult GetMeasuredTransitionOfValidPoints(Base::CFLArray< int32_t > &flaResult) const
ETransitionChoice m_eTransitionChoice
Definition CrossGauge.h:1655
virtual const CResult GetMeasuredProfile(Base::CFLArray< double > &flaProfile, Base::CFLArray< double > &flaDerivative, double &f64MeasuredAverageDistance)
virtual const CResult EnableAccurateMode(bool bAccurateMode=false)
virtual ETransitionType GetTransitionType() const
int64_t m_i64OutliersThresholdCount
Definition CrossGauge.h:1593
virtual EGaugeOutlierFilteringMode GetOutlierFilteringMode() const
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray &flpaResult) const
virtual const CResult SetOutliersThreshold(double f64OutliersThreshold=3.)
virtual const CResult SetOutliersThresholdCount(int64_t i64OutliersThresholdCount=3)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int32_t > *pFlrRegion, double f64Tolerance=40.)
virtual const CResult EnableRegression(bool bEnable=true)
virtual const CResult SetOutlierFilteringMode(EGaugeOutlierFilteringMode eOutlierFilteringMode=EGaugeOutlierFilteringMode_Manual)
virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray *pFlpaResult) const
virtual const CResult GetMeasuredLines(Foundation::CFLFigureArray *pFlfaMeasuredLines) const
virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray *pFlfaResult) const
double m_f64Threshold
Definition CrossGauge.h:1557
virtual const CResult SetSamplingStep(double f64SamplingStep=5.)
virtual const CResult GetMeasuredAngle(double *pF64Angle) const
virtual const CResult GetMeasuredValidPoints(Foundation::CFLPointArray *pFlpaResult) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< double > &flpRegion, double f64Width=80., double f64Height=80., double f64Angle=0., double f64Tolerance=40.)
bool m_bClusterMode
Definition CrossGauge.h:1664
virtual const bool IsRegressionEnabled() const
virtual const Foundation::CFLPoint< double > GetMeasuredObject() const
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< float > *pFlrRegion, double f64Tolerance=40.)
const CResult GetMeasuredTransitionOfInvalidPoints(Base::CFLArray< int32_t > &flaResult) const
virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray *pFlfaResult) const
double m_f64InnerMargin
Definition CrossGauge.h:1673
virtual const CResult GetMeasuredScore(double &f64Score) const
virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray &flpaResult) const
virtual const CResult GetMeasurementLines(Foundation::CFLFigureArray *pFlfaMeasuredLines) const
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int32_t > &flrRegion, double f64Tolerance=40.)
double m_f64OutliersThreshold
Definition CrossGauge.h:1584
virtual const CResult SetTransitionChoice(ETransitionChoice eTransitionChoice=ETransitionChoice_LargestAmplitude)
virtual const CResult GetMeasuredObject(Foundation::CFLPoint< double > *pFlpMeasuredObject) const
virtual const CResult EnableClusterMode(bool bEnable=true)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int32_t > &flpRegion, double f64Width=80., double f64Height=80., double f64Angle=0., double f64Tolerance=40.)
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray *pFlpaResult) const
virtual const CResult SetTransitionType(ETransitionType eTransitionType=ETransitionType_DarkToBrightToDarkOrBrightToDarkToBright)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int64_t > &flrRegion, double f64Tolerance=40.)
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 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