IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ImageStripExtractor.h
1 // ImageStripExtractor.h:
3 // ----------------------
4 //
14 
15 #ifndef __IPSDKIMAGE_IMAGESTRIPEXTRACTOR_H__
16 #define __IPSDKIMAGE_IMAGESTRIPEXTRACTOR_H__
17 
23 #include <IPSDKUtil/Tools/ProcessingResult.h>
24 
25 namespace ipsdk {
26 namespace image {
27 
30 
32 {
45  template <typename FragmentType>
46  static void extractXStrip2d(const ipUInt64 zPlanIdx,
47  const ipUInt64 cPlanIdx,
48  const ipUInt64 tPlanIdx,
49  const ipUInt64 stripStartOffsetX,
50  const ipUInt64 stripSizeX,
51  const eStripAllocationType& stripAllocationType,
52  const eStripParsingDirection& stripParsingDirection,
53  typename FragmentType::ImageType& inputImage,
54  boost::shared_ptr<FragmentType>& pImageXStrip2d);
55 
69  template <typename FragmentType>
70  static void extractYStrip2d(const ipUInt64 zPlanIdx,
71  const ipUInt64 cPlanIdx,
72  const ipUInt64 tPlanIdx,
73  const ipUInt64 stripStartOffsetY,
74  const ipUInt64 stripSizeY,
75  const eStripAllocationType& stripAllocationType,
76  const eStripParsingDirection& stripParsingDirection,
77  typename FragmentType::ImageType& inputImage,
78  boost::shared_ptr<FragmentType>& pImageYStrip2d);
79  template <typename FragmentType>
80  static void extractYStrip2d(const ipUInt64 zPlanIdx,
81  const ipUInt64 cPlanIdx,
82  const ipUInt64 tPlanIdx,
83  const ipUInt64 stripStartOffsetY,
84  const ipUInt64 stripSizeY,
85  const eStripAllocationType& stripAllocationType,
86  const eStripParsingDirection& stripParsingDirection,
87  const typename FragmentType::InputStorageType& pPlanStorage,
88  const DataIdentifierConstPtr& pImageIdentifier,
89  const DataItemMapConstPtr& pImageHeader,
90  boost::shared_ptr<FragmentType>& pImageYStrip2d);
92 
143  template <typename FragmentType>
144  static void extractXStrip2dWithKernel(const ipUInt64 zPlanIdx,
145  const ipUInt64 cPlanIdx,
146  const ipUInt64 tPlanIdx,
147  const ipUInt64 startingKernelSizeX,
148  const ipUInt64 endingKernelSizeX,
149  const ipUInt64 startingKernelSizeY,
150  const ipUInt64 endingKernelSizeY,
151  const typename FragmentType::BorderStorageType& pPreviousImageXStrip2d,
152  const typename FragmentType::BorderStorageType& pNextImageXStrip2d,
153  const ipUInt64 mainStripStartOffsetX,
154  const ipUInt64 mainStripSizeX,
155  const eStripAllocationType& stripAllocationType,
156  const eStripParsingDirection& stripParsingDirection,
157  typename FragmentType::ImageType& inputImage,
158  boost::shared_ptr<FragmentType>& pImageXStrip2dWithKernel);
159 
210  template <typename FragmentType>
211  static void extractYStrip2dWithKernel(const ipUInt64 zPlanIdx,
212  const ipUInt64 cPlanIdx,
213  const ipUInt64 tPlanIdx,
214  const ipUInt64 startingKernelSizeX,
215  const ipUInt64 endingKernelSizeX,
216  const ipUInt64 startingKernelSizeY,
217  const ipUInt64 endingKernelSizeY,
218  const typename FragmentType::BorderStorageType& pPreviousImageYStrip2d,
219  const typename FragmentType::BorderStorageType& pNextImageYStrip2d,
220  const ipUInt64 mainStripStartOffsetY,
221  const ipUInt64 mainStripSizeY,
222  const eStripAllocationType& stripAllocationType,
223  const eStripParsingDirection& stripParsingDirection,
224  typename FragmentType::ImageType& inputImage,
225  boost::shared_ptr<FragmentType>& pImageYStrip2dWithKernel);
226 
227 
237  template <typename FragmentType>
238  static void extractYStrip3d(const ipUInt64 cPlanIdx,
239  const ipUInt64 tPlanIdx,
240  const ipUInt64 stripStartOffsetY,
241  const ipUInt64 stripSizeY,
242  const eStripAllocationType& stripAllocationType,
243  const eStripParsingDirection& stripParsingDirection,
244  typename FragmentType::ImageType& inputImage,
245  boost::shared_ptr<FragmentType>& pImageYStrip3d);
246 
258  template <typename FragmentType>
259  static void extractYStripColor2d(const ipUInt64 zPlanIdx,
260  const ipUInt64 tPlanIdx,
261  const ipUInt64 stripStartOffsetY,
262  const ipUInt64 stripSizeY,
263  const eStripAllocationType& stripAllocationType,
264  const eStripParsingDirection& stripParsingDirection,
265  const bool bAllowGreyColorGeometry,
266  typename FragmentType::ImageType& inputImage,
267  boost::shared_ptr<FragmentType>& pImageYStripColor2d);
268 
280  template <typename FragmentType>
281  static void extractYStripSeq2d(const ipUInt64 zPlanIdx,
282  const ipUInt64 cPlanIdx,
283  const ipUInt64 stripStartOffsetY,
284  const ipUInt64 stripSizeY,
285  const eStripAllocationType& stripAllocationType,
286  const eStripParsingDirection& stripParsingDirection,
287  typename FragmentType::ImageType& inputImage,
288  boost::shared_ptr<FragmentType>& pImageYStripSeq2d);
289 
300  template <typename FragmentType>
301  static void extractZStrip3d(const ipUInt64 cPlanIdx,
302  const ipUInt64 tPlanIdx,
303  const ipUInt64 stripStartOffsetZ,
304  const ipUInt64 stripSizeZ,
305  const eStripAllocationType& stripAllocationType,
306  const eStripParsingDirection& stripParsingDirection,
307  typename FragmentType::ImageType& inputImage,
308  boost::shared_ptr<FragmentType>& pImageZStrip3d);
309 
310  template <typename FragmentType>
311  static void extractZStrip3d(const ipUInt64 cPlanIdx,
312  const ipUInt64 tPlanIdx,
313  const ipUInt64 stripStartOffsetZ,
314  const ipUInt64 stripSizeZ,
315  const ipUInt64 imageSizeZ,
316  const eStripAllocationType& stripAllocationType,
317  const eStripParsingDirection& stripParsingDirection,
318  const typename FragmentType::InputStorageType& pPlansCollStorage,
319  const DataIdentifierConstPtr& pImageIdentifier,
320  const DataItemMapConstPtr& pImageHeader,
321  boost::shared_ptr<FragmentType>& pImageZStrip3d);
323 
380  template <typename FragmentType>
381  static void extractZStrip3dWithKernel(const ipUInt64 cPlanIdx,
382  const ipUInt64 tPlanIdx,
383  const ipUInt64 startingKernelSizeX,
384  const ipUInt64 endingKernelSizeX,
385  const ipUInt64 startingKernelSizeY,
386  const ipUInt64 endingKernelSizeY,
387  const ipUInt64 startingKernelSizeZ,
388  const ipUInt64 endingKernelSizeZ,
389  const typename FragmentType::BorderStorageType& pPreviousImageZStrip3d,
390  const typename FragmentType::BorderStorageType& pNextImageZStrip3d,
391  const ipUInt64 mainStripStartOffsetZ,
392  const ipUInt64 mainStripSizeZ,
393  const eStripAllocationType& stripAllocationType,
394  const eStripParsingDirection& stripParsingDirection,
395  typename FragmentType::ImageType& inputImage,
396  boost::shared_ptr<FragmentType>& pImageZStrip3dWithKernel);
397 
408  template <typename FragmentType>
409  static void extractZStripColor3d(const ipUInt64 tPlanIdx,
410  const ipUInt64 stripStartOffsetZ,
411  const ipUInt64 stripSizeZ,
412  const eStripAllocationType& stripAllocationType,
413  const eStripParsingDirection& stripParsingDirection,
414  const bool bAllowGreyColorGeometry,
415  typename FragmentType::ImageType& inputImage,
416  boost::shared_ptr<FragmentType>& pImageZStripColor3d);
417 };
418 
421 
422 } // end of namespace image
423 } // end of namespace ipsdk
424 
425 #endif // __IPSDKIMAGE_IMAGESTRIPEXTRACTOR_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
eStripAllocationType
Enumerate describing image strip allocation policy.
Definition: ImageStripTypes.h:88
Predefined types for data identifier management.
Predefined types for image strips management.
Definition of import/export macro for library.
Structure used to extract image strips from an image.
Definition: ImageStripExtractor.h:31
boost::shared_ptr< const DataItemMap > DataItemMapConstPtr
shared pointer to const DataItemMap
Definition: DataItemTypes.h:170
#define IPSDKIMAGE_API
Import/Export macro for library IPSDKImage.
Definition: IPSDKImageExports.h:27
eStripParsingDirection
Enumerate describing strip parsing direction.
Definition: ImageStripTypes.h:72
boost::shared_ptr< const DataIdentifier > DataIdentifierConstPtr
shared pointer to const data identifier
Definition: DataIdentifierTypes.h:31
Predefined types for data items.
Predefined type for image management.