8 #ifndef META_OCEAN_CV_SYNTHESIS_SYNTHESIS_PYRAMID_H
9 #define META_OCEAN_CV_SYNTHESIS_SYNTHESIS_PYRAMID_H
77 IT_PATCH_FULL_AREA_HEURISTIC_2
93 bool arrange(
const Frame& frame,
const Frame& mask,
Worker* worker =
nullptr,
const bool binomialFilterOnCoarsestLayers =
false,
const bool binomialFilterOnFineLayers =
false,
const Frame& filter =
Frame());
120 virtual bool applyInpainting(
const InitializationTechnique initializationTechnique,
RandomGenerator& randomGenerator,
const unsigned int weightFactor = 5u,
const unsigned int borderFactor = 25u,
const unsigned int maxSpatialCost = (
unsigned int)(-1),
const unsigned int optimizationIterations = 2u,
const unsigned int forced1ChannelLayers = 0u,
const unsigned int skippingLayers = 0u,
Worker* worker =
nullptr) = 0;
This class implements a frame pyramid.
Definition: FramePyramid.h:37
This class implements the base class for all synthesis pyramids.
Definition: SynthesisPyramid.h:33
FramePyramid synthesisMaskPyramid_
The (frame) pyramid of a mask defining the undesired object for individual frame resolutions.
Definition: SynthesisPyramid.h:166
virtual bool applyInpainting(const SynthesisQuality synthesisQuality, RandomGenerator &randomGenerator, const unsigned int weightFactor=5u, const unsigned int borderFactor=25u, const unsigned int maxSpatialCost=(unsigned int)(-1), Worker *worker=nullptr)
Applies the inpainting on an initialized synthesis pyramid satisfying a specific quality.
SynthesisQuality
Definition of individual synthesis qualities.
Definition: SynthesisPyramid.h:40
@ SQ_HIGH
High synthesis image quality, while the performance will be below normal.
Definition: SynthesisPyramid.h:46
@ SQ_VERY_HIGH
Very high synthesis image quality, while the performance will be slow.
Definition: SynthesisPyramid.h:48
@ SQ_LOW
Low synthesis image quality, but very fast.
Definition: SynthesisPyramid.h:42
@ SQ_MODERATE
Moderate synthesis image quality, with good relation between quality and performance.
Definition: SynthesisPyramid.h:44
virtual bool applyInpainting(const InitializationTechnique initializationTechnique, RandomGenerator &randomGenerator, const unsigned int weightFactor=5u, const unsigned int borderFactor=25u, const unsigned int maxSpatialCost=(unsigned int)(-1), const unsigned int optimizationIterations=2u, const unsigned int forced1ChannelLayers=0u, const unsigned int skippingLayers=0u, Worker *worker=nullptr)=0
Applies the inpainting on an initialized synthesis pyramid while a specific initialization technique ...
bool arrange(const Frame &frame, const Frame &mask, Worker *worker=nullptr, const bool binomialFilterOnCoarsestLayers=false, const bool binomialFilterOnFineLayers=false, const Frame &filter=Frame())
Arranges this synthesis pyramid object for a specified frame and corresponding inpainting mask.
PixelBoundingBoxes synthesisBoundingBoxes_
The bounding boxes enclosing the undesired mask on each individual layer, with pixel accuracy.
Definition: SynthesisPyramid.h:172
void determineBoundingBoxes(Worker *worker=nullptr)
Determines the mask bounding boxes for all pyramid layers.
FramePyramid synthesisFramePyramid_
The frame pyramid holding the frame to be inpainted for individual frame resolutions.
Definition: SynthesisPyramid.h:163
InitializationTechnique
Definition of individual initialization techniques.
Definition: SynthesisPyramid.h:55
@ IT_RANDOM
Random mapping initialization, for each mask pixel a random target pixel is assigned as initial mappi...
Definition: SynthesisPyramid.h:59
@ IT_CONTOUR_MAPPING
Contour mapping initialization, for each contour pixel a corresponding second contour pixel is determ...
Definition: SynthesisPyramid.h:65
@ IT_RANDOM_EROSION
Randomized erosion initialization, shrinking the inpainting mask by a randomized erosion filter in a ...
Definition: SynthesisPyramid.h:63
@ IT_APPEARANCE
Appearance mapping initialization, for each mask pixel the best matching target pixel is assigned as ...
Definition: SynthesisPyramid.h:57
@ IT_PATCH_FULL_AREA_2
Patch initialization, a priority patch-based inpainting approach using the entire source frame as vis...
Definition: SynthesisPyramid.h:69
@ IT_PATCH_FULL_AREA_1
Patch initialization, a priority patch-based inpainting approach using the entire source frame as vis...
Definition: SynthesisPyramid.h:67
@ IT_PATCH_SUB_REGION_2
Patch initialization, a priority patch-based inpainting approach using a surrounding sub-region as vi...
Definition: SynthesisPyramid.h:73
@ IT_EROSION
Erosion initialization, shrinking the inpainting mask by an erosion filter in a first step and applyi...
Definition: SynthesisPyramid.h:61
@ IT_PATCH_FULL_AREA_HEURISTIC_1
Patch initialization, a priority patch-based inpainting approach using the entire source frame as vis...
Definition: SynthesisPyramid.h:75
@ IT_PATCH_SUB_REGION_1
Patch initialization, a priority patch-based inpainting approach using a surrounding sub-region as vi...
Definition: SynthesisPyramid.h:71
PixelBoundingBoxes slowDetermineBoundingBoxes(const FramePyramid &maskPyramid, Worker *worker=nullptr)
Determines the mask bounding boxes for all pyramid layers.
SynthesisPyramid()
Protected constructor creating a new synthesis pyramid object.
FramePyramid synthesisFilterPyramid_
An optional frame pyramid of an additional filter information identifying valid and invalid source pi...
Definition: SynthesisPyramid.h:169
virtual bool createInpaintingResult(Frame &frame, Worker *worker=nullptr) const =0
Creates the final inpainting result for the finest pyramid layer.
bool synthesisHasBeenArranged_
True, if this synthesis pyramid object has been arranged.
Definition: SynthesisPyramid.h:176
virtual ~SynthesisPyramid()
Virtual Destructor.
Definition: SynthesisPyramid.h:143
This class implements Ocean's image class.
Definition: Frame.h:1792
This class implements a generator for random numbers.
Definition: RandomGenerator.h:42
This class implements a worker able to distribute function calls over different threads.
Definition: Worker.h:33
std::vector< PixelBoundingBox > PixelBoundingBoxes
Definition of a vector holding bounding box objects with only positive coordinate values.
Definition: PixelBoundingBox.h:42
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15