1 #ifndef CTL_ABSTRACTSUBSETGENERATOR_H 2 #define CTL_ABSTRACTSUBSETGENERATOR_H 4 #include "img/projectiondataview.h" 11 class AcquisitionSetup;
92 virtual void shuffleSubsets(std::vector<ProjectionDataView>& subsets)
const;
126 void fromVariant(const QVariant& variant) override;
132 uint _nbSubsets = 1u;
138 enum class SubsetArrangement { Evenly, LastIsLargest, LastIsSmallest };
147 #endif // CTL_ABSTRACTSUBSETGENERATOR_H ProjectionDataView _fullProjections
The projection data view this instance operates on.
Definition: abstractsubsetgenerator.h:94
virtual void shuffleSubsets(std::vector< ProjectionDataView > &subsets) const
Randomly permutes the order of the subsets in subsets.
Definition: abstractsubsetgenerator.cpp:47
static ProjectionDataView invalidView()
Creates a ProjectionDataView that does not reference any data.
Definition: projectiondataview.cpp:60
bool isSubsetPermutationEnabled() const
Returns true if subset permutation is enabled; false otherwise.
Definition: abstractsubsetgenerator.cpp:175
uint nbSubsets() const
Returns the number of subsets that are generated.
Definition: abstractsubsetgenerator.cpp:224
QVariant toVariant() const override
Definition: abstractsubsetgenerator.cpp:248
QVariant toVariant() const override
Definition: abstractsubsetgenerator.cpp:66
Holds a CTSystem together with the information about the system settings for all views from which pro...
Definition: acquisitionsetup.h:175
The ProjectionDataView class is a read-only wrapper for a reference to ProjectionData.
Definition: projectiondataview.h:51
bool _permuteSubsets
state variable if subset permutation is enabled
Definition: abstractsubsetgenerator.h:97
std::vector< uint > subsetSizes(uint nbViews, uint nbSubsets, SubsetArrangement arrangement)
Convenience helper function that calculates sizes for subsets given the total number of projections n...
Definition: abstractsubsetgenerator.cpp:295
Specify an interface for de-/serialization from/to QVariants.
Definition: serializationinterface.h:17
void fromVariant(const QVariant &variant) override
Definition: abstractsubsetgenerator.cpp:238
std::mt19937 _rng
random number generator (RNG) instance
Definition: abstractsubsetgenerator.h:95
virtual void setProjections(ProjectionDataView projections)
Sets the projections that this instance shall operate on to projections.
Definition: abstractsubsetgenerator.cpp:90
AbstractSubsetGenerator()
Constructs an AbstractSubsetGenerator.
Definition: abstractsubsetgenerator.cpp:33
void fromVariant(const QVariant &variant) override
Definition: abstractsubsetgenerator.cpp:53
virtual std::vector< std::vector< ProjectionDataView > > generateAllSubsets(uint nbIterations)
Convenience method to generate subsets for a certain number of iterations.
Definition: abstractsubsetgenerator.cpp:161
uint _rngSeed
value used to seed the RNG
Definition: abstractsubsetgenerator.h:96
virtual void setSetup(const AcquisitionSetup &)
Sets the AcquisitionSetup that belongs to the projection data to setup.
Definition: abstractsubsetgenerator.h:70
#define CTL_TYPE_ID(newIndex)
Definition: serializationinterface.h:189
void setRandomGeneratorSeed(uint seed=std::random_device{}())
Sets the seed of the RNG to seed and actually seeds the RNG.
Definition: abstractsubsetgenerator.cpp:194
unsigned int uint
Qt style alias for unsigned int.
Definition: modulelayout.h:6
The AbstractSubsetGenerator class is the abstract base class for subset generators.
Definition: abstractsubsetgenerator.h:57
const ProjectionDataView & projections() const
Returns the ProjectionDataView that has been set via setProjections().
Definition: abstractsubsetgenerator.cpp:180
virtual std::vector< ProjectionDataView > generateSubsetsImpl(uint iteration) const =0
Implementation of the generation algorithm for subsets in the iteration -th iteration.
void setSubsetPermutationEnabled(bool enabled)
Sets the use of subset permutation to enabled.
Definition: abstractsubsetgenerator.cpp:207
void setNbSubsets(uint nbSubsets)
Sets the number of subsets that will be generated to nbSubsets.
Definition: abstractsubsetgenerator.cpp:229
The AbstractFixedSizeSubsetGenerator class specializes the AbstractSubsetGenerator for generators tha...
Definition: abstractsubsetgenerator.h:117
void setData(ProjectionDataView projections, const AcquisitionSetup &setup)
Sets the projections to projections and the corresponding acquisition setup to setup.
Definition: abstractsubsetgenerator.cpp:120
std::vector< ProjectionDataView > generateSubsets(uint iteration) const
Generates the subsets for iteration iteration.
Definition: abstractsubsetgenerator.cpp:137
uint randomGeneratorSeed() const
Returns the seed that has been used to seed the RNG of this instance.
Definition: abstractsubsetgenerator.cpp:189