IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ImageInitializerOperators.h
Go to the documentation of this file.
1 // ImageInitializerOperators.h:
3 // ----------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_IMAGEINITIALIZEROPERATORS_H__
16 #define __IPSDKIMAGEPROCESSING_IMAGEINITIALIZEROPERATORS_H__
17 
20 #include <IPSDKImageProcessing/Attribute/IPEnum/BaseIPEnumAttribute.h>
21 #include <IPSDKImageProcessing/OutputInitializer/Image/DuplicateImageInitializer.h>
22 #include <IPSDKImageProcessing/OutputInitializer/Image/TypedDuplicateImageInitializer.h>
23 #include <IPSDKImageProcessing/OutputInitializer/Image/CustomInitializer/CustomImageInitializer.h>
24 #include <IPSDKImageProcessing/OutputInitializer/Image/PromoteUnaryImageInitializer.h>
25 #include <IPSDKImageProcessing/OutputInitializer/Image/PromoteBinaryImageInitializer.h>
29 #include <boost/make_shared.hpp>
30 
31 namespace ipsdk {
32 namespace imaproc {
33 
36 
40 template <typename InputAttributeType, typename OutputAttributeType>
42 duplicateInOut(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
43  const boost::weak_ptr<InputAttributeType>& pInputAttribute,
45 {
46  // retrieve base image attribute types
47  typedef typename InputAttributeType::BaseImageAttributeType BaseInputAttributeType;
48  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
49 
50  // retrieve duplicator type
52 
53  // create duplicator
54  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
55  pInitializer->init(pOutputAttribute, pInputAttribute, storagePolicy);
56 
57  return pInitializer;
58 }
59 template <typename InputAttributeType, typename OutputAttributeType>
61 duplicateInOut(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
62  const boost::shared_ptr<InputAttributeType>& pInputAttribute,
64 {
65  return duplicateInOut(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
66  boost::weak_ptr<InputAttributeType>(pInputAttribute),
67  storagePolicy);
68 }
70 
75 template <typename InputAttributeType, typename OutputAttributeType>
77 duplicateInOut(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
78  const boost::weak_ptr<InputAttributeType>& pInputAttribute,
79  const image::eImageBufferType& imageBufferType,
81 {
82  // retrieve base image attribute types
83  typedef typename InputAttributeType::BaseImageAttributeType BaseInputAttributeType;
84  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
85 
86  // retrieve duplicator type
88 
89  // create duplicator
90  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
91  pInitializer->init(pOutputAttribute, pInputAttribute, imageBufferType, distributionPolicy);
92 
93  return pInitializer;
94 }
95 template <typename InputAttributeType, typename OutputAttributeType>
97 duplicateInOut(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
98  const boost::shared_ptr<InputAttributeType>& pInputAttribute,
99  const image::eImageBufferType& imageBufferType,
101 {
102  return duplicateInOut(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
103  boost::weak_ptr<InputAttributeType>(pInputAttribute),
104  imageBufferType,
105  distributionPolicy);
106 }
108 
113 template <typename InputAttributeType, typename OutputAttributeType>
115 duplicateInOut(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
116  const boost::weak_ptr<InputAttributeType>& pInputAttribute,
117  const eImageInitializerStoragePolicy& storagePolicy,
118  const image::eImageBufferType& imageBufferType)
119 {
120  // retrieve base image attribute types
121  typedef typename InputAttributeType::BaseImageAttributeType BaseInputAttributeType;
122  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
123 
124  // retrieve duplicator type
126 
127  // create duplicator
128  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
129  pInitializer->init(pOutputAttribute, pInputAttribute, imageBufferType, storagePolicy);
130 
131  return pInitializer;
132 }
133 template <typename InputAttributeType, typename OutputAttributeType>
135 duplicateInOut(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
136  const boost::shared_ptr<InputAttributeType>& pInputAttribute,
137  const eImageInitializerStoragePolicy& storagePolicy,
138  const image::eImageBufferType& imageBufferType)
139 {
140  return duplicateInOut(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
141  boost::weak_ptr<InputAttributeType>(pInputAttribute),
142  storagePolicy,
143  imageBufferType);
144 }
145 template <typename InputAttributeType, typename OutputAttributeType>
147 duplicateInOut(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
148  const boost::weak_ptr<InputAttributeType>& pInputAttribute,
149  const IBTAttributeConstWeakPtr& pIBTAttribute,
151 {
152  // retrieve base image attribute types
153  typedef typename InputAttributeType::BaseImageAttributeType BaseInputAttributeType;
154  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
155 
156  // retrieve duplicator type
158 
159  // create duplicator
160  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
161  pInitializer->init(pOutputAttribute, pInputAttribute, pIBTAttribute, storagePolicy);
162 
163  return pInitializer;
164 }
165 template <typename InputAttributeType, typename OutputAttributeType>
167 duplicateInOut(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
168  const boost::shared_ptr<InputAttributeType>& pInputAttribute,
169  const IBTAttributeConstPtr& pIBTAttribute,
171 {
172  return duplicateInOut(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
173  boost::weak_ptr<InputAttributeType>(pInputAttribute),
174  pIBTAttribute,
175  storagePolicy);
176 }
178 
183 template <typename OutputAttributeType>
185 customOutput(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
186  const CustomImageInfoPtr& pCustomImageInfo)
187 {
188  // retrieve base image attribute types
189  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
190 
191  // retrieve duplicator type
192  typedef CustomImageInitializer<BaseOutputAttributeType> OutputInitializerType;
193 
194  // create duplicator
195  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
196  pInitializer->init(pOutputAttribute, pCustomImageInfo, eImageInitializerStoragePolicy::eIISP_Inherit);
197 
198  return pInitializer;
199 }
200 template <typename OutputAttributeType>
202 customOutput(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
203  const CustomImageInfoPtr& pCustomImageInfo)
204 {
205  return customOutput(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
206  pCustomImageInfo);
207 }
208 
209 template <typename OutputAttributeType>
211 customOutput(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
212  const CustomImageInfoPtr& pCustomImageInfo,
213  const eImageInitializerStoragePolicy& storagePolicy)
214 {
215  // retrieve base image attribute types
216  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
217 
218  // retrieve duplicator type
219  typedef CustomImageInitializer<BaseOutputAttributeType> OutputInitializerType;
220 
221  // create duplicator
222  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
223  pInitializer->init(pOutputAttribute, pCustomImageInfo, storagePolicy);
224 
225  return pInitializer;
226 }
227 template <typename OutputAttributeType>
229 customOutput(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
230  const CustomImageInfoPtr& pCustomImageInfo,
231  const eImageInitializerStoragePolicy& storagePolicy)
232 {
233  return customOutput(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
234  pCustomImageInfo,
235  storagePolicy);
236 }
238 
243 template <typename InputAttributeType, typename OutputAttributeType>
245 duplicateGreyInOut(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
246  const boost::weak_ptr<InputAttributeType>& pInputAttribute,
248 {
249  // retrieve base image attribute types
250  typedef typename InputAttributeType::BaseImageAttributeType BaseInputAttributeType;
251  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
252 
253  // retrieve duplicator type
255 
256  // create duplicator
257  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
258  pInitializer->init(pOutputAttribute, pInputAttribute,
260  storagePolicy,
261  boost::optional<ipUInt64>(), boost::optional<ipUInt64>(),
265 
266  return pInitializer;
267 }
268 template <typename InputAttributeType, typename OutputAttributeType>
270 duplicateGreyInOut(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
271  const boost::shared_ptr<InputAttributeType>& pInputAttribute,
273 {
274  return duplicateGreyInOut(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
275  boost::weak_ptr<InputAttributeType>(pInputAttribute),
276  storagePolicy);
277 }
278 
279 template <typename InputAttributeType, typename OutputAttributeType>
281 duplicateGreyInOut(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
282  const boost::weak_ptr<InputAttributeType>& pInputAttribute,
283  const image::eImageBufferType& imageBufferType,
285 {
286  // retrieve base image attribute types
287  typedef typename InputAttributeType::BaseImageAttributeType BaseInputAttributeType;
288  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
289 
290  // retrieve duplicator type
292 
293  // create duplicator
294  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
295  pInitializer->init(pOutputAttribute, pInputAttribute,
296  imageBufferType,
297  storagePolicy,
298  boost::optional<ipUInt64>(), boost::optional<ipUInt64>(),
302 
303  return pInitializer;
304 }
305 template <typename InputAttributeType, typename OutputAttributeType>
307 duplicateGreyInOut(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
308  const boost::shared_ptr<InputAttributeType>& pInputAttribute,
309  const image::eImageBufferType& imageBufferType,
311 {
312  return duplicateGreyInOut(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
313  boost::weak_ptr<InputAttributeType>(pInputAttribute),
314  imageBufferType,
315  storagePolicy);
316 }
318 
323 template <typename InputAttributeType, typename OutputAttributeType>
325 duplicateSingleInOut(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
326  const boost::weak_ptr<InputAttributeType>& pInputAttribute,
328 {
329  // retrieve base image attribute types
330  typedef typename InputAttributeType::BaseImageAttributeType BaseInputAttributeType;
331  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
332 
333  // retrieve duplicator type
335 
336  // create duplicator
337  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
338  pInitializer->init(pOutputAttribute, pInputAttribute,
340  storagePolicy,
341  boost::optional<ipUInt64>(), boost::optional<ipUInt64>(),
345 
346  return pInitializer;
347 }
348 template <typename InputAttributeType, typename OutputAttributeType>
350 duplicateSingleInOut(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
351  const boost::shared_ptr<InputAttributeType>& pInputAttribute,
353 {
354  return duplicateSingleInOut(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
355  boost::weak_ptr<InputAttributeType>(pInputAttribute),
356  storagePolicy);
357 }
358 
363 template <typename InputAttributeType, typename OutputAttributeType>
365 duplicate2dInOut(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
366  const boost::weak_ptr<InputAttributeType>& pInputAttribute,
368 {
369  // retrieve base image attribute types
370  typedef typename InputAttributeType::BaseImageAttributeType BaseInputAttributeType;
371  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
372 
373  // retrieve duplicator type
375 
376  // create duplicator
377  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
378  pInitializer->init(pOutputAttribute, pInputAttribute,
380  storagePolicy,
381  boost::optional<ipUInt64>(), boost::optional<ipUInt64>(),
385 
386  return pInitializer;
387 }
388 template <typename InputAttributeType, typename OutputAttributeType>
390 duplicate2dInOut(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
391  const boost::shared_ptr<InputAttributeType>& pInputAttribute,
393 {
394  return duplicate2dInOut(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
395  boost::weak_ptr<InputAttributeType>(pInputAttribute),
396  storagePolicy);
397 }
399 
405 template <typename InputAttributeType, typename OutputAttributeType>
407 duplicateRgbInOut(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
408  const boost::weak_ptr<InputAttributeType>& pInputAttribute,
410 {
411  // retrieve base image attribute types
412  typedef typename InputAttributeType::BaseImageAttributeType BaseInputAttributeType;
413  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
414 
415  // retrieve duplicator type
417 
418  // create duplicator
419  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
420  pInitializer->init(pOutputAttribute, pInputAttribute,
422  storagePolicy,
423  boost::optional<ipUInt64>(), boost::optional<ipUInt64>(),
427 
428  return pInitializer;
429 }
430 template <typename InputAttributeType, typename OutputAttributeType>
432 duplicateRgbInOut(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
433  const boost::shared_ptr<InputAttributeType>& pInputAttribute,
435 {
436  return duplicateRgbInOut(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
437  boost::weak_ptr<InputAttributeType>(pInputAttribute),
438  storagePolicy);
439 }
441 
446 template <typename InputAttributeType, typename OutputAttributeType>
448 duplicateRgbInOut(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
449  const boost::weak_ptr<InputAttributeType>& pInputAttribute,
450  const image::eImageBufferType& imageBufferType,
452 {
453  // retrieve base image attribute types
454  typedef typename InputAttributeType::BaseImageAttributeType BaseInputAttributeType;
455  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
456 
457  // retrieve duplicator type
459 
460  // create duplicator
461  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
462  pInitializer->init(pOutputAttribute, pInputAttribute,
463  imageBufferType,
464  storagePolicy,
465  boost::optional<ipUInt64>(), boost::optional<ipUInt64>(),
469 
470  return pInitializer;
471 }
472 template <typename InputAttributeType, typename OutputAttributeType>
474 duplicateRgbInOut(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
475  const boost::shared_ptr<InputAttributeType>& pInputAttribute,
476  const image::eImageBufferType& imageBufferType,
478 {
479  return duplicateRgbInOut(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
480  boost::weak_ptr<InputAttributeType>(pInputAttribute),
481  imageBufferType,
482  storagePolicy);
483 }
485 
490 template <typename InputAttributeType, typename OutputAttributeType>
492 promoteUnary(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
493  const boost::weak_ptr<InputAttributeType>& pInputAttribute,
494  const ePromoteUnaryType& promoteUnaryType)
495 {
496  // retrieve base image attribute types
497  typedef typename InputAttributeType::BaseImageAttributeType BaseInputAttributeType;
498  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
499 
500  // retrieve duplicator type
502 
503  // create duplicator
504  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
505  pInitializer->init(pOutputAttribute, pInputAttribute, promoteUnaryType);
506 
507  return pInitializer;
508 }
509 template <typename InputAttributeType, typename OutputAttributeType>
511 promoteUnary(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
512  const boost::shared_ptr<InputAttributeType>& pInputAttribute,
513  const ePromoteUnaryType& promoteUnaryType)
514 {
515  return promoteUnary(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
516  boost::weak_ptr<InputAttributeType>(pInputAttribute),
517  promoteUnaryType);
518 }
520 
526 template <typename InputAttributeType1, typename InputAttributeType2, typename OutputAttributeType>
528 promoteBinary(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
529  const boost::weak_ptr<InputAttributeType1>& pInputAttribute1,
530  const boost::weak_ptr<InputAttributeType2>& pInputAttribute2,
531  const ePromoteBinaryType& promoteBinaryType,
532  const bool bAllowReInterpretation = false)
533 {
534  // retrieve base image attribute types
535  typedef typename InputAttributeType1::BaseImageAttributeType BaseInputAttributeType1;
536  typedef typename InputAttributeType2::BaseImageAttributeType BaseInputAttributeType2;
537  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
538 
539  // retrieve duplicator type
541 
542  // create duplicator
543  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
544  pInitializer->init(pOutputAttribute, pInputAttribute1, pInputAttribute2, promoteBinaryType, bAllowReInterpretation);
545 
546  return pInitializer;
547 }
548 template <typename InputAttributeType1, typename InputAttributeType2, typename OutputAttributeType>
550 promoteBinary(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
551  const boost::shared_ptr<InputAttributeType1>& pInputAttribute1,
552  const boost::shared_ptr<InputAttributeType2>& pInputAttribute2,
553  const ePromoteBinaryType& promoteBinaryType,
554  const bool bAllowReInterpretation = false)
555 {
556  return promoteBinary(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
557  boost::weak_ptr<InputAttributeType1>(pInputAttribute1),
558  boost::weak_ptr<InputAttributeType2>(pInputAttribute2),
559  promoteBinaryType,
560  bAllowReInterpretation);
561 }
563 
570 template <typename InputAttributeType1, typename InputAttributeType2, typename OutputAttributeType>
572 promoteReInterpretable(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
573  const boost::weak_ptr<InputAttributeType1>& pInputAttribute1,
574  const boost::weak_ptr<InputAttributeType2>& pInputAttribute2,
575  const ePromoteBinaryType& promoteBinaryType)
576 {
577  // retrieve base image attribute types
578  typedef typename InputAttributeType1::BaseImageAttributeType BaseInputAttributeType1;
579  typedef typename InputAttributeType2::BaseImageAttributeType BaseInputAttributeType2;
580  typedef typename OutputAttributeType::BaseImageAttributeType BaseOutputAttributeType;
581 
582  // retrieve duplicator type
584 
585  // create duplicator
586  boost::shared_ptr<OutputInitializerType> pInitializer = boost::make_shared<OutputInitializerType>();
587  pInitializer->init(pOutputAttribute, pInputAttribute1, pInputAttribute2, promoteBinaryType, true);
588 
589  return pInitializer;
590 }
591 template <typename InputAttributeType1, typename InputAttributeType2, typename OutputAttributeType>
593 promoteReInterpretable(const boost::shared_ptr<OutputAttributeType>& pOutputAttribute,
594  const boost::shared_ptr<InputAttributeType1>& pInputAttribute1,
595  const boost::shared_ptr<InputAttributeType2>& pInputAttribute2,
596  const ePromoteBinaryType& promoteBinaryType)
597 {
598  return promoteReInterpretable(boost::weak_ptr<OutputAttributeType>(pOutputAttribute),
599  boost::weak_ptr<InputAttributeType1>(pInputAttribute1),
600  boost::weak_ptr<InputAttributeType2>(pInputAttribute2),
601  promoteBinaryType);
602 }
604 
607 
608 } // end of namespace imaproc
609 } // end of namespace ipsdk
610 
611 #endif // __IPSDKIMAGEPROCESSING_IMAGEINITIALIZEROPERATORS_H__
void init(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< const InputAttributeType > &pInputAttribute, const image::eImageBufferType &imageBufferType=image::eImageBufferType::eIBT_None, const eImageInitializerDistributionPolicy &imageInitializerDistributionPolicy=eImageInitializerDistributionPolicy::eIIDP_AllowDistribution, const boost::optional< ipUInt64 > &sizeX=boost::optional< ipUInt64 >(), const boost::optional< ipUInt64 > &sizeY=boost::optional< ipUInt64 >(), const image::VolumeGeometry &volumeGeometry=image::VolumeGeometry(), const image::ColorGeometry &colorGeometry=image::ColorGeometry(), const image::TemporalGeometry &temporalGeometry=image::TemporalGeometry())
initialize object with a specified distribution type
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
void init(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< const InputAttributeType1 > &pInputAttribute1, const boost::weak_ptr< const InputAttributeType2 > &pInputAttribute2, const ePromoteBinaryType &promoteBinaryType, const bool bAllowReInterpretation=false)
initialize object
processor::OutputInitializerPtr duplicateGreyInOut(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType > &pInputAttribute, const eImageInitializerStoragePolicy &storagePolicy=eImageInitializerStoragePolicy::eIISP_Inherit)
function allowing to duplicate an input image to an output image with respect to input image geometry...
Definition: ImageInitializerOperators.h:245
processor::OutputInitializerPtr promoteUnary(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType > &pInputAttribute, const ePromoteUnaryType &promoteUnaryType)
functions allowing to deduce output image buffer type promotion from an input image buffer type ...
Definition: ImageInitializerOperators.h:492
Predefined geometry component instances.
void init(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< const InputAttributeType > &pInputAttribute, const IBTAttributeConstWeakPtr &pIBTAttribute, const boost::optional< ipUInt64 > &sizeX=boost::optional< ipUInt64 >(), const boost::optional< ipUInt64 > &sizeY=boost::optional< ipUInt64 >(), const image::VolumeGeometry &volumeGeometry=image::VolumeGeometry(), const image::ColorGeometry &colorGeometry=image::ColorGeometry(), const image::TemporalGeometry &temporalGeometry=image::TemporalGeometry())
initialize object
boost::shared_ptr< const BaseImageBufferTypeAttribute > IBTAttributeConstPtr
Definition: ImageBufferTypeAttributeTypes.h:37
processor::OutputInitializerPtr duplicateInOut(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType > &pInputAttribute, const eImageInitializerStoragePolicy &storagePolicy=eImageInitializerStoragePolicy::eIISP_Inherit)
function allowing to duplicate an input image to an output image
Definition: ImageInitializerOperators.h:42
IPSDKIMAGE_API ColorGeometry geometryGrey()
create a grey level color geometry
IPSDKIMAGE_API VolumeGeometry geometry2d()
create a 2d volume geometry
Definition of import/export macro for library.
boost::shared_ptr< BaseOutputInitializer > OutputInitializerPtr
shared pointer to output intializer
Definition: OutputInitializerTypes.h:51
Class allowing to initialize an output image from two other images deducing output image buffer type ...
Definition: PromoteBinaryImageInitializer.h:38
processor::OutputInitializerPtr duplicate2dInOut(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType > &pInputAttribute, const eImageInitializerStoragePolicy &storagePolicy=eImageInitializerStoragePolicy::eIISP_Inherit)
function allowing to duplicate an input image to an output image with respect to input image geometry...
Definition: ImageInitializerOperators.h:365
boost::weak_ptr< const BaseImageBufferTypeAttribute > IBTAttributeConstWeakPtr
Definition: ImageBufferTypeAttributeTypes.h:43
IPSDKIMAGE_API TemporalGeometry geometrySingle()
create a single element temporal geometry
processor::OutputInitializerPtr customOutput(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const CustomImageInfoPtr &pCustomImageInfo)
function allowing to initialize an output image using a derived object to define output image propert...
Definition: ImageInitializerOperators.h:185
ePromoteUnaryType
Enumerate describing promote unary output image initializer type.
Definition: ImageInitializerTypes.h:55
eImageInitializerStoragePolicy
Enumerate describing image initializer storage policy.
Definition: ImageInitializerTypes.h:114
IPSDKIMAGE_API ColorGeometry geometryRgb()
create a rgb color geometry
processor::OutputInitializerPtr duplicateSingleInOut(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType > &pInputAttribute, const eImageInitializerStoragePolicy &storagePolicy=eImageInitializerStoragePolicy::eIISP_Inherit)
function allowing to duplicate an input image to an output image with respect to input image geometry...
Definition: ImageInitializerOperators.h:325
processor::OutputInitializerPtr promoteBinary(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType1 > &pInputAttribute1, const boost::weak_ptr< InputAttributeType2 > &pInputAttribute2, const ePromoteBinaryType &promoteBinaryType, const bool bAllowReInterpretation=false)
functions allowing to deduce output image buffer type promotion from two input image buffer types ret...
Definition: ImageInitializerOperators.h:528
void init(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< const InputAttributeType > &pInputAttribute, const ePromoteUnaryType &promoteUnaryType)
initialize object
Class encapsulating volume geometryThis class allows to define geometry volume size and type (2d or 3...
Definition: VolumeGeometry.h:34
Class allowing to initialize an output image from an other image and from a given image buffer type a...
Definition: TypedDuplicateImageInitializer.h:42
Class encapsulating color geometryThis class allows to define geometry color size and type (grey...
Definition: ColorGeometry.h:35
Class allowing to initialize an output image from an other image and optionnaly from a given type...
Definition: DuplicateImageInitializer.h:42
boost::shared_ptr< BaseCustomImageInfo > CustomImageInfoPtr
shared pointer to CustomImageInfo
Definition: CustomImageInfoTypes.h:26
Predefined types for image initializer management.
Class encapsulating temporal geometryThis class allows to define geometry temporal size and type (sin...
Definition: TemporalGeometry.h:35
Class allowing to initialize an output image from an other image deducing output image buffer type fr...
Definition: PromoteUnaryImageInitializer.h:38
eImageInitializerDistributionPolicy
Enumerate describing image initializer distribution policy.
Definition: ImageInitializerTypes.h:99
Predefined type for image management.
Class allowing to initialize an output image from an object allowing to define output image propertie...
Definition: CustomImageInitializer.h:38
empty buffer type
Definition: ImageTypes.h:80
Image memory distribution is allowed.
Definition: ImageInitializerTypes.h:101
processor::OutputInitializerPtr promoteReInterpretable(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType1 > &pInputAttribute1, const boost::weak_ptr< InputAttributeType2 > &pInputAttribute2, const ePromoteBinaryType &promoteBinaryType)
functions allowing to deduce output image buffer type promotion from two input image buffer types ret...
Definition: ImageInitializerOperators.h:572
The allocated image has the same storage type than the input image.
Definition: ImageInitializerTypes.h:116
ePromoteBinaryType
Enumerate describing promote binary output image initializer type.
Definition: ImageInitializerTypes.h:76
processor::OutputInitializerPtr duplicateRgbInOut(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute, const boost::weak_ptr< InputAttributeType > &pInputAttribute, const eImageInitializerStoragePolicy &storagePolicy=eImageInitializerStoragePolicy::eIISP_Inherit)
function allowing to duplicate an input image to an output image with respect to input image geometry...
Definition: ImageInitializerOperators.h:407
void init(const ImageAttributeWeakPtr &pOutputAttribute, const CustomImageInfoPtr &pCustomImageInfo, const eImageInitializerStoragePolicy &storagePolicy)
initialize object
eImageBufferType
types associated to image buffers
Definition: ImageTypes.h:78