Ocean
InitializerRandomMappingI1.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Meta Platforms, Inc. and affiliates.
3  *
4  * This source code is licensed under the MIT license found in the
5  * LICENSE file in the root directory of this source tree.
6  */
7 
8 #ifndef META_OCEAN_CV_SYNTHESIS_INITIALIZER_RANDOM_MAPPING_I_1_H
9 #define META_OCEAN_CV_SYNTHESIS_INITIALIZER_RANDOM_MAPPING_I_1_H
10 
17 
18 namespace Ocean
19 {
20 
21 namespace CV
22 {
23 
24 namespace Synthesis
25 {
26 
27 /**
28  * This initializer creates a random initial mapping.<br>
29  * The initializer randomly selects target positions as long as they lie outside the synthesis mask.<br>
30  * No appearance constraints will be used to create the initial mapping.
31  * @ingroup cvsynthesis
32  */
33 class OCEAN_CV_SYNTHESIS_EXPORT InitializerRandomMappingI1 :
34  virtual public InitializerI,
35  virtual public InitializerRandomized,
36  virtual public InitializerSubset,
37  virtual public Initializer1
38 {
39  public:
40 
41  /**
42  * Creates a new initializer object.
43  * @param layer The layer for that the initial mapping has to be provided
44  * @param randomGenerator Random generator object used to created random numbers during the initialization process
45  */
46  inline InitializerRandomMappingI1(LayerI1& layer, RandomGenerator& randomGenerator);
47 
48  private:
49 
50  /**
51  * Initializes a subset of the entire mapping area.
52  * @see InitializerSubset::initializeSubset().
53  * @see initializeSubsetChannels().
54  */
55  void initializeSubset(const unsigned int firstColumn, const unsigned int numberColumns, const unsigned int firstRow, const unsigned int numberRows) const override;
56 };
57 
59  Initializer(layer),
60  InitializerI(layer),
61  InitializerRandomized(layer, randomGenerator),
62  InitializerSubset(layer),
63  Initializer1(layer)
64 {
65  // nothing to do here
66 }
67 
68 }
69 
70 }
71 
72 }
73 
74 #endif // META_OCEAN_CV_SYNTHESIS_INITIALIZER_RANDOM_MAPPING_I_1_H
This class is the base class for all initializers that are provided for a single frame only.
Definition: Initializer1.h:29
This class implements the base class for all synthesis initializers.
Definition: Initializer.h:34
This class implements the base class for all initializer objects that are applied for mappings with i...
Definition: InitializerI.h:30
This initializer creates a random initial mapping.
Definition: InitializerRandomMappingI1.h:38
InitializerRandomMappingI1(LayerI1 &layer, RandomGenerator &randomGenerator)
Creates a new initializer object.
Definition: InitializerRandomMappingI1.h:58
void initializeSubset(const unsigned int firstColumn, const unsigned int numberColumns, const unsigned int firstRow, const unsigned int numberRows) const override
Initializes a subset of the entire mapping area.
This class is the base class for all initializers that mainly initialize the synthesis mapping by a h...
Definition: InitializerRandomized.h:30
This class is the base class for all initializer objects that can separate the initialization process...
Definition: InitializerSubset.h:29
This class implements a single layer for pixel synthesis within one frame and pixel accuracy.
Definition: LayerI1.h:41
This class implements a generator for random numbers.
Definition: RandomGenerator.h:42
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15