15 #ifndef __IPSDKIMAGEPROCESSING_SUBIMAGESPLITOPERATORS_H__ 16 #define __IPSDKIMAGEPROCESSING_SUBIMAGESPLITOPERATORS_H__ 19 #include <IPSDKImageProcessing/DataSplit/SubImage/SubImageSplit.h> 20 #include <IPSDKImage/Image/BaseImage.h> 22 #include <boost/make_shared.hpp> 23 #include <boost/utility/enable_if.hpp> 24 #include <boost/mpl/equal_to.hpp> 25 #include <boost/mpl/not_equal_to.hpp> 36 template <
typename TProcessor,
typename TAttribute>
37 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
41 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
50 template <
typename TProcessor,
typename TAttribute>
51 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
55 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
64 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
65 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
66 split2d(
const boost::shared_ptr<TInputAttribute>& pInputAttribute)
68 return split2d<TProcessor, TAttribute>(pInputAttribute->getStorage());
77 template <
typename TProcessor,
typename TAttribute>
78 boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
82 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
99 template <
typename TProcessor,
typename TAttribute>
100 boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
104 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
121 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
122 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
125 return split2dOrSingle<TProcessor, TAttribute>(pInputAttribute->getStorage());
132 template <
typename TProcessor,
typename TAttribute>
133 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
137 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
146 template <
typename TProcessor,
typename TAttribute>
147 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
151 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
160 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
161 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
162 splitColor2d(
const boost::shared_ptr<TInputAttribute>& pInputAttribute)
164 return splitColor2d<TProcessor, TAttribute>(pInputAttribute->getStorage());
173 template <
typename TProcessor,
typename TAttribute>
174 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
178 return splitColor2d<TProcessor, TAttribute>(pImage);
180 return split2d<TProcessor, TAttribute>(pImage);
182 template <
typename TProcessor,
typename TAttribute>
183 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
187 return splitColor2d<TProcessor, TAttribute>(pImage);
189 return split2d<TProcessor, TAttribute>(pImage);
191 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
192 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
195 return splitColorOrGrey2d<TProcessor, TAttribute>(pInputAttribute->getStorage());
202 template <
typename TProcessor,
typename TAttribute>
203 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
207 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
216 template <
typename TProcessor,
typename TAttribute>
217 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
221 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
230 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
231 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
234 return splitSequence2d<TProcessor, TAttribute>(pInputAttribute->getStorage());
241 template <
typename TProcessor,
typename TAttribute>
242 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
246 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
255 template <
typename TProcessor,
typename TAttribute>
256 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
260 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
269 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
270 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
271 split3d(
const boost::shared_ptr<TInputAttribute>& pInputAttribute)
273 return split3d<TProcessor, TAttribute>(pInputAttribute->getStorage());
282 template <
typename TProcessor,
typename TAttribute>
283 boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
287 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
303 template <
typename TProcessor,
typename TAttribute>
304 boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
308 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
324 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
325 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
328 return split3dOrSingle<TProcessor, TAttribute>(pInputAttribute->getStorage());
335 template <
typename TProcessor,
typename TAttribute>
336 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
340 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
349 template <
typename TProcessor,
typename TAttribute>
350 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
354 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
363 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
364 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
365 splitColor3d(
const boost::shared_ptr<TInputAttribute>& pInputAttribute)
367 return splitColor3d<TProcessor, TAttribute>(pInputAttribute->getStorage());
376 template <
typename TProcessor,
typename TAttribute>
377 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
381 return splitColor3d<TProcessor, TAttribute>(pImage);
383 return split3d<TProcessor, TAttribute>(pImage);
385 template <
typename TProcessor,
typename TAttribute>
386 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
390 return splitColor3d<TProcessor, TAttribute>(pImage);
392 return split3d<TProcessor, TAttribute>(pImage);
394 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
395 inline boost::shared_ptr<SubImageSplit<TProcessor, TAttribute> >
398 return splitColorOrGrey3d<TProcessor, TAttribute>(pInputAttribute->getStorage());
408 #endif // __IPSDKIMAGEPROCESSING_SUBIMAGESPLITOPERATORS_H__ Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
No color(c) parsing will be done for image split.
Definition: SubImageSplitTypes.h:76
Image will be parsed through its volume(z) component for split.
Definition: SubImageSplitTypes.h:60
boost::shared_ptr< SubImageSplit< TProcessor, TAttribute > > splitColorOrGrey3d(const image::ImagePtr &pImage)
create a splitted image operation used for data dispatch where all 3d color plans of image are consid...
Definition: SubImageSplitOperators.h:378
No volume(z) parsing will be done for image split.
Definition: SubImageSplitTypes.h:62
Image splitted in grey 3d sub images.
Definition: SubImageSplitTypes.h:36
2d geometry
Definition: GeometryComponentTypes.h:34
boost::shared_ptr< BaseImage > ImagePtr
Definition: ImageTypes.h:139
boost::shared_ptr< SubImageSplit< TProcessor, TAttribute > > splitColorOrGrey2d(const image::ImagePtr &pImage)
create a splitted image operation used for data dispatch where all 2d color plans of image are consid...
Definition: SubImageSplitOperators.h:175
boost::shared_ptr< SubImageSplit< TProcessor, TAttribute > > split3dOrSingle(const image::ImagePtr &pImage)
create a splitted image operation used for data dispatch where all 3d volumes of image are considered...
Definition: SubImageSplitOperators.h:284
boost::shared_ptr< SubImageSplit< TProcessor, TAttribute > > split2d(const image::ImagePtr &pImage)
create a splitted image operation used for data dispatch where all 2d plans of image are considered a...
Definition: SubImageSplitOperators.h:38
boost::shared_ptr< SubImageSplit< TProcessor, TAttribute > > split2dOrSingle(const image::ImagePtr &pImage)
create a splitted image operation used for data dispatch where all 2d plans of image are considered a...
Definition: SubImageSplitOperators.h:79
single element temporal geometry
Definition: GeometryComponentTypes.h:78
Image will be parsed through its color(c) component for split.
Definition: SubImageSplitTypes.h:74
Template class used to split image into sub images for data dispatch.
Definition: SubImageSplit.h:28
grey level geometry
Definition: GeometryComponentTypes.h:47
Image splitted in grey 2d sub images.
Definition: SubImageSplitTypes.h:34
No temporal(t) parsing will be done for image split.
Definition: SubImageSplitTypes.h:90
boost::shared_ptr< const BaseImage > ImageConstPtr
Definition: ImageTypes.h:140
Image splitted in color 3d sub images.
Definition: SubImageSplitTypes.h:40
void init(const eSubImageSplitType &subImageSplitType, const eVolumeParsingType &volumeParsingType, const eColorParsingType &colorParsingType, const eTemporalParsingType &temporalParsingType, const InputStorageType &pImage)
initialization method for splitted objects
Definition: SubImageSplit.h:113
boost::shared_ptr< SubImageSplit< TProcessor, TAttribute > > splitColor3d(const image::ImagePtr &pImage)
create a splitted image operation used for data dispatch where all 3d color images are considered as ...
Definition: SubImageSplitOperators.h:337
Image splitted in color 2d sub images.
Definition: SubImageSplitTypes.h:38
Image will be parsed through its temporal(t) component for split.
Definition: SubImageSplitTypes.h:88
Image splitted in sequence 2d sub images.
Definition: SubImageSplitTypes.h:42
boost::shared_ptr< SubImageSplit< TProcessor, TAttribute > > splitColor2d(const image::ImagePtr &pImage)
create a splitted image operation used for data dispatch where all 2d color plans of image are consid...
Definition: SubImageSplitOperators.h:134
Predefined operators for static data split used for data dispatch.
boost::shared_ptr< SubImageSplit< TProcessor, TAttribute > > splitSequence2d(const image::ImagePtr &pImage)
create a splitted image operation used for data dispatch where all 2d sequence plans of image are con...
Definition: SubImageSplitOperators.h:204
boost::shared_ptr< SubImageSplit< TProcessor, TAttribute > > split3d(const image::ImagePtr &pImage)
create a splitted image operation used for data dispatch where all 3d volumes of image are considered...
Definition: SubImageSplitOperators.h:243