FLImaging 6.6.27.1
LineGauge.h
1#pragma once
2
18
19
21namespace FLImaging
22{
24 namespace AdvancedFunctions
25 {
26 class CInternalLineGauge;
27
44 {
45 public:
46
56 {
65
74
83
92
101
110 };
111
121 {
162 };
163
172
181
190
198 virtual ~CLineGauge();
199
207 const CLineGauge& operator=(const CLineGauge& lg);
208
222 virtual const CResult Assign(const CLineGauge& aib);
223
237 virtual const CResult Assign(const CLineGauge* pAib);
238
250 virtual const CResult Execute();
251
263 virtual const CResult Clear();
264
286 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int32_t>* pFlpRegion, const double f64Length, const double f64Angle, const double f64Tolerance = 40.);
287
309 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int32_t>& flpRegion, const double f64Length, const double f64Angle, const double f64Tolerance = 40.);
310
332 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int64_t>* pFlpRegion, const double f64Length, const double f64Angle, const double f64Tolerance = 40.);
333
355 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<int64_t>& flpRegion, const double f64Length, const double f64Angle, const double f64Tolerance = 40.);
356
378 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<float>* pFlpRegion, const double f64Length, const double f64Angle, const double f64Tolerance = 40.);
379
401 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<float>& flpRegion, const double f64Length, const double f64Angle, const double f64Tolerance = 40.);
402
424 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<double>* pFlpRegion, const double f64Length, const double f64Angle, const double f64Tolerance = 40.);
425
447 virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint<double>& flpRegion, const double f64Length, const double f64Angle, const double f64Tolerance = 40.);
448
466 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int32_t>* pFllRegion, const double f64Tolerance = 40.);
467
485 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int32_t>& fllRegion, const double f64Tolerance = 40.);
486
504 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int64_t>* pFllRegion, const double f64Tolerance = 40.);
505
523 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int64_t>& fllRegion, const double f64Tolerance = 40.);
524
542 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<float>* pFllRegion, const double f64Tolerance = 40.);
543
561 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<float>& fllRegion, const double f64Tolerance = 40.);
562
580 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<double>* pFllRegion, const double f64Tolerance = 40.);
581
599 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<double>& fllRegion, const double f64Tolerance = 40.);
600
601
621 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int32_t>* pFllRegion, const double f64ToleranceLeft, const double f64ToleranceRight);
622
642 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int32_t>& fllRegion, const double f64ToleranceLeft, const double f64ToleranceRight);
643
663 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int64_t>* pFllRegion, const double f64ToleranceLeft, const double f64ToleranceRight);
664
684 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<int64_t>& fllRegion, const double f64ToleranceLeft, const double f64ToleranceRight);
685
705 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<float>* pFllRegion, const double f64ToleranceLeft, const double f64ToleranceRight);
706
726 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<float>& fllRegion, const double f64ToleranceLeft, const double f64ToleranceRight);
727
747 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<double>* pFllRegion, const double f64ToleranceLeft, const double f64ToleranceRight);
748
768 virtual const CResult SetMeasurementRegion(const Foundation::CFLLine<double>& fllRegion, const double f64ToleranceLeft, const double f64ToleranceRight);
769
786
803
820
837
854
871
888
905
918
936 virtual const CResult SetLimitBetweenLines(const Foundation::CFLLine<double>& fllStartPointLine, const Foundation::CFLLine<double>& fllEndPointLine);
937
955 virtual const CResult GetLimitBetweenLines(Foundation::CFLLine<double>* pFllStartPointLine, Foundation::CFLLine<double>* pFllEndPointLine) const;
956
974 virtual const CResult GetLimitBetweenLines(Foundation::CFLLine<double>& fllStartPointLine, Foundation::CFLLine<double>& fllEndPointLine) const;
975
992
1005
1022
1035
1049 virtual const CResult SetThreshold(double f64Threshold = 20);
1050
1060 virtual double GetThreshold() const;
1061
1075 virtual const CResult SetMinimumAmplitude(double f64MinimumAmplitude = 10);
1076
1086 virtual double GetMinimumAmplitude() const;
1087
1101 virtual const CResult SetSamplingStep(double f64SamplingStep = 5.);
1102
1112 virtual double GetSamplingStep() const;
1113
1127 virtual const CResult EnableClusterMode(bool bUse = true);
1128
1138 virtual bool IsClusterModeEnabled() const;
1139
1153 virtual const CResult SetOutliersThreshold(double f64OutliersThreshold = 3.);
1154
1164 virtual double GetOutliersThreshold() const;
1165
1179 virtual const CResult SetOutliersThresholdCount(int64_t i64OutliersThresholdCount = 3);
1180
1190 virtual int64_t GetOutliersThresholdCount() const;
1191
1205 virtual const CResult SetThickness(int64_t i64Thickness = 1);
1206
1216 virtual int64_t GetThickness() const;
1217
1233 virtual const CResult GetTolerance(double& f64Left, double& f64Right) const;
1234
1248 virtual const CResult EnableRegression(bool bEnable = true);
1249
1259 virtual const bool IsRegressionEnabled() const;
1260
1274 virtual const CResult EnableOptimalFitting(bool bEnable = true);
1275
1285 virtual const bool IsOptimalFittingEnabled() const;
1286
1304 virtual const Foundation::CFLLine<double> GetMeasuredObject(int64_t i64Index = 0) const;
1305
1327 virtual const CResult GetMeasuredObject(Foundation::CFLLine<double>& fllMeasuredObject, int64_t i64Index = 0) const;
1328
1350 virtual const CResult GetMeasuredObject(Foundation::CFLLine<double>* pFllMeasuredObject, int64_t i64Index = 0) const;
1351
1373 virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray& flfaResult, int64_t i64Index = 0) const;
1374
1396 virtual const CResult GetMeasuredValidPoints(Foundation::CFLFigureArray* pFlfaResult, int64_t i64Index = 0) const;
1397
1419 virtual const CResult GetMeasuredValidPoints(Foundation::CFLPointArray& flpaResult, int64_t i64Index = 0) const;
1420
1442 virtual const CResult GetMeasuredValidPoints(Foundation::CFLPointArray* pFlpaResult, int64_t i64Index = 0) const;
1443
1465 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray& flfaResult, int64_t i64Index = 0) const;
1466
1488 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray* pFlfaResult, int64_t i64Index = 0) const;
1489
1511 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray& flpaResult, int64_t i64Index = 0) const;
1512
1534 virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray *pFlpaResult, int64_t i64Index = 0) const;
1535
1557 virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray& flfaResult, int64_t i64Index = 0) const;
1558
1580 virtual const CResult GetMeasuredPoints(Foundation::CFLFigureArray* pFlfaResult, int64_t i64Index = 0) const;
1581
1603 virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray& flpaResult, int64_t i64Index = 0) const;
1604
1626 virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray* pFlpaResult, int64_t i64Index = 0) const;
1627
1647 virtual const CResult GetMeasuredScore(double* pF64Score, int64_t i64Index = 0) const;
1648
1668 virtual const CResult GetMeasuredScore(double& f64Score, int64_t i64Index = 0) const;
1669
1682
1695
1715 virtual const CResult GetMeasuredProfile(Base::CFLArray<double>& flaProfile, Base::CFLArray<double>& flaDerivative, double& f64Actual);
1716
1717 virtual bool IsLicenseAvailable() const override;
1718
1719
1720 DeclareGetClassType();
1721 SupportToDuplicateObject(CLineGauge, *this);
1722
1723 protected:
1732
1741
1750
1759
1768
1777
1788
1797
1806
1817
1828
1837
1848
1859
1868
1877
1878 protected:
1879 friend class CInternalLineGauge;
1880
1881 CInternalLineGauge* m_pInternal;
1882 };
1883 }
1884}
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< float > &flrRegion)
virtual const CResult GetMeasuredScore(double *pF64Score, int64_t i64Index=0) const
virtual const CResult SetTransitionType(ETransitionType eTransitionType=ETransitionType_DarkToBrightOrBrightToDark)
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int64_t > *pFllRegion, const double f64Tolerance=40.)
virtual const CResult EnableClusterMode(bool bUse=true)
virtual const CResult GetMeasuredPoints(Foundation::CFLPointArray *pFlpaResult, int64_t i64Index=0) const
virtual const CResult SetLimitBetweenLines(const Foundation::CFLLine< double > &fllStartPointLine, const Foundation::CFLLine< double > &fllEndPointLine)
virtual const CResult Assign(const CLineGauge *pAib)
ETransitionChoice m_eTransitionChoice
Definition LineGauge.h:1827
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 const CResult SetMeasurementRegion(const Foundation::CFLLine< int64_t > *pFllRegion, const double f64ToleranceLeft, const double f64ToleranceRight)
virtual int64_t GetThickness() const
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int64_t > &fllRegion, const double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int32_t > *pFlpRegion, const double f64Length, const double f64Angle, const double f64Tolerance=40.)
virtual ETransitionChoice GetTransitionChoice() const
virtual const CResult GetLimitBetweenLines(Foundation::CFLLine< double > *pFllStartPointLine, Foundation::CFLLine< double > *pFllEndPointLine) const
virtual double GetOutliersThreshold() const
virtual const CResult GetMeasuredProfile(Base::CFLArray< double > &flaProfile, Base::CFLArray< double > &flaDerivative, double &f64Actual)
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLPointArray *pFlpaResult, int64_t i64Index=0) const
Foundation::CFLLine< double > m_fllMeasurementLine
Definition LineGauge.h:1787
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int32_t > &fllRegion, const double f64ToleranceLeft, const double f64ToleranceRight)
double m_f64ToleranceRight
Definition LineGauge.h:1805
double m_f64SamplingStep
Definition LineGauge.h:1749
bool m_bClusterMode
Definition LineGauge.h:1836
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< float > *pFlpRegion, const double f64Length, const double f64Angle, const double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< double > &flrRegion)
int64_t m_i64OutliersThresholdCount
Definition LineGauge.h:1767
virtual const CResult SetThickness(int64_t i64Thickness=1)
bool m_bEnable
Definition LineGauge.h:1867
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< float > &fllRegion, const double f64Tolerance=40.)
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 SetMeasurementRegion(const Foundation::CFLPoint< int64_t > *pFlpRegion, const double f64Length, const double f64Angle, const double f64Tolerance=40.)
Foundation::CFLLine< double > m_fllEndPointLine
Definition LineGauge.h:1858
Foundation::CFLLine< double > m_fllStartPointLine
Definition LineGauge.h:1847
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 bool IsRegressionEnabled() const
const CLineGauge & operator=(const CLineGauge &lg)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< double > &flpRegion, const double f64Length, const double f64Angle, const double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< float > &flpRegion, const double f64Length, const double f64Angle, const double f64Tolerance=40.)
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::CFLLine< int64_t > &fllRegion, const double f64ToleranceLeft, const double f64ToleranceRight)
virtual bool IsLicenseAvailable() const override
현재 보유한 라이선스로 해당 알고리즘을 사용할 수 있는지에 대한 여부를 반환 합니다.
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int32_t > *pFllRegion, const double f64ToleranceLeft, const double f64ToleranceRight)
ETransitionType m_eTransitionType
Definition LineGauge.h:1816
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int64_t > &flpRegion, const double f64Length, const double f64Angle, const double f64Tolerance=40.)
int64_t m_i64Thickness
Definition LineGauge.h:1776
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int32_t > &fllRegion, const double f64Tolerance=40.)
virtual const CResult SetMinimumAmplitude(double f64MinimumAmplitude=10)
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< double > *pFlpRegion, const double f64Length, const double f64Angle, const double f64Tolerance=40.)
virtual int64_t GetOutliersThresholdCount() const
virtual double GetMinimumAmplitude() const
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< double > &fllRegion, const double f64Tolerance=40.)
double m_f64OutliersThreshold
Definition LineGauge.h:1758
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 GetLimitBetweenLines(Foundation::CFLLine< double > &fllStartPointLine, Foundation::CFLLine< double > &fllEndPointLine) const
virtual const CResult Assign(const CLineGauge &aib)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int32_t > &flrRegion)
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< int32_t > *pFllRegion, const double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< float > &fllRegion, const double f64ToleranceLeft, const double f64ToleranceRight)
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< double > &fllRegion, const double f64ToleranceLeft, const double f64ToleranceRight)
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:1796
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
double m_f64Threshold
Definition LineGauge.h:1731
ETransitionType
Definition LineGauge.h:56
@ ETransitionType_DarkToBrightOrBrightToDark
Definition LineGauge.h:82
@ ETransitionType_DarkToBrightToDark
Definition LineGauge.h:91
@ ETransitionType_BrightToDark
Definition LineGauge.h:73
@ ETransitionType_DarkToBright
Definition LineGauge.h:64
@ ETransitionType_BrightToDarkToBright
Definition LineGauge.h:100
@ ETransitionType_DarkToBrightToDarkOrBrightToDarkToBright
Definition LineGauge.h:109
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< float > *pFllRegion, const double f64ToleranceLeft, const double f64ToleranceRight)
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< float > *pFllRegion, const double f64Tolerance=40.)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< float > *pFlrRegion)
virtual const CResult SetMeasurementRegion(const Foundation::CFLRect< int32_t > *pFlrRegion)
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< double > *pFllRegion, const double f64Tolerance=40.)
bool m_bOptimalFitting
Definition LineGauge.h:1876
ETransitionChoice
Definition LineGauge.h:121
@ ETransitionChoice_Closest
Definition LineGauge.h:145
@ ETransitionChoice_End
Definition LineGauge.h:137
@ ETransitionChoice_LargestAmplitude
Definition LineGauge.h:153
@ ETransitionChoice_LargestArea
Definition LineGauge.h:161
@ ETransitionChoice_Begin
Definition LineGauge.h:129
double m_f64MinimumAmplitude
Definition LineGauge.h:1740
virtual double GetSamplingStep() const
virtual const CResult SetMeasurementRegion(const Foundation::CFLLine< double > *pFllRegion, const double f64ToleranceLeft, const double f64ToleranceRight)
virtual const CResult EnableOptimalFitting(bool bEnable=true)
virtual const Foundation::CFLFigureArray GetActualMeasurementRegion()
virtual const CResult SetMeasurementRegion(const Foundation::CFLPoint< int32_t > &flpRegion, const double f64Length, const double f64Angle, const double f64Tolerance=40.)
virtual ETransitionType GetTransitionType() const
virtual const CResult SetThreshold(double f64Threshold=20)
virtual const bool IsOptimalFittingEnabled() const
virtual const CResult GetMeasuredInvalidPoints(Foundation::CFLFigureArray &flfaResult, int64_t i64Index=0) const
Template type 의 배열 클래스.
Definition FLArray.h:53
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1596
도형 배열을 표현하는 클래스
Definition FLFigureArray.h:26
직선을 표현하는 클래스
Definition FLLine.h:25
점 배열을 표현하는 클래스
Definition FLPointArray.h:26
점을 표현하는 클래스
Definition FLPoint.h:24
직사각형을 표현하는 클래스
Definition FLRect.h:24
이미지 처리 클래스의 베이스 클래스
Definition AlgorithmFeature_SR.h:31
Definition AlgorithmFeature_DI_BAT_CI.h:15