FLImaging 7.8.25.3
TensorLabelsIsotropicRatio.h
1#pragma once
2
3#if _MSC_VER >= 1900 && defined(_M_X64)
4
5#include "TensorLabels.h"
6
7#include <atomic>
8
9namespace FLImaging
10{
11 namespace AI
12 {
13 class FL_EXPORT CValidationImageExtractorDL;
14
15 template <typename T>
16 class FL_EXPORT CTensorLabelsIsotropicRatio : public CTensorLabels<T>
17 {
18 public:
19 CTensorLabelsIsotropicRatio();
20
21 CTensorLabelsIsotropicRatio(const CTensorLabelsIsotropicRatio<T>& tsr, bool bDeepCopy = true);
22
23 virtual ~CTensorLabelsIsotropicRatio();
24
25 virtual const CResult GetBinaryData(Base::CFLData& fldBinary, bool bSuperClass = false, int32_t i32Version = -1, bool bDumpMode = false) const override;
26 virtual const CResult GetBinaryData(Base::CFLData* pFldBinary, bool bSuperClass = false, int32_t i32Version = -1, bool bDumpMode = false) const override;
27
28 virtual const CResult SetBinaryData(const Base::CFLData& fldBinary, int64_t* pI64Offset = nullptr) override;
29 virtual const CResult SetBinaryData(const Base::CFLData* pFldBinary, int64_t* pI64Offset = nullptr) override;
30
31 virtual const CResult Create(const std::vector<int64_t>& vctShape, bool bOrderByDesc = true, bool bCudaAllocation = true) override;
32 virtual const CResult Create(const std::initializer_list<int64_t>& ilShape, bool bOrderByDesc = true, bool bCudaAllocation = true) override;
33 virtual const CResult Create(const Base::CFLImage& fli, bool bNormalize = true, std::atomic<int32_t>* pI32CurrentPreparingTensorIndex = nullptr, std::atomic<int32_t>* pI32CurrentPreparingLabelIndex = nullptr, bool *pBAbort = nullptr);
34 virtual const CResult Create(const Base::CFLImage* pFli, bool bNormalize = true, std::atomic<int32_t>* pI32CurrentPreparingTensorIndex = nullptr, std::atomic<int32_t>* pI32CurrentPreparingLabelIndex = nullptr, bool *pBAbort = nullptr);
35 virtual const CResult Create(const Base::CFLImage& fli, const std::vector<int64_t>& vctNewSize, bool bNormalize, const Base::CMultiVar<T>& mvBlankColor, ImageProcessing::EInterpolationMethod eInterpolationMethod, std::atomic<int32_t>* pI32CurrentPreparingTensorIndex, bool* pBAbort);
36 virtual const CResult Create(const Base::CFLImage* pFli, const std::vector<int64_t>& vctNewSize, bool bNormalize, const Base::CMultiVar<T>& mvBlankColor, ImageProcessing::EInterpolationMethod eInterpolationMethod, std::atomic<int32_t>* pI32CurrentPreparingTensorIndex, bool* pBAbort);
37 virtual const CResult Create(const Base::CFLImage& fli, const std::vector<int64_t>& vctNewSize, bool bNormalize = true, const Base::CMultiVar<T>& mvBlankColor = 0., ImageProcessing::EInterpolationMethod eInterpolationMethod = ImageProcessing::EInterpolationMethod_Bilinear, std::atomic<int32_t>* pI32CurrentPreparingTensorIndex = nullptr, std::atomic<int32_t>* pI32CurrentPreparingLabelIndex = nullptr, bool *pBAbort = nullptr);
38 virtual const CResult Create(const Base::CFLImage* pFli, const std::vector<int64_t>& vctNewSize, bool bNormalize = true, const Base::CMultiVar<T>& mvBlankColor = 0., ImageProcessing::EInterpolationMethod eInterpolationMethod = ImageProcessing::EInterpolationMethod_Bilinear, std::atomic<int32_t>* pI32CurrentPreparingTensorIndex = nullptr, std::atomic<int32_t>* pI32CurrentPreparingLabelIndex = nullptr, bool *pBAbort = nullptr);
39
40 virtual const CResult Create(const wchar_t* pWcFilePath, const std::vector<int64_t>& vctNewSize, bool bNormalize = true, const Base::CMultiVar<T>& mvBlankColor = 0., bool bRecursive = false, ImageProcessing::EInterpolationMethod eInterpolationMethod = ImageProcessing::EInterpolationMethod_Bilinear);
41 virtual const CResult Create(const wchar_t* pWcFilePath, const std::initializer_list<int64_t>& ilNewSize, bool bNormalize = true, const Base::CMultiVar<T>& mvBlankColor = 0., bool bRecursive = false, ImageProcessing::EInterpolationMethod eInterpolationMethod = ImageProcessing::EInterpolationMethod_Bilinear);
42
43 virtual const CResult Assign(const CTensor<T>* pTsr, bool bDeepCopy = true) override;
44
45 virtual const CResult Assign(const CTensorLabelsIsotropicRatio<T>& tsr, bool bDeepCopy = true);
46 virtual const CResult Assign(const CTensorLabelsIsotropicRatio<T>* pTsr, bool bDeepCopy = true);
47
48 virtual const CResult Append(const Base::CFLImage* pFli, bool bNormalize = true, const Base::CMultiVar<T>& mvBlankColor = 0., ImageProcessing::EInterpolationMethod eInterpolationMethod = ImageProcessing::EInterpolationMethod_Bilinear, std::atomic<int32_t>* pI32CurrentPreparingTensorIndex = nullptr, std::atomic<int32_t>* pI32CurrentPreparingLabelIndex = nullptr, bool *pBAbort = nullptr);
49 virtual const CResult Append(const wchar_t* pWcFilePath, bool bRecursive = false) override;
50
51 virtual const CResult Initialize() override;
52 virtual const CResult Clear() override;
53
54 virtual const CResult SetBatchParameters(const CTensorImages<T>& tsr) override;
55 virtual const CResult SetBatchParameters(const CTensorLabelsIsotropicRatio<T>& tsr);
56
57 virtual const CResult SetAlignMode(EAlignMode eAlignMode = EAlignMode_Left);
58 virtual EAlignMode GetAlignMode();
59
60 virtual const CResult EnableAngleReflection(bool bAngleReflection = true);
61 virtual bool IsAngleReflectionEnable();
62
63 virtual const CResult EnableHorizental(bool bHorizental = true);
64 virtual bool IsHorizentalEnable();
65
66 virtual CTensorLabelsIsotropicRatio<T>& Evaluate() override;
67
68 virtual CComputationalBase<T>* Clone() const override;
69 virtual const CResult Swap(CComputationalBase<T>& cbSwap) override;
70
71 virtual const CResult LoadTensor(const std::vector<int64_t>& vctBatchIndices) override;
72
73
74 DeclareGetClassType();
75 SupportToDuplicateObject(CTensorLabelsIsotropicRatio, *this);
76 protected:
77 virtual const CResult DecodeLabels(const wchar_t* pWcsImagePath, Base::CFLImage* pFli = nullptr) override;
78 virtual const CResult AddLabel(const wchar_t* pWcsName, Foundation::CFLFigure* pFlfLabel, bool bFile = false);
79
80 virtual const CResult CropImage(const Base::CFLImage* pFliSrc, Base::CFLImage* pFliDst, int64_t i64Width, int64_t i64Height, const Base::CMultiVar<T>& mvBlankColor, std::atomic<int32_t>* pI32CurrentPreparingLabelIndex = nullptr, bool* pBAbort = nullptr);
81 virtual const CResult CropImage(const std::vector<int64_t>& vctBatchIndices, const Base::CFLImage* pFliSrc, Base::CFLImage* pFliDst, int64_t i64Width, int64_t i64Height, const Base::CMultiVar<T>& mvBlankColor, std::atomic<int32_t>* pI32CurrentPreparingLabelIndex = nullptr, bool* pBAbort = nullptr);
82 virtual const CResult CropImageUnit(const Base::CFLImage* pFliSrc, Base::CFLImage* pFliDst, int32_t i32FigureNum, int64_t i64Width, int64_t i64Height);
83 virtual const CResult CropImageUnit(const Base::CFLImage* pFliSrc, Base::CFLImagePage* pFliDstPage, int32_t i32FigureNum, int64_t i64Width, int64_t i64Height);
84
85 protected:
86
87 std::vector<std::pair<int32_t, int32_t>>& m_vctPageFigureNum;
88
89 EAlignMode m_eAlignMode;
90 bool m_bAngleReflection;
91 bool m_bHorizontal;
92 bool m_bSequenceLabel;
93
94 private:
95 friend class CValidationImageExtractorDL;
96
97 using CTensorImages<T>::SetTilingMode;
98 using CTensorImages<T>::GetTilingMode;
99 using CTensorImages<T>::SetResizeMethod;
100 using CTensorImages<T>::GetResizeMethod;
101 using CTensorImages<T>::EnableROIExtraction;
102 using CTensorImages<T>::IsROIExtractionEnabled;
103 public:
104 DeclareGetSignletonObject(CTensorLabelsIsotropicRatio);
105 };
106
107 #define CCGFTensorLabelsIsotropicRatio(...) (*(new CTensorLabelsIsotropicRatio<float>(__VA_ARGS__)))
108 #define CCGDTensorLabelsIsotropicRatio(...) (*(new CTensorLabelsIsotropicRatio<double>(__VA_ARGS__)))
109
110 typedef CTensorLabelsIsotropicRatio<float> CTensorLabelsIsotropicRatioF;
111 typedef CTensorLabelsIsotropicRatio<double> CTensorLabelsIsotropicRatioD;
112 }
113}
114
115#endif
Validation Image Extractor class.
Definition ValidationImageExtractorDL.h:23
Definition AlgorithmAIBase.h:18
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition DefinitionsGUIView3D.h:3531
@ Clear
Clear all the figure objects.
Definition DefinitionsGUI.h:5083
@ Append
Load and append.
Definition DefinitionsGUI.h:58