#define DEBUGing #include "itkSWaveletTest.h" #include #include int main( int argc, char * argv [] ) { if (argc != 2) { cerr<<"format: itkSWaveletTest levelOfSubdivision"<=7 || n<0) { std::cerr<<"Finest resolution can't be less than 0, and best to be no larger than 6..."<SetCenter( center ); mySphereMeshSource->SetResolution( n ); mySphereMeshSource->SetScale( scale ); mySphereMeshSource->Modified(); try { mySphereMeshSource->Update(); } catch( itk::ExceptionObject & excp ) { std::cerr << "Error during Update() " << std::endl; std::cerr << excp << std::endl; } // testing task 2: std::cerr<<"testing task 2:"< v = mySphereMeshSource->GetVerts(); std::vector< PointType >::const_iterator itv = v.begin(); std::vector< PointType >::const_iterator itvEnd = v.end(); std::vector< double > f( v.size() ); std::vector< double >::iterator itf = f.begin(); for ( ; itv != itvEnd; ++itv, ++itf ) { *itf = (*itv)[2]; } mySphereMeshSource->SetScalarFunction( f ); mySphereMeshSource->SWaveletTransform(); mySphereMeshSource->inverseSWaveletTransform(); std::vector< double > reF = mySphereMeshSource->GetReconstructedScalarFunction(); std::vector< double > dif(f.size()); std::vector< double >::iterator itDif=dif.begin(), itDifEnd = dif.end(), itReF=reF.begin(); std::vector< double >::iterator itfEnd = f.end(); // std::ofstream file("error.dat"); double d = 0; for ( itf = f.begin(); itf != itfEnd; ++itf, ++itReF ) { d = d>fabs(*itf-*itReF)?d:fabs(*itf-*itReF); // file<<*itf<<"\t\t\t"<<*itReF<<"\t\t\t"<