15 #ifndef __IPSDKIMAGEPROCESSING_IMAGESTRIPSPLITOPERATORS_H__ 16 #define __IPSDKIMAGEPROCESSING_IMAGESTRIPSPLITOPERATORS_H__ 19 #include <IPSDKImageProcessing/DataSplit/Strip/XStrip2d/ImageXStrip2dSplit.h> 20 #include <IPSDKImageProcessing/DataSplit/Strip/XStrip2dWithKernel/ImageXStrip2dWithKernelSplit.h> 21 #include <IPSDKImageProcessing/DataSplit/Strip/YStrip2d/ImageYStrip2dSplit.h> 22 #include <IPSDKImageProcessing/DataSplit/Strip/YSubStrip2d/ImageYSubStrip2dSplit.h> 23 #include <IPSDKImageProcessing/DataSplit/Strip/YStrip2dWithKernel/ImageYStrip2dWithKernelSplit.h> 24 #include <IPSDKImageProcessing/DataSplit/Strip/YStrip3d/ImageYStrip3dSplit.h> 25 #include <IPSDKImageProcessing/DataSplit/Strip/YStripColor2d/ImageYStripColor2dSplit.h> 26 #include <IPSDKImageProcessing/DataSplit/Strip/YStripSeq2d/ImageYStripSeq2dSplit.h> 27 #include <IPSDKImageProcessing/DataSplit/Strip/ZStrip3d/ImageZStrip3dSplit.h> 28 #include <IPSDKImageProcessing/DataSplit/Strip/ZStrip3dWithKernel/ImageZStrip3dWithKernelSplit.h> 29 #include <IPSDKImageProcessing/DataSplit/Strip/ZStripColor3d/ImageZStripColor3dSplit.h> 30 #include <IPSDKImageProcessing/DataSplit/Strip/ZSubStrip3d/ImageZSubStrip3dSplit.h> 31 #include <IPSDKImageProcessing/DataSplit/Strip/PreviousYStrip2d/PreviousImageYStrip2dSplit.h> 32 #include <IPSDKImageProcessing/DataSplit/Strip/PreviousZStrip3d/PreviousImageZStrip3dSplit.h> 34 #include <boost/mpl/if.hpp> 35 #include <boost/mpl/bool.hpp> 36 #include <boost/make_shared.hpp> 46 template <
typename TProcessor,
typename TAttribute>
47 inline boost::shared_ptr<ImageYStrip2dSplit<TProcessor, image::BaseImage, TAttribute> >
52 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
58 template <
typename TProcessor,
typename TAttribute>
59 inline boost::shared_ptr<ImageYStrip2dSplit<TProcessor, const image::BaseImage, TAttribute> >
65 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
66 pDataSplit->
init(pImage, stripAllocationType, stripParsingDirection, stripParsingDirection);
70 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
71 inline typename boost::disable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
72 boost::shared_ptr<ImageYStrip2dSplit<TProcessor, const image::BaseImage, TAttribute> > >::type
73 yStrip2dSplit(
const boost::shared_ptr<TInputAttribute>& pInputAttribute,
77 return yStrip2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripAllocationType, stripParsingDirection);
79 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
80 inline typename boost::enable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
81 boost::shared_ptr<ImageYStrip2dSplit<TProcessor, image::BaseImage, TAttribute> > >::type
82 yStrip2dSplit(
const boost::shared_ptr<TInputAttribute>& pInputAttribute,
85 return yStrip2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripParsingDirection);
90 template <
typename TProcessor,
typename TAttribute>
91 inline boost::shared_ptr<ImageYStrip2dSplit<TProcessor, image::BaseImage, TAttribute> >
97 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
103 template <
typename TProcessor,
typename TAttribute>
104 inline boost::shared_ptr<ImageYStrip2dSplit<TProcessor, const image::BaseImage, TAttribute> >
111 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
112 pDataSplit->
init(pImage, stripAllocationType, stripParsingDirection, lineParsingDirection);
116 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
117 inline typename boost::disable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
118 boost::shared_ptr<ImageYStrip2dSplit<TProcessor, const image::BaseImage, TAttribute> > >::type
124 return yStrip2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripAllocationType, stripAllocationType, lineParsingDirection);
126 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
127 inline typename boost::enable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
128 boost::shared_ptr<ImageYStrip2dSplit<TProcessor, image::BaseImage, TAttribute> > >::type
139 template <
typename TProcessor,
typename TAttribute>
140 inline boost::shared_ptr<ImageYSubStrip2dSplit<TProcessor, image::BaseImage, TAttribute> >
146 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
151 template <
typename TProcessor,
typename TAttribute>
152 inline boost::shared_ptr<ImageYSubStrip2dSplit<TProcessor, const image::BaseImage, TAttribute> >
159 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
160 pDataSplit->
init(pImage, stripAllocationType, yOffset, nbRows);
165 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
166 inline typename boost::disable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
167 boost::shared_ptr<ImageYSubStrip2dSplit<TProcessor, const image::BaseImage, TAttribute> > >::type
173 return ySubStrip2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), yOffset, nbRows, stripAllocationType);
176 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
177 inline typename boost::enable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
178 boost::shared_ptr<ImageYSubStrip2dSplit<TProcessor, image::BaseImage, TAttribute> > >::type
183 return ySubStrip2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), yOffset, nbRows);
189 template <
typename TProcessor,
typename TAttribute>
190 inline boost::shared_ptr<ImageXStrip2dSplit<TProcessor, image::BaseImage, TAttribute> >
195 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
200 template <
typename TProcessor,
typename TAttribute>
201 inline boost::shared_ptr<ImageXStrip2dSplit<TProcessor, const image::BaseImage, TAttribute> >
207 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
208 pDataSplit->
init(pImage, stripAllocationType, stripParsingDirection);
212 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
213 inline typename boost::disable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
214 boost::shared_ptr<ImageXStrip2dSplit<TProcessor, const image::BaseImage, TAttribute> > >::type
219 return xStrip2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripAllocationType, stripParsingDirection);
221 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
222 inline typename boost::enable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
223 boost::shared_ptr<ImageXStrip2dSplit<TProcessor, image::BaseImage, TAttribute> > >::type
227 return xStrip2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripParsingDirection);
233 template <
typename TProcessor,
typename TAttribute>
234 inline boost::shared_ptr<ImageYStrip2dWithKernelSplit<TProcessor, const image::BaseImage, TAttribute> >
241 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
242 pDataSplit->
init(pImage, kernelXY, stripAllocationType, stripParsingDirection);
246 template <
typename TProcessor,
typename TAttribute>
247 inline boost::shared_ptr<ImageYStrip2dWithKernelSplit<TProcessor, const image::BaseImage, TAttribute> >
254 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
255 pDataSplit->
init(pImage, structuringElementXY, stripAllocationType, stripParsingDirection);
259 template <
typename TProcessor,
typename TAttribute>
260 inline boost::shared_ptr<ImageYStrip2dWithKernelSplit<TProcessor, const image::BaseImage, TAttribute> >
270 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
271 pDataSplit->
init(pImage, startingKernelSizeX, endingKernelSizeX, startingKernelSizeY, endingKernelSizeY, stripAllocationType, stripParsingDirection);
275 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
276 inline boost::shared_ptr<ImageYStrip2dWithKernelSplit<TProcessor,
277 typename boost::mpl::if_<boost::mpl::bool_<TInputAttribute::g_bOutput>,
287 return yStrip2dWithKernelSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), kernelXY, stripAllocationType, stripParsingDirection);
289 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
290 inline boost::shared_ptr<ImageYStrip2dWithKernelSplit<TProcessor,
291 typename boost::mpl::if_<boost::mpl::bool_<TInputAttribute::g_bOutput>,
301 return yStrip2dWithKernelSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), structuringElementXY, stripAllocationType, stripParsingDirection);
303 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
304 inline boost::shared_ptr<ImageYStrip2dWithKernelSplit<TProcessor,
305 typename boost::mpl::if_<boost::mpl::bool_<TInputAttribute::g_bOutput>,
318 return yStrip2dWithKernelSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), startingKernelSizeX, endingKernelSizeX, startingKernelSizeY, endingKernelSizeY, stripAllocationType, stripParsingDirection);
324 template <
typename TProcessor,
typename TAttribute>
325 inline boost::shared_ptr<ImageXStrip2dWithKernelSplit<TProcessor, const image::BaseImage, TAttribute> >
333 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
334 pDataSplit->
init(pImage, kernelXY, stripAllocationType, stripParsingDirection, nbMaxEltsPerSplit);
338 template <
typename TProcessor,
typename TAttribute>
339 inline boost::shared_ptr<ImageXStrip2dWithKernelSplit<TProcessor, const image::BaseImage, TAttribute> >
347 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
348 pDataSplit->
init(pImage, structuringElementXY, stripAllocationType, stripParsingDirection, nbMaxEltsPerSplit);
352 template <
typename TProcessor,
typename TAttribute>
353 inline boost::shared_ptr<ImageXStrip2dWithKernelSplit<TProcessor, const image::BaseImage, TAttribute> >
364 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
365 pDataSplit->
init(pImage, startingKernelSizeX, endingKernelSizeX, startingKernelSizeY, endingKernelSizeY, stripAllocationType, stripParsingDirection, nbMaxEltsPerSplit);
369 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
370 inline boost::shared_ptr<ImageXStrip2dWithKernelSplit<TProcessor,
371 typename boost::mpl::if_<boost::mpl::bool_<TInputAttribute::g_bOutput>,
382 return xStrip2dWithKernelSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), kernelXY, stripAllocationType, stripParsingDirection, nbMaxEltsPerSplit);
384 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
385 inline boost::shared_ptr<ImageXStrip2dWithKernelSplit<TProcessor,
386 typename boost::mpl::if_<boost::mpl::bool_<TInputAttribute::g_bOutput>,
397 return xStrip2dWithKernelSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), structuringElementXY, stripAllocationType, stripParsingDirection, nbMaxEltsPerSplit);
399 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
400 inline boost::shared_ptr<ImageXStrip2dWithKernelSplit<TProcessor,
401 typename boost::mpl::if_<boost::mpl::bool_<TInputAttribute::g_bOutput>,
415 return xStrip2dWithKernelSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), startingKernelSizeX, endingKernelSizeX, startingKernelSizeY, endingKernelSizeY, stripAllocationType, stripParsingDirection, nbMaxEltsPerSplit);
421 template <
typename TProcessor,
typename TAttribute>
422 inline boost::shared_ptr<ImageYStrip3dSplit<TProcessor, image::BaseImage, TAttribute> >
427 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
432 template <
typename TProcessor,
typename TAttribute>
433 inline boost::shared_ptr<ImageYStrip3dSplit<TProcessor, const image::BaseImage, TAttribute> >
439 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
440 pDataSplit->
init(pImage, stripAllocationType, stripParsingDirection);
444 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
445 inline typename boost::disable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
446 boost::shared_ptr<ImageYStrip3dSplit<TProcessor, const image::BaseImage, TAttribute> > >::type
451 return yStrip3dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripAllocationType, stripParsingDirection);
453 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
454 inline typename boost::enable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
455 boost::shared_ptr<ImageYStrip3dSplit<TProcessor, image::BaseImage, TAttribute> > >::type
459 return yStrip3dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripParsingDirection);
465 template <
typename TProcessor,
typename TAttribute>
466 inline boost::shared_ptr<ImageYStripColor2dSplit<TProcessor, image::BaseImage, TAttribute> >
471 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
476 template <
typename TProcessor,
typename TAttribute>
477 inline boost::shared_ptr<ImageYStripColor2dSplit<TProcessor, const image::BaseImage, TAttribute> >
483 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
484 pDataSplit->
init(pImage, stripAllocationType, stripParsingDirection,
false);
488 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
489 inline typename boost::disable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
490 boost::shared_ptr<ImageYStripColor2dSplit<TProcessor, const image::BaseImage, TAttribute> > >::type
495 return yStripColor2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripAllocationType, stripParsingDirection);
497 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
498 inline typename boost::enable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
499 boost::shared_ptr<ImageYStripColor2dSplit<TProcessor, image::BaseImage, TAttribute> > >::type
503 return yStripColor2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripParsingDirection);
510 template <
typename TProcessor,
typename TAttribute>
511 inline boost::shared_ptr<ImageYStripColor2dSplit<TProcessor, image::BaseImage, TAttribute> >
516 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
521 template <
typename TProcessor,
typename TAttribute>
522 inline boost::shared_ptr<ImageYStripColor2dSplit<TProcessor, const image::BaseImage, TAttribute> >
528 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
529 pDataSplit->
init(pImage, stripAllocationType, stripParsingDirection,
true);
533 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
534 inline typename boost::disable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
535 boost::shared_ptr<ImageYStripColor2dSplit<TProcessor, const image::BaseImage, TAttribute> > >::type
540 return yStripColorOrGrey2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripAllocationType, stripParsingDirection);
542 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
543 inline typename boost::enable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
544 boost::shared_ptr<ImageYStripColor2dSplit<TProcessor, image::BaseImage, TAttribute> > >::type
548 return yStripColorOrGrey2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripParsingDirection);
554 template <
typename TProcessor,
typename TAttribute>
555 inline boost::shared_ptr<ImageYStripSeq2dSplit<TProcessor, image::BaseImage, TAttribute> >
560 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
565 template <
typename TProcessor,
typename TAttribute>
566 inline boost::shared_ptr<ImageYStripSeq2dSplit<TProcessor, const image::BaseImage, TAttribute> >
572 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
573 pDataSplit->
init(pImage, stripAllocationType, stripParsingDirection);
577 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
578 inline typename boost::disable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
579 boost::shared_ptr<ImageYStripSeq2dSplit<TProcessor, const image::BaseImage, TAttribute> > >::type
584 return yStripSeq2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripAllocationType, stripParsingDirection);
586 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
587 inline typename boost::enable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
588 boost::shared_ptr<ImageYStripSeq2dSplit<TProcessor, image::BaseImage, TAttribute> > >::type
592 return yStripSeq2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripParsingDirection);
598 template <
typename TProcessor,
typename TAttribute>
599 inline boost::shared_ptr<ImageZStrip3dSplit<TProcessor, image::BaseImage, TAttribute> >
604 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
609 template <
typename TProcessor,
typename TAttribute>
610 inline boost::shared_ptr<ImageZStrip3dSplit<TProcessor, const image::BaseImage, TAttribute> >
616 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
617 pDataSplit->
init(pImage, stripAllocationType, stripParsingDirection);
621 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
622 inline typename boost::disable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
623 boost::shared_ptr<ImageZStrip3dSplit<TProcessor, const image::BaseImage, TAttribute> > >::type
628 return zStrip3dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripAllocationType, stripParsingDirection);
630 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
631 inline typename boost::enable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
632 boost::shared_ptr<ImageZStrip3dSplit<TProcessor, image::BaseImage, TAttribute> > >::type
636 return zStrip3dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripParsingDirection);
642 template <
typename TProcessor,
typename TAttribute>
643 inline boost::shared_ptr<ImageZSubStrip3dSplit<TProcessor, image::BaseImage, TAttribute> >
649 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
654 template <
typename TProcessor,
typename TAttribute>
655 inline boost::shared_ptr<ImageZSubStrip3dSplit<TProcessor, const image::BaseImage, TAttribute> >
662 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
663 pDataSplit->
init(pImage, stripAllocationType, zOffset, nbZPlans);
667 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
668 inline typename boost::disable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
669 boost::shared_ptr<ImageZSubStrip3dSplit<TProcessor, const image::BaseImage, TAttribute> > >::type
675 return zSubStrip3dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), zOffset, nbZPlans, stripAllocationType);
678 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
679 inline typename boost::enable_if<boost::mpl::bool_<TInputAttribute::g_bOutput>,
680 boost::shared_ptr<ImageZSubStrip3dSplit<TProcessor, image::BaseImage, TAttribute> > >::type
685 return zSubStrip3dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), zOffset, nbZPlans);
691 template <
typename TProcessor,
typename TAttribute>
692 inline boost::shared_ptr<ImageZStripColor3dSplit<TProcessor, image::BaseImage, TAttribute> >
698 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
699 pDataSplit->
init(pImage, stripAllocationType, stripParsingDirection,
false);
703 template <
typename TProcessor,
typename TAttribute>
704 inline boost::shared_ptr<ImageZStripColor3dSplit<TProcessor, const image::BaseImage, TAttribute> >
710 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
711 pDataSplit->
init(pImage, stripAllocationType, stripParsingDirection,
false);
715 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
716 inline boost::shared_ptr<ImageZStripColor3dSplit<TProcessor,
717 typename boost::mpl::if_<boost::mpl::bool_<TInputAttribute::g_bOutputAttribute>,
726 return zStripColor3dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripAllocationType, stripParsingDirection);
733 template <
typename TProcessor,
typename TAttribute>
734 inline boost::shared_ptr<ImageZStripColor3dSplit<TProcessor, image::BaseImage, TAttribute> >
740 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
741 pDataSplit->
init(pImage, stripAllocationType, stripParsingDirection,
true);
745 template <
typename TProcessor,
typename TAttribute>
746 inline boost::shared_ptr<ImageZStripColor3dSplit<TProcessor, const image::BaseImage, TAttribute> >
752 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
753 pDataSplit->
init(pImage, stripAllocationType, stripParsingDirection,
true);
757 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
758 inline boost::shared_ptr<ImageZStripColor3dSplit<TProcessor,
759 typename boost::mpl::if_<boost::mpl::bool_<TInputAttribute::g_bOutputAttribute>,
768 return zStripColorOrGrey3dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripAllocationType, stripParsingDirection);
774 template <
typename TProcessor,
typename TAttribute>
775 inline boost::shared_ptr<ImageZStrip3dWithKernelSplit<TProcessor, const image::BaseImage, TAttribute> >
782 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
783 pDataSplit->
init(pImage, kernelXYZ, stripAllocationType, stripParsingDirection);
787 template <
typename TProcessor,
typename TAttribute>
788 inline boost::shared_ptr<ImageZStrip3dWithKernelSplit<TProcessor, const image::BaseImage, TAttribute> >
795 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
796 pDataSplit->
init(pImage, structuringElementXYZ, stripAllocationType, stripParsingDirection);
800 template <
typename TProcessor,
typename TAttribute>
801 inline boost::shared_ptr<ImageZStrip3dWithKernelSplit<TProcessor, const image::BaseImage, TAttribute> >
813 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
814 pDataSplit->
init(pImage, startingKernelSizeX, endingKernelSizeX, startingKernelSizeY, endingKernelSizeY, startingKernelSizeZ, endingKernelSizeZ, stripAllocationType, stripParsingDirection);
818 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
819 inline boost::shared_ptr<ImageZStrip3dWithKernelSplit<TProcessor,
820 typename boost::mpl::if_<boost::mpl::bool_<TInputAttribute::g_bOutput>,
830 return zStrip3dWithKernelSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), kernelXYZ, stripAllocationType, stripParsingDirection);
832 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
833 inline boost::shared_ptr<ImageZStrip3dWithKernelSplit<TProcessor,
834 typename boost::mpl::if_<boost::mpl::bool_<TInputAttribute::g_bOutput>,
844 return zStrip3dWithKernelSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), structuringElementXYZ, stripAllocationType, stripParsingDirection);
846 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
847 inline boost::shared_ptr<ImageZStrip3dWithKernelSplit<TProcessor,
848 typename boost::mpl::if_<boost::mpl::bool_<TInputAttribute::g_bOutput>,
863 return zStrip3dWithKernelSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), startingKernelSizeX, endingKernelSizeX, startingKernelSizeY, endingKernelSizeY, startingKernelSizeZ, endingKernelSizeZ, stripAllocationType, stripParsingDirection);
869 template <
typename TProcessor,
typename TAttribute>
870 inline boost::shared_ptr<PreviousImageYStrip2dSplit<TProcessor, const image::BaseImage, TAttribute> >
875 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
876 pDataSplit->
init(pImage, stripParsingDirection);
880 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
881 inline boost::shared_ptr<PreviousImageYStrip2dSplit<TProcessor, const image::BaseImage, TAttribute> >
885 return previousYStrip2dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripParsingDirection);
891 template <
typename TProcessor,
typename TAttribute>
892 inline boost::shared_ptr<PreviousImageZStrip3dSplit<TProcessor, const image::BaseImage, TAttribute> >
897 boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
898 pDataSplit->
init(pImage, stripParsingDirection);
902 template <
typename TProcessor,
typename TAttribute,
typename TInputAttribute>
903 inline boost::shared_ptr<PreviousImageZStrip3dSplit<TProcessor, const image::BaseImage, TAttribute> >
907 return previousZStrip3dSplit<TProcessor, TAttribute>(pInputAttribute->getStorage(), stripParsingDirection);
917 #endif // __IPSDKIMAGEPROCESSING_IMAGESTRIPSPLITOPERATORS_H__ Concrete class for split operation generating color image y strips 2d.
Definition: ImageYStripColor2dSplit.h:27
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
void init(const boost::shared_ptr< InputDataType > &pImage, const image::eStripAllocationType &stripAllocationType, const image::eStripParsingDirection &stripParsingDirection)
initialization method for splitted objects
Definition: ImageZStrip3dSplit.h:99
void init(const boost::shared_ptr< InputDataType > &pImage, const image::eStripAllocationType &stripAllocationType, const image::eStripParsingDirection &stripParsingDirection, const bool bAllowGreyColorGeometry)
initialization method for splitted objects
Definition: ImageYStripColor2dSplit.h:100
Concrete class for split operation generating image y strips 2d.
Definition: ImageYStrip2dSplit.h:27
Class encapsulating a 2d kernel spanning along x and y axis.
Definition: KernelXY.h:34
boost::shared_ptr< PreviousImageYStrip2dSplit< TProcessor, const image::BaseImage, TAttribute > > previousYStrip2dSplit(const image::ImageConstPtr &pImage, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:871
void init(const boost::shared_ptr< InputDataType > &pImage, const image::eStripAllocationType &stripAllocationType, const image::eStripParsingDirection &stripParsingDirection, const bool bAllowGreyColorGeometry)
initialization method for splitted objects
Definition: ImageZStripColor3dSplit.h:100
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
boost::shared_ptr< ImageXStrip2dSplit< TProcessor, image::BaseImage, TAttribute > > xStrip2dSplit(const image::ImagePtr &pImage, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:191
void init(const boost::shared_ptr< InputDataType > &pImage, const image::eStripAllocationType &stripAllocationType, const image::eStripParsingDirection &stripParsingDirection)
initialization method for splitted objects
Definition: ImageXStrip2dSplit.h:99
boost::shared_ptr< BaseImage > ImagePtr
Definition: ImageTypes.h:139
void init(const boost::shared_ptr< InputDataType > &pImage, const image::eStripAllocationType &stripAllocationType, const image::eStripParsingDirection &stripParsingDirection)
initialization method for splitted objects
Definition: ImageYStripSeq2dSplit.h:100
boost::shared_ptr< ImageYStripSeq2dSplit< TProcessor, image::BaseImage, TAttribute > > yStripSeq2dSplit(const image::ImagePtr &pImage, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:556
void init(const boost::shared_ptr< InputDataType > &pImage, const image::eStripAllocationType &stripAllocationType, const image::eStripParsingDirection &stripParsingDirection)
initialization method for splitted objects
Definition: ImageYStrip2dSplit.h:105
boost::shared_ptr< ImageYSubStrip2dSplit< TProcessor, image::BaseImage, TAttribute > > ySubStrip2dSplit(const image::ImagePtr &pImage, ipUInt64 yOffset, ipUInt64 nbRows)
Definition: ImageStripSplitOperators.h:141
Definition: NumericLimits.h:27
void init(const boost::shared_ptr< InputDataType > &pImage, const image::eStripAllocationType &stripAllocationType, const image::eStripParsingDirection &stripParsingDirection)
initialization method for splitted objects
Definition: ImageYStrip3dSplit.h:99
Concrete class for split operation generating image z strips 3d.
Definition: ImageZStrip3dSplit.h:27
boost::shared_ptr< ImageXStrip2dWithKernelSplit< TProcessor, const image::BaseImage, TAttribute > > xStrip2dWithKernelSplit(const image::ImageConstPtr &pImage, const KernelXY &kernelXY, const image::eStripAllocationType &stripAllocationType=image::eStripAllocationType::eSAT_NoAllocation, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct, const ipUInt64 nbMaxEltsPerSplit=NumericLimits< ipUInt64 >::max())
Definition: ImageStripSplitOperators.h:326
eStripAllocationType
Enumerate describing image strip allocation policy.
Definition: ImageStripTypes.h:88
boost::shared_ptr< ImageZSubStrip3dSplit< TProcessor, image::BaseImage, TAttribute > > zSubStrip3dSplit(const image::ImagePtr &pImage, ipUInt64 zOffset, ipUInt64 nbZPlans)
Definition: ImageStripSplitOperators.h:644
Concrete class for split operation allowing to generate y strips 2d :
Definition: PreviousImageYStrip2dSplit.h:33
boost::shared_ptr< ImageZStrip3dSplit< TProcessor, image::BaseImage, TAttribute > > zStrip3dSplit(const image::ImagePtr &pImage, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:600
void init(const boost::shared_ptr< InputDataType > &pImage, const image::eStripAllocationType &stripAllocationType, ipUInt64 yOffset, ipUInt64 nbRows)
initialization method for splitted objects
Definition: ImageYSubStrip2dSplit.h:100
boost::shared_ptr< ImageZStripColor3dSplit< TProcessor, image::BaseImage, TAttribute > > zStripColorOrGrey3dSplit(const image::ImagePtr &pImage, const image::eStripAllocationType &stripAllocationType=image::eStripAllocationType::eSAT_NoAllocation, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:735
boost::shared_ptr< ImageYStrip2dSplit< TProcessor, image::BaseImage, TAttribute > > yStrip2dSplit(const image::ImagePtr &pImage, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:48
boost::shared_ptr< ImageZStripColor3dSplit< TProcessor, image::BaseImage, TAttribute > > zStripColor3dSplit(const image::ImagePtr &pImage, const image::eStripAllocationType &stripAllocationType=image::eStripAllocationType::eSAT_NoAllocation, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:693
direct strip parsing direction (default behavior)
Definition: ImageStripTypes.h:76
boost::shared_ptr< ImageYStripColor2dSplit< TProcessor, image::BaseImage, TAttribute > > yStripColorOrGrey2dSplit(const image::ImagePtr &pImage, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:512
Class encapsulating a 2d structuring element spanning along x and y axis.
Definition: StructuringElementXY.h:32
boost::shared_ptr< PreviousImageZStrip3dSplit< TProcessor, const image::BaseImage, TAttribute > > previousZStrip3dSplit(const image::ImageConstPtr &pImage, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:893
Concrete class for split operation generating image z strips 3d associated to a kernel.
Definition: ImageZStrip3dWithKernelSplit.h:28
void init(const boost::shared_ptr< InputDataType > &pImage, const image::eStripAllocationType &stripAllocationType, ipUInt64 zOffset, ipUInt64 nbZPlans)
initialization method for splitted objects
Definition: ImageZSubStrip3dSplit.h:100
Concrete class for split operation generating image y strips 2d associated to a kernel.
Definition: ImageYStrip2dWithKernelSplit.h:28
void init(const boost::shared_ptr< InputDataType > &pImage, const image::eStripParsingDirection &stripParsingDirection)
initialization method for splitted objects
Definition: PreviousImageYStrip2dSplit.h:104
boost::shared_ptr< const BaseImage > ImageConstPtr
Definition: ImageTypes.h:140
Concrete class for split operation generating sequence image y strips 2d.
Definition: ImageYStripSeq2dSplit.h:28
boost::shared_ptr< ImageYStripColor2dSplit< TProcessor, image::BaseImage, TAttribute > > yStripColor2dSplit(const image::ImagePtr &pImage, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:467
Predefined operators for dynamic data split used for data dispatch.
Predefined types for structuring element management.
Class encapsulating a 3d structuring element spanning along x, y and z axis.
Definition: StructuringElementXYZ.h:35
Concrete class for split operation allowing to generate z strips 3d :
Definition: PreviousImageZStrip3dSplit.h:33
eStripParsingDirection
Enumerate describing strip parsing direction.
Definition: ImageStripTypes.h:72
Concrete class for split operation generating color image z strips 3d.
Definition: ImageZStripColor3dSplit.h:27
Concrete class for split operation generating image y strips 2d from a subset of contiguous rows...
Definition: ImageYSubStrip2dSplit.h:27
boost::shared_ptr< ImageYStrip2dWithKernelSplit< TProcessor, const image::BaseImage, TAttribute > > yStrip2dWithKernelSplit(const image::ImageConstPtr &pImage, const KernelXY &kernelXY, const image::eStripAllocationType &stripAllocationType=image::eStripAllocationType::eSAT_NoAllocation, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:235
Base class for images data type.
Definition: BaseImage.h:43
boost::shared_ptr< ImageYStrip3dSplit< TProcessor, image::BaseImage, TAttribute > > yStrip3dSplit(const image::ImagePtr &pImage, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:423
Do not force any allocation (standard case)
Definition: ImageStripTypes.h:90
Concrete class for split operation generating image x strips 2d.
Definition: ImageXStrip2dSplit.h:27
void init(const boost::shared_ptr< InputDataType > &pImage, const KernelXY &kernelXY, const image::eStripAllocationType &stripAllocationType, const image::eStripParsingDirection &stripParsingDirection)
initialization method for splitted objects
Definition: ImageYStrip2dWithKernelSplit.h:142
Concrete class for split operation generating image z strips 3d from a subset of contiguous z-plans...
Definition: ImageZSubStrip3dSplit.h:27
void init(const boost::shared_ptr< InputDataType > &pImage, const KernelXY &kernelXY, const image::eStripAllocationType &stripAllocationType, const image::eStripParsingDirection &stripParsingDirection, const ipUInt64 nbMaxEltsPerSplit=NumericLimits< ipUInt64 >::max())
initialization method for splitted objects
Definition: ImageXStrip2dWithKernelSplit.h:145
void init(const boost::shared_ptr< InputDataType > &pImage, const image::eStripParsingDirection &stripParsingDirection)
initialization method for splitted objects
Definition: PreviousImageZStrip3dSplit.h:104
Concrete class for split operation generating image y strips 3d.
Definition: ImageYStrip3dSplit.h:27
boost::shared_ptr< ImageZStrip3dWithKernelSplit< TProcessor, const image::BaseImage, TAttribute > > zStrip3dWithKernelSplit(const image::ImageConstPtr &pImage, const KernelXYZ &kernelXYZ, const image::eStripAllocationType &stripAllocationType=image::eStripAllocationType::eSAT_NoAllocation, const image::eStripParsingDirection &stripParsingDirection=image::eStripParsingDirection::eSPD_Direct)
Definition: ImageStripSplitOperators.h:776
Class encapsulating a 3d kernel spanning along x, y and z axis.
Definition: KernelXYZ.h:34
Concrete class for split operation generating image x strips 2d associated to a kernel.
Definition: ImageXStrip2dWithKernelSplit.h:28
void init(const boost::shared_ptr< InputDataType > &pImage, const KernelXYZ &kernelXYZ, const image::eStripAllocationType &stripAllocationType, const image::eStripParsingDirection &stripParsingDirection)
initialization method for splitted objects
Definition: ImageZStrip3dWithKernelSplit.h:156