00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00020 #ifndef _ImageAs1DVector_hxx
00021 #define _ImageAs1DVector_hxx
00022
00023
00024 template <class ImageType>
00025 void
00026 IP3D::ScalarProduct(const ImageType& im1, const ImageType& im2, double & retValue)
00027 {
00028 ImageProcessorArgs<ImageType> args;
00029 args.AddSrc(im1);
00030 args.AddSrc(im2);
00031 args.SameSize();
00032
00033 typename ImageType::const_iteratorFast p1;
00034 typename ImageType::const_iteratorFast p2;
00035
00036 retValue = 0;
00037 for (p1 = im1.begin(), p2 = im2.begin(); p1 != im1.end(); p1++, p2++)
00038 {
00039 retValue += (*p1) * (*p2);
00040 }
00041 }
00042 #ifdef DEPRECATED
00043
00044 namespace IP3D
00045 {
00046 template <class ImageType>
00047 void
00048 ForAllVoxels(Function1D<typename ImageType::value_type, typename ImageType::value_type>& fnc, const ImageType& im1, ImageType& res)
00049 {
00050 ImageProcessorArgs<ImageType> args;
00051 args.AddSrc(im1);
00052 args.AddDest(res);
00053 args.SameSize();
00054
00055 typename ImageType::const_iteratorFast p1;
00056 typename ImageType::iteratorFast p2;
00057
00058 for (p1 = im1.begin(), p2 = res.begin(); p1 != im1.end(); p1++, p2++)
00059 {
00060 (*p2) = fnc(*p1);
00061 }
00062 }
00063 #endif// DEPRECATED
00064
00065 #endif// _ImageAs1DVector_hxx