16 #ifndef __IPSDKIMAGEPROCESSING_INPUTIMAGETILE2DCOLLSPLIT_H__ 17 #define __IPSDKIMAGEPROCESSING_INPUTIMAGETILE2DCOLLSPLIT_H__ 19 #include <IPSDKImageProcessing/DataSplit/TileColl/BaseImageTile2dCollSplit.h> 20 #include <IPSDKImage/Fragment/BorderPolicy/2d/Border2dPolicy.h> 21 #include <IPSDKImage/Fragment/Extractor/ImageTileExtractor.h> 22 #include <IPSDKImage/Fragment/Tile/Tile2d/InputImageTile2d.h> 30 template <
typename TProcessor,
typename TAttribute>
89 void init(
const boost::shared_ptr<InputImageType>& pImage,
92 const ipUInt64 nbMinEltsPerSplit = 1,
117 template <
typename TProcessor,
typename TAttribute>
118 inline const std::string&
121 return TAttribute::getObjectNameStr();
124 template <
typename TProcessor,
typename TAttribute>
125 inline const std::string&
128 return TAttribute::getToolTipStr();
131 template <
typename TProcessor,
typename TAttribute>
140 _border2dPolicy = border2dPolicy;
143 return this->initBase(pImage, tile2dCoordsColl, nbMinEltsPerSplit, nbMaxEltsPerSplit);
146 template <
typename TProcessor,
typename TAttribute>
152 "This attribute is not part of processor class");
154 return dynamic_cast<const TProcessor*
>(&processor) != 0;
157 template <
typename TProcessor,
typename TAttribute>
161 Tile2dPtr pCurTile(boost::make_shared<OutputTileType>());
165 *(this->getImagePtr()), _border2dPolicy, *pCurTile);
170 template <
typename TProcessor,
typename TAttribute>
176 TProcessor& tProcessor =
static_cast<TProcessor&
>(processor);
179 tProcessor.TProcessor::template set<TAttribute>(tile2dColl);
190 #endif // __IPSDKIMAGEPROCESSING_INPUTIMAGETILE2DCOLLSPLIT_H__ Class allowing to encapsulate a typed process result associated to a string description.
Definition: ProcessingResult.h:28
const std::string & getAttributeToolTip() const
retrieve attribute tooltip associated to split operation
Definition: InputImageTile2dCollSplit.h:126
TAttribute::TileType OutputTileType
output tile type associated to operation
Definition: InputImageTile2dCollSplit.h:51
Concrete class for input image tile 2d collection split operations for data dispatch using predefined...
Definition: InputImageTile2dCollSplit.h:31
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::shared_ptr< OutputTileType > Tile2dPtr
shared pointer to tile
Definition: BaseImageTile2dCollSplit.h:75
const std::string & getAttributeName() const
retrieve attribute name associated to split operation
Definition: InputImageTile2dCollSplit.h:119
BaseClassType::Tile2dColl Tile2dColl
tile 2d collection created by splitting operation
Definition: InputImageTile2dCollSplit.h:57
BaseClassType::Tile2dPtr Tile2dPtr
shared pointer to tile
Definition: InputImageTile2dCollSplit.h:54
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
void init(const boost::shared_ptr< InputImageType > &pImage, const image::Border2dPolicy &border2dPolicy, const Tile2dCoordsColl &tile2dCoordsColl, const ipUInt64 nbMinEltsPerSplit=1, const ipUInt64 nbMaxEltsPerSplit=NumericLimits< ipUInt64 >::max())
object initialization method
Definition: InputImageTile2dCollSplit.h:133
boost::shared_ptr< InputImageType > InputImagePtrType
shared pointer to input image type associated to operation
Definition: InputImageTile2dCollSplit.h:48
Tile2dPtr extractTile2d(const Tile2dCoords &curTile2dCoords)
method allowing to create a new tile given its coordinates
Definition: InputImageTile2dCollSplit.h:159
ipUInt64 _sizeY
tile y size
Definition: ImageTileCollSplitTypes.h:58
ipInt64 _startOffsetY
tile y start offset
Definition: ImageTileCollSplitTypes.h:52
Definition: NumericLimits.h:27
ipInt64 _startOffsetX
tile x start offset
Definition: ImageTileCollSplitTypes.h:49
image::Border2dPolicy _border2dPolicy
border policy used to generate tile parts outside from image
Definition: InputImageTile2dCollSplit.h:111
Base class for processor class.
Definition: BaseProcessor.h:43
structure allowing to check whether a given attribute exists in attribute collection information ...
Definition: AttributeCollInfoCheckMacros.h:131
static void extractInputTile2d(const ipUInt64 zPlanIdx, const ipUInt64 cPlanIdx, const ipUInt64 tPlanIdx, const ipInt64 tileStartOffsetX, const ipInt64 tileStartOffsetY, const ipUInt64 tileSizeX, const ipUInt64 tileSizeY, const BaseImage &inputImage, const Border2dPolicy &border2dPolicy, InputImageTile2d &imageTile2d)
extraction of an input image 2d tile from an image
std::vector< Tile2dPtr > Tile2dColl
tile 2d collection created by splitting operation
Definition: BaseImageTile2dCollSplit.h:78
std::vector< Tile2dCoords > Tile2dCoordsColl
collection of tile 2d coordinates
Definition: ImageTileCollSplitTypes.h:62
TAttribute AttributeType
attribute type associated to object
Definition: InputImageTile2dCollSplit.h:39
BaseImageTile2dCollSplit< typename TAttribute::TileType > BaseClassType
base class type
Definition: InputImageTile2dCollSplit.h:42
Class used to define policy for 2d strip borders management during a kernel algorithm processing...
Definition: Border2dPolicy.h:34
BoolResult processAttribute(processor::BaseProcessor &processor, const Tile2dColl &tile2dColl)
initialize processor attribute associate to split operation for a given tile 2d collection ...
Definition: InputImageTile2dCollSplit.h:172
OutputTileType::ImageType InputImageType
input image type associated to operation
Definition: BaseImageTile2dCollSplit.h:38
BaseClassType::InputImageType InputImageType
input image type associated to operation
Definition: InputImageTile2dCollSplit.h:45
ipUInt64 _sizeX
tile x size
Definition: ImageTileCollSplitTypes.h:55
TProcessor ProcessorType
processor type associated to object
Definition: InputImageTile2dCollSplit.h:36
Base class for image tile 2d collection split operations for data dispatch.
Definition: BaseImageTile2dCollSplit.h:33
structure used to store tile 2d coordinates
Definition: ImageTileCollSplitTypes.h:46
bool checkProcessorType(const processor::BaseProcessor &processor)
check processor type in derived class
Definition: InputImageTile2dCollSplit.h:148