#define DEBUGing #include "itkSWaveletTest.h" #include #include int main( int argc, char * argv [] ) { if (argc != 1) { cerr<<"format: itkSWaveletTest"<=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 5: std::cerr<<"testing task 5:"< oriF; getScalarFn("x10.txt", oriF); mySphereMeshSource->SetScalarFunctionWithSphere( "para10.meta", oriF); mySphereMeshSource->SWaveletTransform(); mySphereMeshSource->inverseSWaveletTransform(); std::vector< double > f = mySphereMeshSource->GetScalarFunction(); 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; std::vector< double >::iterator itf = f.begin(); 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"<WriteFinestSubdivisionMeshToMetaFile("hahaha.meta"); return EXIT_SUCCESS; } void getScalarFn(char* scalarFileName, std::vector< double >& scalarFn) { std::ifstream f(scalarFileName); double a; for (; !f.eof(); ) { f>>a; scalarFn.push_back(a); } scalarFn.erase(scalarFn.end()-1, scalarFn.end()); // The last line is a blank line. } //void getScalarFn()