本文整理汇总了C++中transformtype::Pointer::ImportParameters方法的典型用法代码示例。如果您正苦于以下问题:C++ Pointer::ImportParameters方法的具体用法?C++ Pointer::ImportParameters怎么用?C++ Pointer::ImportParameters使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类transformtype::Pointer
的用法示例。
在下文中一共展示了Pointer::ImportParameters方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main (int argc, char **argv)
{
int verbose=0, clobber=0,skip_grid=0;
double max=5.0;
double extent=300;
static struct option long_options[] = {
{"verbose", no_argument, &verbose, 1},
{"quiet", no_argument, &verbose, 0},
{"clobber", no_argument, &clobber, 1},
{"spacing", required_argument, 0, 's'},
{"max", required_argument, 0, 'm'},
{"version", no_argument, 0, 'v'},
{"extent", required_argument, 0, 'e'},
{0, 0, 0, 0}
};
double spacing=4.0;
for (;;) {
/* getopt_long stores the option index here. */
int option_index = 0;
int c = getopt_long (argc, argv, "s:m:v", long_options, &option_index);
/* Detect the end of the options. */
if (c == -1) break;
switch (c)
{
case 0:
break;
case 's':
spacing=atof(optarg);
break;
case 'v':
cout << "Version: 1.0" << endl;
return 0;
case 'm':
max=atof(optarg); break;
case 'e':
extent=atof(optarg); break;
case '?':
/* getopt_long already printed an error message. */
default:
show_usage ();
return 1;
}
}
if ((argc - optind) < 2) {
show_usage ();
return 1;
}
std::string input=argv[optind];
std::string output=argv[optind+1];
try
{
gsl_rng_env_setup();
typedef minc::SphericalHarmonicsTransform TransformType;
TransformType::ParametersType finalParameters;
load_parameters(input.c_str(),finalParameters);
TransformType::Pointer finalTransform = TransformType::New();
cout<<"Loaded parameters:"<<finalParameters<<endl;
finalTransform->ImportParameters( finalParameters , true);
cout<<"Imported!"<<endl;
minc::def3d::Pointer grid(minc::def3d::New());
allocate_image3d<minc::def3d>(grid,
fixed_vec<3, unsigned int>(extent/spacing),
fixed_vec<3, double>(spacing),
fixed_vec<3, double>(-extent/2));
if(verbose)
{
cout<<"Generating a grid file, ";
cout<<"extent: "<<extent<<" spacing: "<<spacing<<" ..."<<std::flush;
}
def3d_iterator it(grid,grid->GetLargestPossibleRegion());
for(it.GoToBegin();!it.IsAtEnd();++it)
{
tag_point p,p2;
grid->TransformIndexToPhysicalPoint(it.GetIndex(),p);
p2=finalTransform->TransformPointUnCached(p);
def_vector moved;
moved[0]=p2[0]-p[0];
moved[1]=p2[1]-p[1];
moved[2]=p2[2]-p[2];
if(fabs(moved[0])>max || fabs(moved[1])>max ||fabs(moved[2])>max)
moved[0]=moved[1]=moved[2]=0.0;
it.Value()=moved;
}
if(verbose)
cout<<"Done!"<<endl;
save_minc<def3d>(output.c_str(), grid);
//.........这里部分代码省略.........