FLImaging 6.6.27.1
Moment.h
1#pragma once
2
22
23#include "AlgorithmFeature_SR.h"
24
25#include "ReportDescriptorForMoment.h"
26
28namespace FLImaging
29{
31 namespace ImageProcessing
32 {
33 class CInternalMoment;
34
54
55 class FL_EXPORT CMoment : public CAlgorithmFeature_SR
56 {
57 public:
66
74 CMoment(const CMoment& Moment);
75
83 CMoment(const CMoment* pMoment);
84
92 virtual ~CMoment();
93
101 const CMoment& operator=(const CMoment& Moment);
102
116 virtual const CResult Assign(const CMoment& aib);
117
131 virtual const CResult Assign(const CMoment* pAib);
132
145 {
156 };
157
170 {
173 };
174
187 {
198 };
199
212 {
223 };
224
237 {
238 double f64Hu0;
239 double f64Hu1;
240 double f64Hu2;
241 double f64Hu3;
242 double f64Hu4;
243 double f64Hu5;
244 double f64Hu6;
245 };
246
268 struct SMoments
269 {
275 };
276
284 struct SZernike
285 {
286 int32_t i32N;
287 int32_t i32M;
295 uint64_t u64Radius;
320 };
321
341 virtual const CResult EnableBinaryImage(bool bBinaryImage = true);
342
352 virtual bool IsBinaryImageEnabled() const;
353
365 virtual const CResult Execute();
366
378 virtual const CResult Clear() override;
379
393 virtual const CResult EnableGeometricMoment(bool bCalc = true);
394
404 virtual bool IsGeometricMomentEnabled() const;
405
419 virtual const CResult EnableCentroidMoment(bool bCalc = true);
420
430 virtual bool IsCentroidMomentEnabled() const;
431
445 virtual const CResult EnableCentralMoment(bool bCalc = true);
446
456 virtual bool IsCentralMomentEnabled() const;
457
471 virtual const CResult EnableNormalizedCentralMoment(bool bCalc = true);
472
483
497 virtual const CResult EnableHuMoment(bool bCalc = true);
498
508 virtual bool IsHuMomentEnabled() const;
509
521 virtual const CResult ClearZernike();
522
548 virtual const CResult AddZernike(int32_t i32N, int32_t i32M, uint64_t u64ZernikeRadius = 0, bool bInscribedCircle = true);
549
567 virtual const CResult GetMoment(CMoment::SMoments& moments, int64_t i64Channel = 0) const;
568
586 virtual const CResult GetMoment(CMoment::SMoments* pMoments, int64_t i64Channel = 0) const;
587
599 virtual int64_t GetZernikeCount() const;
600
620 virtual const CResult GetZernike(CMoment::SZernike& zernike, int64_t i64Index = 0, int64_t i64Channel = 0) const;
621
641 virtual const CResult GetZernike(CMoment::SZernike* pZernike, int64_t i64Index = 0, int64_t i64Channel = 0) const;
642
662 static const CResult GetContoursMatchL1(const CMoment::SHuMoment sHuMoment1, const CMoment::SHuMoment sHuMoment2, double* pF64Result);
663
683 static const CResult GetContoursMatchL1(const CMoment::SHuMoment sHuMoment1, const CMoment::SHuMoment sHuMoment2, double& f64Result);
684
704 static const CResult GetContoursMatchL2(const CMoment::SHuMoment sHuMoment1, const CMoment::SHuMoment sHuMoment2, double* pF64Result);
705
725 static const CResult GetContoursMatchL2(const CMoment::SHuMoment sHuMoment1, const CMoment::SHuMoment sHuMoment2, double& f64Result);
726
746 static const CResult GetContoursMatchL3(const CMoment::SHuMoment sHuMoment1, const CMoment::SHuMoment sHuMoment2, double* pF64Result);
747
767 static const CResult GetContoursMatchL3(const CMoment::SHuMoment sHuMoment1, const CMoment::SHuMoment sHuMoment2, double& f64Result);
768
769 virtual const CResult ReportToCSV(const Foundation::CReportDescriptor* pWrd) const override;
770
791 virtual const CResult ReportToCSV(const CReportDescriptorForMoment& wrd) const;
792
813 virtual const CResult ReportToCSV(const CReportDescriptorForMoment* pWrd) const;
814
815 virtual bool IsLicenseAvailable() const override;
816
817
818 DeclareGetClassType();
819 SupportToDuplicateObject(CMoment, *this);
820
821 protected:
830
839
848
857
866
875
876 protected:
877 friend class CInternalMoment;
878
879 CInternalMoment* m_pInternal;
880 };
881 }
882}
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1596
ReportDescriptor 클래스
Definition ReportDescriptor.h:22
bool m_bBinaryImage
Definition Moment.h:829
bool m_bCalcHuMoment
Definition Moment.h:874
static const CResult GetContoursMatchL3(const CMoment::SHuMoment sHuMoment1, const CMoment::SHuMoment sHuMoment2, double *pF64Result)
virtual const CResult GetZernike(CMoment::SZernike *pZernike, int64_t i64Index=0, int64_t i64Channel=0) const
virtual bool IsNormalizedCentralMomentEnabled() const
static const CResult GetContoursMatchL3(const CMoment::SHuMoment sHuMoment1, const CMoment::SHuMoment sHuMoment2, double &f64Result)
virtual const CResult Assign(const CMoment *pAib)
virtual const CResult GetMoment(CMoment::SMoments &moments, int64_t i64Channel=0) const
CMoment(const CMoment *pMoment)
virtual bool IsCentroidMomentEnabled() const
bool m_bCalcGeometricMoment
Definition Moment.h:838
bool m_bCalcNormalizedCentralMoment
Definition Moment.h:865
virtual const CResult EnableCentralMoment(bool bCalc=true)
virtual const CResult ReportToCSV(const CReportDescriptorForMoment &wrd) const
알고리즘의 실행결과를 CReportDescriptorForMoment 객체에 기록된 옵션에 따라 파일에 기록 합니다. 모든 알고리즘들이 이 함수를 지원하지는 않습니다....
virtual const CResult AddZernike(int32_t i32N, int32_t i32M, uint64_t u64ZernikeRadius=0, bool bInscribedCircle=true)
virtual const CResult Execute()
bool m_bCalcCentroidMoment
Definition Moment.h:847
virtual bool IsBinaryImageEnabled() const
virtual const CResult GetZernike(CMoment::SZernike &zernike, int64_t i64Index=0, int64_t i64Channel=0) const
virtual const CResult Clear() override
const CMoment & operator=(const CMoment &Moment)
virtual const CResult EnableCentroidMoment(bool bCalc=true)
virtual bool IsHuMomentEnabled() const
virtual const CResult EnableBinaryImage(bool bBinaryImage=true)
static const CResult GetContoursMatchL1(const CMoment::SHuMoment sHuMoment1, const CMoment::SHuMoment sHuMoment2, double &f64Result)
virtual int64_t GetZernikeCount() const
CMoment(const CMoment &Moment)
virtual const CResult GetMoment(CMoment::SMoments *pMoments, int64_t i64Channel=0) const
virtual bool IsLicenseAvailable() const override
현재 보유한 라이선스로 해당 알고리즘을 사용할 수 있는지에 대한 여부를 반환 합니다.
virtual const CResult EnableNormalizedCentralMoment(bool bCalc=true)
virtual const CResult Assign(const CMoment &aib)
static const CResult GetContoursMatchL1(const CMoment::SHuMoment sHuMoment1, const CMoment::SHuMoment sHuMoment2, double *pF64Result)
bool m_bCalcCentralMoment
Definition Moment.h:856
virtual bool IsGeometricMomentEnabled() const
static const CResult GetContoursMatchL2(const CMoment::SHuMoment sHuMoment1, const CMoment::SHuMoment sHuMoment2, double *pF64Result)
virtual const CResult EnableGeometricMoment(bool bCalc=true)
static const CResult GetContoursMatchL2(const CMoment::SHuMoment sHuMoment1, const CMoment::SHuMoment sHuMoment2, double &f64Result)
virtual bool IsCentralMomentEnabled() const
virtual const CResult ReportToCSV(const Foundation::CReportDescriptor *pWrd) const override
알고리즘의 실행결과를 ReportDescriptor 객체에 기록된 옵션에 따라 파일에 기록 합니다. 모든 알고리즘들이 이 함수를 지원하지는 않습니다....
virtual const CResult ClearZernike()
virtual const CResult EnableHuMoment(bool bCalc=true)
virtual const CResult ReportToCSV(const CReportDescriptorForMoment *pWrd) const
알고리즘의 실행결과를 CReportDescriptorForMoment 객체에 기록된 옵션에 따라 파일에 기록 합니다. 모든 알고리즘들이 이 함수를 지원하지는 않습니다....
ReportDescriptorForMoment 클래스
Definition ReportDescriptorForMoment.h:23
Definition AbsoluteThreshold.h:25
중심 모멘트 구조체
Definition Moment.h:187
도심 모멘트 구조체
Definition Moment.h:170
double f64CentroidX
Definition Moment.h:171
double f64CentroidY
Definition Moment.h:172
기하학적 모멘트 구조체
Definition Moment.h:145
불변 모멘트 구조체
Definition Moment.h:237
double f64Hu0
Definition Moment.h:238
double f64Hu3
Definition Moment.h:241
double f64Hu6
Definition Moment.h:244
double f64Hu4
Definition Moment.h:242
double f64Hu5
Definition Moment.h:243
double f64Hu1
Definition Moment.h:239
double f64Hu2
Definition Moment.h:240
모멘트 구조체
Definition Moment.h:269
SCentralMoment sCentralMoments
Definition Moment.h:272
SNormalizedCentralMoment sNormalizedCentralMoments
Definition Moment.h:273
SCentroid sCentroidMoment
Definition Moment.h:271
SHuMoment sHuMoments
Definition Moment.h:274
SGeometricMoment sGeometricMoments
Definition Moment.h:270
정규화된 중심 모멘트 구조체
Definition Moment.h:212
int32_t i32N
Definition Moment.h:286
bool bInscribedCircle
Definition Moment.h:303
uint64_t u64Radius
Definition Moment.h:295
double f64ZernikeReal
Definition Moment.h:311
int32_t i32M
Definition Moment.h:287
double f64ZernikeImag
Definition Moment.h:319