FLImaging 6.6.27.1
PatternMatch.h
1#pragma once
2
18
19#include "DefinitionsAdvancedFunctions.h"
20#include "AlgorithmFeature_SR_LI_LR_LP.h"
21#include "ReportDescriptorForMatch.h"
22
24namespace FLImaging
25{
27 namespace AdvancedFunctions
28 {
29 class CInternalPatternMatch;
30
46 class FL_EXPORT CPatternMatch : public CAlgorithmFeature_SR_LI_LR_LP
47 {
48 public:
56 struct FL_EXPORT SResult
57 {
66
74 virtual ~SResult();
75
83 SResult(const SResult& pmr);
84
92 SResult(const SResult* pPmr);
93
101 const SResult& operator=(const SResult& pmr);
102
116 virtual const CResult Assign(const SResult& pmr);
117
131 virtual const CResult Assign(const SResult* pPmr);
132
140 virtual const CResult Clear();
141
149 float f32Score;
150
158 float f32Angle;
159
167 float f32Scale;
168
179
190 }
191 ;
192
201 {
207
213
219
225
231
237
243
249 };
250
258 {
264
270 };
271
280 {
289
298
307
316
325
334
343
352
361
370
379
388
397
406
415
424 };
425
435 {
444
453
462 };
463
472
481
490
498 virtual ~CPatternMatch();
499
508
522 virtual const CResult Assign(const CPatternMatch& aib);
523
537 virtual const CResult Assign(const CPatternMatch* pAib);
538
550 virtual const CResult Clear();
551
552
564 virtual const CResult ClearLearnedData();
565
575 virtual const CResult GetLearnedImage(Base::CFLImage& fliImage, bool bIncludeFigure = false) const;
576
585 virtual const CResult GetLearnedImageRaw(Base::CFLImage& fliImage) const;
586
600 virtual const CResult SetMaxObject(int64_t i64MaxObject = 1);
601
611 virtual int64_t GetMaxObject() const;
612
626 virtual const CResult SetMinimumDetectionScore(double f64Score = .5);
627
637 virtual double GetMinimumDetectionScore() const;
638
654 virtual const CResult SetScaleRange(double f64ScaleMin = 1., double f64ScaleMax = 1.);
655
671 virtual const CResult GetScaleRange(double& f64ScaleMin, double& f64ScaleMax) const;
672
686 virtual const CResult SetAngleBias(double f64AngleBias = .0);
687
697 virtual double GetAngleBias() const;
698
712 virtual const CResult SetAngleTolerance(double f64AngleTolerance = .0);
713
723 virtual double GetAngleTolerance() const;
724
738 virtual const CResult SetAccuracy(double f64Accuracy = 0.5);
739
749 virtual double GetAccuracy() const;
750
766 virtual const CResult SetSearchAccuracy(const ESearchAccuracy eSearchAccuracy);
767
779 virtual const ESearchAccuracy GetSearchAccuracy() const;
780
794 virtual const CResult EnableInterpolation(bool bUse = true);
795
805 virtual bool IsInterpolationEnabled() const;
806
823
836
860 virtual const CResult SetFilterItem(CPatternMatch::EFilterItem eFilterItem, double f64Value, const Base::ELogicalCondition eFilterCondition);
884 virtual const CResult AddFilterItem(CPatternMatch::EFilterItem eFilterItem, double f64Value, const Base::ELogicalCondition eFilterCondition);
908 virtual const CResult SetFilterItem(const Base::CFLArray<int32_t>& flaFilterItem, const Base::CFLArray<double>& flaValue, const Base::CFLArray<int32_t>& flaFilterCondition);
932 virtual const CResult AddFilterItem(const Base::CFLArray<int32_t>& flaFilterItem, const Base::CFLArray<double>& flaValue, const Base::CFLArray<int32_t>& flaFilterCondition);
933
957 virtual const CResult GetFilterItem(CPatternMatch::EFilterItem& eFilterItem, double& f64Value, Base::ELogicalCondition& eFilterCondition) const;
981 virtual const CResult GetFilterItem(Base::CFLArray<int32_t>& flaFilterItem, Base::CFLArray<double>& flaValue, Base::CFLArray<int32_t>& flaFilterCondition) const;
982
996 virtual const CResult ClearFilterItem();
997
1063 virtual const CResult SetSortItem(const Base::CFLArray<int32_t>& flaItem, const Base::CFLArray<int32_t>& flaOrder);
1085 virtual const CResult AddSortItem(const Base::CFLArray<int32_t>& flaItem, const Base::CFLArray<int32_t>& flaOrder);
1129 virtual const CResult GetSortItem(Base::CFLArray<int32_t>& flaItem, Base::CFLArray<int32_t>& flaOrder) const;
1130
1150 virtual const CResult SetSortClusterMode(CPatternMatch::ESortClusterModeMethod eMethod, double f64Coefficient);
1170 virtual bool GetSortClusterMode(CPatternMatch::ESortClusterModeMethod& eMethod, double& f64Coefficient) const;
1171
1185 virtual const CResult ClearSortItem();
1186
1196 virtual bool IsLearned() const;
1197
1209 virtual const CResult Learn();
1210
1222 virtual const CResult Execute();
1223
1224
1246 virtual const CResult Filter(EFilterItem eItem, double f64Value, Base::ELogicalCondition eCondition);
1247
1268
1294 virtual const CResult Sort(const Base::CFLArray<int32_t>& flaItem, const Base::CFLArray<int32_t>& flaOrder);
1295
1314 virtual const CResult SortClusterMode(ESortClusterModeMethod eMethod, double f64Coefficient = .5);
1315
1331 virtual const CResult Load(const Base::CFLString<wchar_t>& strPatternFile);
1332
1348 virtual const CResult Save(const Base::CFLString<wchar_t>& strPatternFile);
1349
1363 virtual const CResult ClearResultData();
1364
1376 virtual int64_t GetResultCount() const;
1377
1395 virtual const CResult GetResult(int64_t i64Index, CPatternMatch::SResult* pSResults) const;
1396
1414 virtual const CResult GetResult(int64_t i64Index, CPatternMatch::SResult& sResults) const;
1415
1433 virtual const CResult GetResultForScore(int64_t i64Index, float& f32ResultScore) const;
1434
1452 virtual const CResult GetResultForAngle(int64_t i64Index, float& f32ResultAngle) const;
1453
1471 virtual const CResult GetResultForScale(int64_t i64Index, float& f32ResultScale) const;
1472
1492 virtual const CResult GetResultForRegion(int64_t i64Index, Foundation::CFLFigureArray* pFlfaResultRegion) const;
1493
1513 virtual const CResult GetResultForRegion(int64_t i64Index, Foundation::CFLFigureArray& flfaResultRegion) const;
1514
1534 virtual const CResult GetResultForPivot(int64_t i64Index, Foundation::CFLPoint<double>& flpResultPivot) const;
1535
1536 virtual const CResult ReportToCSV(const Foundation::CReportDescriptor* pWrd) const override;
1537
1558 virtual const CResult ReportToCSV(const CReportDescriptorForMatch& wrd) const;
1559
1580 virtual const CResult ReportToCSV(const CReportDescriptorForMatch* pWrd) const;
1581
1583
1604 static const CResult GetLearnedFileVersion(Base::CFLString<wchar_t> strPatternFile, int32_t& i32MajorVer, int32_t& i32MinorVer);
1605
1606 virtual const CResult RunWarmUpCuda();
1607
1608 virtual int64_t GetRequiredGPUMemory() const override;
1609
1610 virtual bool IsLicenseAvailable() const override;
1611
1612
1613 DeclareGetClassType();
1614 SupportToDuplicateObject(CPatternMatch, *this);
1615
1616 protected:
1625
1634
1643
1652
1661
1670
1679
1688
1699
1710
1719
1728
1737
1746
1755
1764
1773
1782
1783 protected:
1784 friend class CInternalPatternMatch;
1785
1786 CInternalPatternMatch* m_pInternal;
1787 };
1788 }
1789}
virtual const CResult SetFilterItem(CPatternMatch::EFilterItem eFilterItem, double f64Value, const Base::ELogicalCondition eFilterCondition)
bool m_bSortClusterMode
Definition PatternMatch.h:1763
virtual const CResult Filter(EFilterItem eItem, double f64Value, Base::ELogicalCondition eCondition)
virtual const CResult Assign(const CPatternMatch &aib)
EMatchContrastOption m_eContrastOption
Definition PatternMatch.h:1698
double m_f64ScaleMin
Definition PatternMatch.h:1642
virtual const CResult SetSortItem(CPatternMatch::EFilterItem eSortItem, CPatternMatch::EOrder eOrder)
virtual const CResult SetFilterItem(const Base::CFLArray< int32_t > &flaFilterItem, const Base::CFLArray< double > &flaValue, const Base::CFLArray< int32_t > &flaFilterCondition)
virtual int64_t GetRequiredGPUMemory() const override
virtual const CResult SetAccuracy(double f64Accuracy=0.5)
virtual const CResult SetContrastOption(EMatchContrastOption eOption=EMatchContrastOption_Normal)
virtual const ESearchAccuracy GetSearchAccuracy() const
virtual const CResult GetSortItem(Base::CFLArray< int32_t > &flaItem, Base::CFLArray< int32_t > &flaOrder) const
virtual const CResult AddSortItem(CPatternMatch::EFilterItem eSortItem, CPatternMatch::EOrder eOrder)
virtual const CResult GetResult(int64_t i64Index, CPatternMatch::SResult &sResults) const
virtual const CResult ReportToCSV(const CReportDescriptorForMatch *pWrd) const
알고리즘의 실행결과를 CReportDescriptorForMatch 객체에 기록된 옵션에 따라 파일에 기록 합니다. 모든 알고리즘들이 이 함수를 지원하지는 않습니다....
virtual Foundation::EProcessingUnitFeatures GetOptimalProcessingUnit() const override
virtual const CResult GetScaleRange(double &f64ScaleMin, double &f64ScaleMax) const
int64_t m_i64MaxObject
Definition PatternMatch.h:1624
virtual const CResult GetResult(int64_t i64Index, CPatternMatch::SResult *pSResults) const
virtual const CResult EnableInterpolation(bool bUse=true)
EFilterItem
Definition PatternMatch.h:201
@ EFilterItem_Angle
Definition PatternMatch.h:224
@ EFilterItem_PivotY
Definition PatternMatch.h:248
@ EFilterItem_Unselected
Definition PatternMatch.h:206
@ EFilterItem_RegionCenterX
Definition PatternMatch.h:230
@ EFilterItem_RegionCenterY
Definition PatternMatch.h:236
@ EFilterItem_Scale
Definition PatternMatch.h:218
@ EFilterItem_Score
Definition PatternMatch.h:212
@ EFilterItem_PivotX
Definition PatternMatch.h:242
virtual const CResult GetFilterItem(Base::CFLArray< int32_t > &flaFilterItem, Base::CFLArray< double > &flaValue, Base::CFLArray< int32_t > &flaFilterCondition) const
virtual const CResult ReportToCSV(const Foundation::CReportDescriptor *pWrd) const override
알고리즘의 실행결과를 ReportDescriptor 객체에 기록된 옵션에 따라 파일에 기록 합니다. 모든 알고리즘들이 이 함수를 지원하지는 않습니다....
virtual bool IsLicenseAvailable() const override
현재 보유한 라이선스로 해당 알고리즘을 사용할 수 있는지에 대한 여부를 반환 합니다.
virtual const CResult SetSearchAccuracy(const ESearchAccuracy eSearchAccuracy)
virtual const CResult SetAngleBias(double f64AngleBias=.0)
virtual const CResult GetResultForScale(int64_t i64Index, float &f32ResultScale) const
virtual const CResult GetLearnedImageRaw(Base::CFLImage &fliImage) const
ESortClusterModeMethod
Definition PatternMatch.h:280
@ ESortClusterModeMethod_Pivot_X_Desc_Y_Asc
Definition PatternMatch.h:414
@ ESortClusterModeMethod_Pivot_X_Desc_Y_Desc
Definition PatternMatch.h:423
@ ESortClusterModeMethod_RegionCenter_X_Desc_Y_Desc
Definition PatternMatch.h:351
@ ESortClusterModeMethod_RegionCenter_X_Asc_Y_Asc
Definition PatternMatch.h:324
@ ESortClusterModeMethod_Pivot_Y_Desc_X_Asc
Definition PatternMatch.h:378
@ ESortClusterModeMethod_Pivot_X_Asc_Y_Asc
Definition PatternMatch.h:396
@ ESortClusterModeMethod_Pivot_Y_Asc_X_Desc
Definition PatternMatch.h:369
@ ESortClusterModeMethod_RegionCenter_X_Asc_Y_Desc
Definition PatternMatch.h:333
@ ESortClusterModeMethod_RegionCenter_Y_Desc_X_Asc
Definition PatternMatch.h:306
@ ESortClusterModeMethod_Pivot_X_Asc_Y_Desc
Definition PatternMatch.h:405
@ ESortClusterModeMethod_Pivot_Y_Asc_X_Asc
Definition PatternMatch.h:360
@ ESortClusterModeMethod_RegionCenter_Y_Asc_X_Desc
Definition PatternMatch.h:297
@ ESortClusterModeMethod_RegionCenter_Y_Desc_X_Desc
Definition PatternMatch.h:315
@ ESortClusterModeMethod_RegionCenter_Y_Asc_X_Asc
Definition PatternMatch.h:288
@ ESortClusterModeMethod_RegionCenter_X_Desc_Y_Asc
Definition PatternMatch.h:342
@ ESortClusterModeMethod_Pivot_Y_Desc_X_Desc
Definition PatternMatch.h:387
virtual const CResult GetResultForScore(int64_t i64Index, float &f32ResultScore) const
virtual const CResult Load(const Base::CFLString< wchar_t > &strPatternFile)
virtual const CResult GetResultForPivot(int64_t i64Index, Foundation::CFLPoint< double > &flpResultPivot) const
virtual const CResult SetScaleRange(double f64ScaleMin=1., double f64ScaleMax=1.)
virtual const CResult GetResultForRegion(int64_t i64Index, Foundation::CFLFigureArray *pFlfaResultRegion) const
CPatternMatch(const CPatternMatch *pPmr)
double m_f64Accuracy
Definition PatternMatch.h:1678
virtual const CResult AddSortItem(const Base::CFLArray< int32_t > &flaItem, const Base::CFLArray< int32_t > &flaOrder)
virtual double GetMinimumDetectionScore() const
ESearchAccuracy
Definition PatternMatch.h:435
@ ESearchAccuracy_Normal
Definition PatternMatch.h:452
@ ESearchAccuracy_Accurate
Definition PatternMatch.h:461
@ ESearchAccuracy_Fast
Definition PatternMatch.h:443
virtual const CResult GetResultForAngle(int64_t i64Index, float &f32ResultAngle) const
virtual const CResult GetFilterItem(CPatternMatch::EFilterItem &eFilterItem, double &f64Value, Base::ELogicalCondition &eFilterCondition) const
virtual bool GetSortClusterMode(CPatternMatch::ESortClusterModeMethod &eMethod, double &f64Coefficient) const
double m_f64MinimumDetectionScore
Definition PatternMatch.h:1633
virtual const CResult Sort(EFilterItem eItem=EFilterItem_Unselected, EOrder eOrder=EOrder_Descending)
virtual const CResult Save(const Base::CFLString< wchar_t > &strPatternFile)
bool m_bInterpolation
Definition PatternMatch.h:1687
virtual const EMatchContrastOption GetContrastOption() const
double m_f64AngleBias
Definition PatternMatch.h:1660
EOrder
Definition PatternMatch.h:258
@ EOrder_Descending
Definition PatternMatch.h:269
@ EOrder_Ascending
Definition PatternMatch.h:263
virtual const CResult SetMinimumDetectionScore(double f64Score=.5)
double m_f64ScaleMax
Definition PatternMatch.h:1651
ESearchAccuracy m_eSearchAccuracy
Definition PatternMatch.h:1709
Base::CFLArray< int32_t > m_flaSortOrder
Definition PatternMatch.h:1754
double m_f64AngleTolerance
Definition PatternMatch.h:1669
virtual const CResult Sort(const Base::CFLArray< int32_t > &flaItem, const Base::CFLArray< int32_t > &flaOrder)
virtual const CResult SortClusterMode(ESortClusterModeMethod eMethod, double f64Coefficient=.5)
virtual const CResult SetMaxObject(int64_t i64MaxObject=1)
const CPatternMatch & operator=(const CPatternMatch &pm)
virtual const CResult GetSortItem(CPatternMatch::EFilterItem &eSortItem, CPatternMatch::EOrder &eOrder) const
Base::CFLArray< int32_t > m_flaFilterCondition
Definition PatternMatch.h:1736
double m_f64SortClusterCoefficient
Definition PatternMatch.h:1781
virtual const CResult SetSortItem(const Base::CFLArray< int32_t > &flaItem, const Base::CFLArray< int32_t > &flaOrder)
virtual const CResult Assign(const CPatternMatch *pAib)
virtual const CResult GetLearnedImage(Base::CFLImage &fliImage, bool bIncludeFigure=false) const
CPatternMatch(const CPatternMatch &pmr)
CPatternMatch::ESortClusterModeMethod m_eSortClusterMethod
Definition PatternMatch.h:1772
virtual const CResult SetAngleTolerance(double f64AngleTolerance=.0)
virtual const CResult AddFilterItem(const Base::CFLArray< int32_t > &flaFilterItem, const Base::CFLArray< double > &flaValue, const Base::CFLArray< int32_t > &flaFilterCondition)
Base::CFLArray< int32_t > m_flaFilterItem
Definition PatternMatch.h:1718
Base::CFLArray< int32_t > m_flaSortItem
Definition PatternMatch.h:1745
static const CResult GetLearnedFileVersion(Base::CFLString< wchar_t > strPatternFile, int32_t &i32MajorVer, int32_t &i32MinorVer)
저장 데이터 파일의 버전을 가져옵니다.
virtual const CResult ReportToCSV(const CReportDescriptorForMatch &wrd) const
알고리즘의 실행결과를 CReportDescriptorForMatch 객체에 기록된 옵션에 따라 파일에 기록 합니다. 모든 알고리즘들이 이 함수를 지원하지는 않습니다....
virtual const CResult GetResultForRegion(int64_t i64Index, Foundation::CFLFigureArray &flfaResultRegion) const
virtual const CResult SetSortClusterMode(CPatternMatch::ESortClusterModeMethod eMethod, double f64Coefficient)
Base::CFLArray< double > m_flaFilterValue
Definition PatternMatch.h:1727
virtual const CResult AddFilterItem(CPatternMatch::EFilterItem eFilterItem, double f64Value, const Base::ELogicalCondition eFilterCondition)
ReportDescriptorForMatch 클래스
Definition ReportDescriptorForMatch.h:22
Template type 의 배열 클래스.
Definition FLArray.h:53
FLImaging의 이미지 클래스
Definition FLImage.h:35
Template type 의 문자열 클래스
Definition FLString.h:34
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1596
도형 배열을 표현하는 클래스
Definition FLFigureArray.h:26
도형을 표현하는 클래스의 기저 클래스
Definition FLFigure.h:27
점을 표현하는 클래스
Definition FLPoint.h:24
ReportDescriptor 클래스
Definition ReportDescriptor.h:22
Definition AlgorithmFeature_DI_BAT_CI.h:15
EMatchContrastOption
Definition DefinitionsAdvancedFunctions.h:29
@ EMatchContrastOption_Normal
Definition DefinitionsAdvancedFunctions.h:37
ELogicalCondition
논리적 조건
Definition DefinitionsBase.h:3099
EProcessingUnitFeatures
Processing Unit Features
Definition AlgorithmBase.h:26
Foundation::CFLFigure * pFlfRegion
Definition PatternMatch.h:178
const SResult & operator=(const SResult &pmr)
float f32Angle
Definition PatternMatch.h:158
virtual const CResult Assign(const SResult &pmr)
virtual const CResult Assign(const SResult *pPmr)
float f32Scale
Definition PatternMatch.h:167
Foundation::CFLPoint< double > flpPivot
Definition PatternMatch.h:189
float f32Score
Definition PatternMatch.h:149