00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00032 #ifndef _Arithmetic_hpp
00033 #define _Arithmetic_hpp
00034
00035 #include<ImLib3D/ImageProcessor.hpp>
00036
00037 namespace IP3D
00038 {
00047 template <class ImageType>
00048 void Addition(const ImageType& im1, const ImageType& im2, ImageType& imDest);
00049 template <class ImageType>
00050 static void Apply(const ImageType& im1, const typename ImageType::value_type& scalarValue, ImageType& imDest);
00051 };
00052
00053 namespace IP3D
00054 {
00063 template <class ImageType>
00064 void AdditionWithConstant(const ImageType& im1, const typename ImageType::value_type& scalarValue, ImageType& imDest);
00065 };
00066
00067
00068 namespace IP3D
00069 {
00078 template <class ImageType>
00079 void Difference(const ImageType& im1, const ImageType& im2, ImageType& imDest);
00080 };
00081 namespace IP3D
00082 {
00091 template <class ImageType>
00092 void DifferenceWithConstant(const ImageType& im1, const typename ImageType::value_type& scalarValue, ImageType& imDest);
00093 };
00094
00095
00096 namespace IP3D
00097 {
00106 template <class ImageType>
00107 void Multiplication(const ImageType& im1, const ImageType& im2, ImageType& imDest);
00108 };
00109
00110 namespace IP3D
00111 {
00120 template <class ImageType>
00121 void MultiplicationWithConstant(const ImageType& im1, double scalarValue, ImageType& imDest);
00122 };
00123
00124
00125 namespace IP3D
00126 {
00135 template <class ImageType>
00136 void Division(const ImageType& im1, const ImageType& im2, ImageType& imDest);
00137 };
00138
00139 namespace IP3D
00140 {
00149 template <class ImageType>
00150 void MaxImage(const ImageType& im1, const ImageType& im2, ImageType& imDest);
00151 };
00152
00153 namespace IP3D
00154 {
00162 template <class ImageType>
00163 void Abs(const ImageType& im1, ImageType& imDest);
00164 };
00165
00166 #include<ImLib3D/Arithmetic.hxx>
00167
00168 #endif //_Arithmetic_hpp