30 #ifndef _BASE_IMAGE_OPERATIONS_HPP
31 #define _BASE_IMAGE_OPERATIONS_HPP
33 #include "Core/include/private/DImage.hpp"
34 #include "Core/include/private/DMemory.hpp"
36 #include "DBaseLineOperations.hpp"
46 typedef typename imageType::sliceType sliceType;
47 typedef typename imageType::lineType lineType;
48 typedef typename imageType::pixelType pixelType;
50 sliceType alignedBuffers;
60 deleteAlignedBuffers();
63 lineType *createAlignedBuffers (
size_t nbr,
size_t len );
64 void deleteAlignedBuffers();
65 inline void copyLineToBuffer ( T *line,
size_t bufIndex );
66 inline void copyBufferToLine (
size_t bufIndex, T *line );
68 operator RES_T() {
return retVal; }
71 template <
class T,
class lineFunction_T,
class T_out=T>
77 typedef typename imageInType::pixelType pixelInType;
78 typedef typename imageInType::lineType lineInType;
79 typedef typename imageInType::sliceType sliceInType;
82 typedef typename imageOutType::pixelType pixelOutType;
83 typedef typename imageOutType::lineType lineOutType;
84 typedef typename imageOutType::sliceType sliceOutType;
89 this->retVal = this->_exec ( imIn, ImOut );
93 this->retVal = this->_exec (imOut, value);
98 return this->_exec ( imIn, ImOut );
100 inline RES_T operator() (
imageOutType &ImOut,
const T_out &value )
102 return this->_exec ( ImOut, value );
106 RES_T _exec (
imageOutType &imOut,
const T_out &value );
109 lineFunction_T lineFunction;
113 template <
class T,
class lineFunction_T>
119 typedef typename imageType::pixelType pixelType;
120 typedef typename imageType::lineType lineType;
121 typedef typename imageType::sliceType sliceType;
126 this->retVal = this->_exec ( imIn1, imIn2, ImOut );
130 this->retVal = this->_exec ( imIn, value, ImOut );
134 this->retVal = this->_exec ( value, imIn, ImOut );
139 return this->_exec ( imIn1, imIn2, ImOut );
143 return this->_exec ( imIn, value, ImOut );
148 return this->_exec ( value, imIn, ImOut );
157 lineFunction_T lineFunction;
160 template <
class T,
class lineFunction_T>
166 typedef typename imageType::pixelType pixelType;
167 typedef typename imageType::lineType lineType;
168 typedef typename imageType::sliceType sliceType;
175 this->retVal = this->_exec ( imIn, value1, value2, ImOut );
180 this->retVal = this->_exec ( imIn, value1, imIn2, ImOut );
185 this->retVal = this->_exec ( imIn, imIn1, value2, ImOut );
190 this->retVal = this->_exec ( imIn, imIn1, imIn2, ImOut );
197 return this->_exec ( imIn1, imIn2, imIn3, ImOut );
202 return this->_exec ( imIn1, value, imIn2, ImOut );
207 return this->_exec ( imIn1, imIn2, value, ImOut );
210 inline RES_T operator() (
const imageType &imIn,
const T2 &value1,
const T2 &value2,
Image<T2> &ImOut )
212 return this->_exec ( imIn, value1, value2, ImOut );
222 RES_T _exec (
const imageType &imIn,
const T2 &value1,
const T2 &value2,
Image<T2> &imOut );
224 lineFunction_T lineFunction;
232 #include "DBaseImageOperations.hxx"
Main Image class.
Definition: DImage.hpp:57
Definition: DBaseImageOperations.hpp:115
Definition: DBaseImageOperations.hpp:43
Definition: DBaseImageOperations.hpp:162
Definition: DBaseImageOperations.hpp:73