12#include "DefinitionsAdvancedFunctions.h"
13#include "ReportDescriptorForBlob.h"
20 class CInternalSegmentationRegionExtractorDL;
29 template <
typename dataType,
typename maxType>
30 class CInternalBlobTemplate;
32 template <
typename dataType,
typename maxType>
33 class CInternalBlobSubsampledTemplate;
2923 DeclareGetClassType();
2924 SupportToDuplicateObject(
CBlob, *
this);
3098 friend class CInternalBlob;
3099 friend class CBlobSubsampled;
3100 friend class CInternalBlobSubsampled;
3102 friend class CInternalMura;
3103 friend class AI::CInternalSegmentationRegionExtractorDL;
3105 template<
typename T1,
typename T2>
friend class CInternalBlobTemplate;
3106 template<
typename T1,
typename T2>
friend class CInternalBlobSubsampledTemplate;
3109 CInternalBlob* m_pInternal;
virtual bool IsAbsoluteModeEnabled() const
virtual const CResult Clear()
Base::CFLArray< int32_t > m_flaFilterCondition
Definition Blob.h:3054
CBlob::ESortClusterModeMethod m_eSortClusterMethod
Definition Blob.h:3087
virtual const CResult GetResultSolidAreas(Base::CFLArray< Base::CFLArray< uint64_t > > &flaResultSolidArea) const
virtual const CResult Assign(const CBlob *pCc)
virtual const CResult SetThreshold(const Base::CMultiVar< double > &mvThreshold=127., ImageProcessing::EThresholdIndex eIndex=ImageProcessing::EThresholdIndex_First)
virtual const CResult Assign(const CBlob &cc)
virtual const CResult GetResultBlobImage(Base::CFLImage *pFliResultBlobImage) const
virtual const CResult GetThreshold(Base::CMultiVar< double > &mvThreshold) const
virtual const CResult GetResultAreas(Base::CFLArray< Base::CFLArray< uint64_t > > &flaResultArea) const
Base::CFLArray< int32_t > m_flaFilterItem
Definition Blob.h:3038
bool m_bSortClusterMode
Definition Blob.h:3079
virtual const CResult GetLogicalCondition(Base::ELogicalCondition &eLogicalCondition1, Base::ELogicalCondition &eLogicalCondition2) const
virtual const CResult GetThreshold(double &f64Threshold1, double &f64Threshold2) const
virtual const CResult GetResultCircularities(Base::CFLArray< Base::CFLArray< double > > &flaResultCircularities) const
virtual const CResult SetThreshold(const Base::CMultiVar< double > &mvThreshold1, const Base::CMultiVar< double > &mvThreshold2)
virtual const CResult GetResultArea(int64_t i64Index, uint64_t *pU64ResultArea) const
Base::CMultiVar< int64_t > m_mvLogicalCondition1
Definition Blob.h:2975
virtual const CResult ReportToCSV(const CReportDescriptorForBlob &rd) const
virtual const CResult SetLogicalCondition(const Base::CMultiVar< int64_t > &mvLogicalCondition1, const Base::CMultiVar< int64_t > &mvLogicalCondition2)
virtual const CResult GetResultCircularity(int64_t i64Index, double *pF64ResultCircularity) const
double m_f64SortClusterCoefficient
Definition Blob.h:3095
virtual const CResult GetResultConvexHull(int64_t i64Index, Foundation::CFLRegion *pFlrgResultConvex) const
virtual const CResult GetResultAreas(Base::CFLArray< uint64_t > &flaResultArea) const
virtual const CResult SetConnectedDirection(EConnectedDirection eDireciton=EConnectedDirection_Direction_8)
EContourResultType m_eContourType
Definition Blob.h:3029
virtual const CResult GetFilterItem(Base::CFLArray< int32_t > &flaFilterItem, Base::CFLArray< double > &flaValue, Base::CFLArray< int32_t > &flaFilterCondition) const
virtual const CResult GetResultBoundaryRects(Foundation::CFLFigureArray *pFlfaResultBoundaryRect) const
virtual const CResult GetResultContourRasterRegion(int64_t i64Index, Base::CFLArray< Base::TRect< int32_t > > &flaResult)
virtual Base::CMultiVar< double > GetThreshold(ImageProcessing::EThresholdIndex eIndex=ImageProcessing::EThresholdIndex_First) const
virtual const CResult ClearFilterItem()
virtual bool IsLicenseAvailable() const override
Returns whether the algorithm can be used with the current license.
virtual const CResult GetResultCircularities(Base::CFLArray< double > &flaResultCircularities) const
virtual EConnectedDirection GetConnectedDirection() const
virtual const CResult AddSortItem(CBlob::EFilterItem eSortItem, CBlob::EOrder eOrder)
virtual const CResult GetResultAngle(int64_t i64Index, float &f32ResultAngle) const
virtual const CResult GetResultContourRasterRegion(int64_t i64Index, Foundation::CFLFigureArray *pFlfaResult)
virtual const CResult GetResultSolidAreas(Base::CFLArray< uint64_t > &flaResultSolidArea) const
Base::CFLArray< int32_t > m_flaSortItem
Definition Blob.h:3063
virtual const CResult SetLogicalCondition(const Base::CMultiVar< int64_t > &mvLogicalCondition, ImageProcessing::EThresholdIndex eIndex=ImageProcessing::EThresholdIndex_First)
EBlobResultType
Definition Blob.h:55
@ EBlobResultType_Labeling
Definition Blob.h:60
@ EBlobResultType_MinimumEnclosingRectangle
Definition Blob.h:75
@ EBlobResultType_Contour
Definition Blob.h:70
@ EBlobResultType_SolidArea
Definition Blob.h:100
@ EBlobResultType_Circularity
Definition Blob.h:90
@ EBlobResultType_ConvexHull
Definition Blob.h:80
@ EBlobResultType_GravityCenter
Definition Blob.h:85
@ EBlobResultType_BoundaryRect
Definition Blob.h:65
@ EBlobResultType_Area
Definition Blob.h:95
@ EBlobResultType_Angle
Definition Blob.h:105
virtual const CResult GetResultAngles(Base::CFLArray< Base::CFLArray< float > > &flaResultAngles) const
virtual const CResult GetResultContours(Foundation::CFLFigureArray *pFlfaResultContour) const
virtual const CResult GetResultAngles(Base::CFLArray< Base::CFLArray< float > > *pFlaResultAngles) const
virtual const CResult GetResultBoundaryRect(int64_t i64Index, Foundation::CFLRect< int32_t > *pFlrResultBoundaryRect) const
virtual const CResult Sort(EFilterItem eItem=EFilterItem_Unselected, EOrder eOrder=EOrder_Ascending)
virtual const CResult SortClusterMode(ESortClusterModeMethod eMethod=ESortClusterModeMethod_Center_Y_Asc_X_Asc, double f64Coefficient=.5)
virtual const CResult GetResultConvexHull(int64_t i64Index, Foundation::CFLRegion &flrgResultConvex) const
virtual const CResult GetResultConvexHulls(Foundation::CFLFigureArray &flfaResultConvex) const
Base::CMultiVar< int64_t > m_mvLogicalCondition2
Definition Blob.h:2987
virtual const CResult GetResultContour(int64_t i64Index, Foundation::CFLRegion *pFlrgResultContour) const
virtual const CResult GetResultBoundaryRect(int64_t i64Index, Foundation::CFLRect< int32_t > &flrResultBoundaryRect) const
EBlobResultType m_eType
Definition Blob.h:3013
EOrder
Definition Blob.h:510
@ EOrder_Descending
Definition Blob.h:520
@ EOrder_Ascending
Definition Blob.h:515
EConnectedDirection
Definition Blob.h:116
@ EConnectedDirection_Direction_8
Definition Blob.h:126
@ EConnectedDirection_Direction_4
Definition Blob.h:121
virtual const CResult GetThreshold(double &f64Threshold) const
virtual EBlobResultType GetResultType() const
virtual const CResult GetResultAreas(Base::CFLArray< Base::CFLArray< uint64_t > > *pFlaResultArea) const
Base::CFLArray< int32_t > m_flaSortOrder
Definition Blob.h:3071
virtual const CResult GetSortItem(CBlob::EFilterItem &eSortItem, CBlob::EOrder &eOrder) const
ELogicalConditionOfChannels m_eLogicalConditionOfChannels
Definition Blob.h:3004
virtual const CResult GetResultContours(Foundation::CFLFigureArray &flfaResultContour) const
virtual const CResult GetResultMinimumEnclosingRectangle(int64_t i64Index, Foundation::CFLQuad< double > &flqResultMER) const
virtual const CResult GetResultContourRasterRegions(Base::CFLArray< Base::CFLArray< Base::TRect< int32_t > > > *pFlaResults)
virtual const CResult GetResultPixelCenterContours(Foundation::CFLFigureArray &flfaResultContour) const
virtual const CResult SetSortItem(CBlob::EFilterItem eSortItem, CBlob::EOrder eOrder)
virtual const CResult GetFilterItem(CBlob::EFilterItem &eFilterItem, double &f64Value, Base::ELogicalCondition &eFilterCondition) const
virtual const CResult Sort(const Base::CFLArray< int32_t > &flaItem, const Base::CFLArray< int32_t > &flaOrder)
virtual const CResult GetResultAngles(Base::CFLArray< float > *pFlaResultAngles) const
virtual int64_t GetResultCount() const
virtual const CResult AddFilterItem(CBlob::EFilterItem eFilterItem, double f64Value, Base::ELogicalCondition eFilterCondition)
virtual const CResult GetResultMinimumEnclosingRectangles(Foundation::CFLFigureArray &flfaResultMER) const
virtual bool GetSortClusterMode(CBlob::ESortClusterModeMethod &eMethod, double &f64Coefficient) const
virtual const CResult SetThresholdMode(ImageProcessing::EThresholdMode eThresholdMode=ImageProcessing::EThresholdMode_Single)
Base::CFLArray< double > m_flaFilterValue
Definition Blob.h:3046
virtual const CResult GetResultLabelImage(Base::CFLImage &fliResultLabelImage) const
virtual const CResult SetLogicalConditionOfChannels(ELogicalConditionOfChannels eCondition=ELogicalConditionOfChannels_And)
const CBlob & operator=(const CBlob &cc)
virtual const CResult SetFilterItem(CBlob::EFilterItem eFilterItem, double f64Value, Base::ELogicalCondition eFilterCondition)
virtual const CResult GetResultContourRasterRegions(Foundation::CFLFigureArray *pFlfaResults)
virtual const CResult Filter(EFilterItem eItem, double f64Value, Base::ELogicalCondition eCondition)
ESortClusterModeMethod
Definition Blob.h:308
@ ESortClusterModeMethod_MinimumEnclosingRectangleCenter_X_Asc_Y_Asc
Definition Blob.h:476
@ ESortClusterModeMethod_GravityCenter_X_Asc_Y_Asc
Definition Blob.h:412
@ ESortClusterModeMethod_MinimumEnclosingRectangleCenter_Y_Asc_X_Desc
Definition Blob.h:452
@ ESortClusterModeMethod_MinimumEnclosingRectangleCenter_X_Asc_Y_Desc
Definition Blob.h:484
@ ESortClusterModeMethod_Center_X_Asc_Y_Asc
Definition Blob.h:348
@ ESortClusterModeMethod_Center_X_Asc_Y_Desc
Definition Blob.h:356
@ ESortClusterModeMethod_Center_X_Desc_Y_Desc
Definition Blob.h:372
@ ESortClusterModeMethod_MinimumEnclosingRectangleCenter_X_Desc_Y_Desc
Definition Blob.h:500
@ ESortClusterModeMethod_GravityCenter_Y_Asc_X_Desc
Definition Blob.h:388
@ ESortClusterModeMethod_Center_X_Desc_Y_Asc
Definition Blob.h:364
@ ESortClusterModeMethod_MinimumEnclosingRectangleCenter_Y_Desc_X_Desc
Definition Blob.h:468
@ ESortClusterModeMethod_GravityCenter_X_Desc_Y_Desc
Definition Blob.h:436
@ ESortClusterModeMethod_MinimumEnclosingRectangleCenter_X_Desc_Y_Asc
Definition Blob.h:492
@ ESortClusterModeMethod_Center_Y_Asc_X_Desc
Definition Blob.h:324
@ ESortClusterModeMethod_Center_Y_Asc_X_Asc
Definition Blob.h:316
@ ESortClusterModeMethod_GravityCenter_Y_Desc_X_Asc
Definition Blob.h:396
@ ESortClusterModeMethod_Center_Y_Desc_X_Asc
Definition Blob.h:332
@ ESortClusterModeMethod_GravityCenter_X_Desc_Y_Asc
Definition Blob.h:428
@ ESortClusterModeMethod_GravityCenter_Y_Desc_X_Desc
Definition Blob.h:404
@ ESortClusterModeMethod_MinimumEnclosingRectangleCenter_Y_Asc_X_Asc
Definition Blob.h:444
@ ESortClusterModeMethod_GravityCenter_X_Asc_Y_Desc
Definition Blob.h:420
@ ESortClusterModeMethod_GravityCenter_Y_Asc_X_Asc
Definition Blob.h:380
@ ESortClusterModeMethod_MinimumEnclosingRectangleCenter_Y_Desc_X_Asc
Definition Blob.h:460
@ ESortClusterModeMethod_Center_Y_Desc_X_Desc
Definition Blob.h:340
virtual const CResult ReportToCSV(const Foundation::CReportDescriptor *pRd) const override
The execution result of the algorithm is recorded in a file according to the options recorded in the ...
virtual const CResult SetContourResultType(EContourResultType eContourType=EContourResultType_Solid)
virtual const CResult GetResultArea(int64_t i64Index, uint64_t &u64ResultArea) const
virtual ImageProcessing::EThresholdMode GetThresholdMode() const
virtual const CResult GetResultGravityCenter(int64_t i64Index, Foundation::CFLPoint< double > *pFlpResultGravityCenter) const
virtual const CResult GetResultCircularities(Base::CFLArray< double > *pFlaResultCircularities) const
virtual const CResult ReportToCSV(const CReportDescriptorForBlob *pRd) const
Base::CMultiVar< double > m_mvThreshold1
Definition Blob.h:2951
EFilterItem
Definition Blob.h:137
@ EFilterItem_SolidArea
Definition Blob.h:152
@ EFilterItem_BoundaryRectWidthHeightRatio
Definition Blob.h:182
@ EFilterItem_BoundaryRectShortLongRatio
Definition Blob.h:187
@ EFilterItem_GravityCenterX
Definition Blob.h:212
@ EFilterItem_MinimumEnclosingRectangleShortSideLength
Definition Blob.h:277
@ EFilterItem_MinimumEnclosingRectangleCenterY
Definition Blob.h:227
@ EFilterItem_Perimeter
Definition Blob.h:297
@ EFilterItem_MinimumEnclosingRectanglePoint0X
Definition Blob.h:232
@ EFilterItem_BoundaryRectCenterY
Definition Blob.h:167
@ EFilterItem_BoundaryRectWidth
Definition Blob.h:172
@ EFilterItem_MinimumEnclosingRectanglePoint2X
Definition Blob.h:252
@ EFilterItem_MinimumEnclosingRectanglePoint0Y
Definition Blob.h:237
@ EFilterItem_BoundaryRectHeight
Definition Blob.h:177
@ EFilterItem_BoundaryRectCenterX
Definition Blob.h:162
@ EFilterItem_MinimumEnclosingRectanglePoint3X
Definition Blob.h:262
@ EFilterItem_Area
Definition Blob.h:147
@ EFilterItem_BoundaryRectRight
Definition Blob.h:202
@ EFilterItem_MinimumEnclosingRectanglePoint2Y
Definition Blob.h:257
@ EFilterItem_MinimumEnclosingRectanglePoint1X
Definition Blob.h:242
@ EFilterItem_Angle
Definition Blob.h:157
@ EFilterItem_MinimumEnclosingRectangleArea
Definition Blob.h:287
@ EFilterItem_MinimumEnclosingRectanglePoint3Y
Definition Blob.h:267
@ EFilterItem_MinimumEnclosingRectanglePoint1Y
Definition Blob.h:247
@ EFilterItem_BoundaryRectTop
Definition Blob.h:197
@ EFilterItem_MinimumEnclosingRectangleShortLongRatio
Definition Blob.h:282
@ EFilterItem_MinimumEnclosingRectangleCenterX
Definition Blob.h:222
@ EFilterItem_BoundaryRectBottom
Definition Blob.h:207
@ EFilterItem_MinimumEnclosingRectangleLongSideLength
Definition Blob.h:272
@ EFilterItem_Unselected
Definition Blob.h:142
@ EFilterItem_Circularity
Definition Blob.h:292
@ EFilterItem_GravityCenterY
Definition Blob.h:217
@ EFilterItem_BoundaryRectLeft
Definition Blob.h:192
virtual const CResult GetResultAngles(Base::CFLArray< float > &flaResultAngles) const
virtual const CResult GetResultConvexHulls(Foundation::CFLFigureArray *pFlfaResultConvex) const
virtual const CResult GetResultAreas(Base::CFLArray< uint64_t > *pFlaResultArea) const
virtual const CResult GetResultGravityCenters(Foundation::CFLFigureArray &flfaResultGravityCenters) const
virtual const CResult SetSortClusterMode(CBlob::ESortClusterModeMethod eMethod, double f64Coefficient)
EContourResultType
Definition Blob.h:551
@ EContourResultType_Solid
Definition Blob.h:555
@ EContourResultType_Perforated
Definition Blob.h:560
virtual const CResult GetResultContourRasterRegions(Base::CFLArray< Base::CFLArray< Base::TRect< int32_t > > > &flaResults)
virtual const CResult GetResultPixelCenterContours(Foundation::CFLFigureArray *pFlfaResultContour) const
Base::CMultiVar< double > m_mvThreshold2
Definition Blob.h:2963
virtual const CResult SetSortItem(const Base::CFLArray< int32_t > &flaItem, const Base::CFLArray< int32_t > &flaOrder)
ELogicalConditionOfChannels
Definition Blob.h:530
@ ELogicalConditionOfChannels_Or
Definition Blob.h:540
@ ELogicalConditionOfChannels_And
Definition Blob.h:535
virtual const CResult AddFilterItem(const Base::CFLArray< int32_t > &flaFilterItem, const Base::CFLArray< double > &flaValue, const Base::CFLArray< int32_t > &flaFilterCondition)
virtual const CResult GetResultSolidAreas(Base::CFLArray< uint64_t > *pFlaResultSolidArea) const
virtual const CResult GetResultPixelCenterContour(int64_t i64Index, Foundation::CFLRegion &flrgResultContour) const
virtual const CResult SetLogicalCondition(Base::ELogicalCondition eLogicalCondition1, Base::ELogicalCondition eLogicalCondition2)
virtual const CResult SetResultType(EBlobResultType eType=EBlobResultType_BoundaryRect)
virtual const CResult GetResultMinimumEnclosingRectangles(Foundation::CFLFigureArray *pFlfaResultMER) const
virtual const CResult GetThreshold(Base::CMultiVar< double > &mvThreshold1, Base::CMultiVar< double > &mvThreshold2) const
virtual const CResult GetResultBlobImage(Base::CFLImage &fliResultBlobImage) const
virtual const CResult GetResultPixelCenterContour(int64_t i64Index, Foundation::CFLRegion *pFlrgResultContour) const
virtual const CResult GetResultMinimumEnclosingRectangle(int64_t i64Index, Foundation::CFLQuad< double > *pFlqResultMER) const
virtual const CResult SetFilterItem(const Base::CFLArray< int32_t > &flaFilterItem, const Base::CFLArray< double > &flaValue, const Base::CFLArray< int32_t > &flaFilterCondition)
EConnectedDirection m_eConnectedDirection
Definition Blob.h:3021
virtual const CResult GetResultGravityCenter(int64_t i64Index, Foundation::CFLPoint< double > &flpResultGravityCenter) const
virtual const CResult AddSortItem(const Base::CFLArray< int32_t > &flaItem, const Base::CFLArray< int32_t > &flaOrder)
virtual const CResult GetResultGravityCenters(Foundation::CFLFigureArray *pFlfaResultGravityCenters) const
virtual const CResult GetResultSolidAreas(Base::CFLArray< Base::CFLArray< uint64_t > > *pFlaResultSolidArea) const
virtual const CResult GetSortItem(Base::CFLArray< int32_t > &flaItem, Base::CFLArray< int32_t > &flaOrder) const
virtual const CResult SetThreshold(double f64Threshold, ImageProcessing::EThresholdIndex eIndex=ImageProcessing::EThresholdIndex_First)
virtual const CResult GetResultCircularity(int64_t i64Index, double &f64ResultCircularity) const
virtual const CResult GetResultAngle(int64_t i64Index, float *pF32ResultAngle) const
virtual const CResult GetResultSolidArea(int64_t i64Index, uint64_t &u64ResultSolidArea) const
virtual ELogicalConditionOfChannels GetLogicalConditionOfChannels() const
bool m_bAbsoluteMode
Definition Blob.h:2996
virtual const CResult EnabledAbsoluteMode(bool bAbsoluteMode=false)
virtual const CResult GetResultCircularities(Base::CFLArray< Base::CFLArray< double > > *pFlaResultCircularities) const
virtual const Base::CMultiVar< int64_t > GetLogicalCondition(ImageProcessing::EThresholdIndex eIndex=ImageProcessing::EThresholdIndex_First) const
virtual const CResult GetResultSolidArea(int64_t i64Index, uint64_t *pU64ResultSolidArea) const
virtual const CResult Execute()
virtual const CResult GetResultContourRasterRegion(int64_t i64Index, Base::CFLArray< Base::TRect< int32_t > > *pFlaResult)
virtual const CResult GetResultContourRasterRegions(Foundation::CFLFigureArray &flfaResults)
virtual const CResult SetThreshold(double f64Threshold1, double f64Threshold2)
virtual const CResult GetResultContour(int64_t i64Index, Foundation::CFLRegion &flrgResultContour) const
ImageProcessing::EThresholdMode m_eThresholdMode
Definition Blob.h:2939
virtual const CResult GetResultContourRasterRegion(int64_t i64Index, Foundation::CFLFigureArray &flfaResult)
virtual const CResult SetLogicalCondition(Base::ELogicalCondition eLogicalCondition=Base::ELogicalCondition_Greater, ImageProcessing::EThresholdIndex eIndex=ImageProcessing::EThresholdIndex_First)
virtual const CResult GetResultBoundaryRects(Foundation::CFLFigureArray &flfaResultBoundaryRect) const
virtual EContourResultType GetContourResultType() const
virtual const CResult GetResultLabelImage(Base::CFLImage *pFliResultLabelImage) const
virtual const CResult ClearSortItem()
Connected component labeling Class.
Definition BlobSubsampled.h:35
ReportDescriptorForBlob class.
Definition ReportDescriptorForBlob.h:22
Template type array class.
Definition FLArray.h:71
FLIMaging's image class.
Definition FLImage.h:35
Multi variable class.
Definition MultiVar.h:31
Simplified class representing a rectangle.
Definition TRect.h:37
FLImaging module execution result object.
Definition ResultsDef.h:1704
A class representing a point.
Definition FLPoint.h:24
A class representing a quadrangle.
Definition FLQuad.h:24
A class representing a rectangle.
Definition FLRect.h:24
A class representing region.
Definition FLRegion.h:26
ReportDescriptor class.
Definition ReportDescriptor.h:22
Base class of image processing classes Base of imaging algorithm classes, has common getter/setter.
Definition AlgorithmFeature_SR.h:31
Definition AlgorithmAIBase.h:18
Definition AlgorithmFeature_DI_BAT_CI.h:15
ELogicalCondition
Logical condition.
Definition DefinitionsBase.h:3147
@ ELogicalCondition_Greater
Greater.
Definition DefinitionsBase.h:3156
EThresholdIndex
Definition DefinitionsImgProcBase.h:251
@ EThresholdIndex_First
Definition DefinitionsImgProcBase.h:257
EThresholdMode
Definition DefinitionsImgProcBase.h:27
@ EThresholdMode_Single
Definition DefinitionsImgProcBase.h:33