本文整理汇总了C++中transformtype::Pointer::Invert方法的典型用法代码示例。如果您正苦于以下问题:C++ Pointer::Invert方法的具体用法?C++ Pointer::Invert怎么用?C++ Pointer::Invert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类transformtype::Pointer
的用法示例。
在下文中一共展示了Pointer::Invert方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main (int argc, char **argv)
{
int verbose=0, clobber=0,skip_grid=0;
int order=2;
std::string like_f,xfm_f,output_f,input_f;
double uniformize=0.0;
int invert=0;
char *history = time_stamp(argc, argv);
static struct option long_options[] = {
{"verbose", no_argument, &verbose, 1},
{"quiet", no_argument, &verbose, 0},
{"clobber", no_argument, &clobber, 1},
{"like", required_argument, 0, 'l'},
{"transform", required_argument, 0, 't'},
{"order", required_argument, 0, 'o'},
{"uniformize", required_argument, 0, 'u'},
{"invert_transform", no_argument, &invert, 1},
{0, 0, 0, 0}
};
for (;;) {
/* getopt_long stores the option index here. */
int option_index = 0;
int c = getopt_long (argc, argv, "vqcl:t:o:u:", long_options, &option_index);
/* Detect the end of the options. */
if (c == -1) break;
switch (c)
{
case 0:
break;
case 'v':
cout << "Version: 0.1" << endl;
return 0;
case 'l':
like_f=optarg; break;
case 't':
xfm_f=optarg; break;
case 'o':
order=atoi(optarg);break;
case 'u':
uniformize=atof(optarg);break;
case '?':
/* getopt_long already printed an error message. */
default:
show_usage (argv[0]);
return 1;
}
}
if ((argc - optind) < 2) {
show_usage(argv[0]);
return 1;
}
input_f=argv[optind];
output_f=argv[optind+1];
if (!clobber && !access (output_f.c_str (), F_OK))
{
std::cerr << output_f.c_str () << " Exists!" << std::endl;
return 1;
}
try
{
itk::ObjectFactoryBase::RegisterFactory(itk::MincImageIOFactory::New());
itk::ImageFileReader<minc::image3d >::Pointer reader = itk::ImageFileReader<minc::image3d >::New();
//initializing the reader
reader->SetFileName(input_f.c_str());
reader->Update();
minc::image3d::Pointer in=reader->GetOutput();
FilterType::Pointer filter = FilterType::New();
//creating coordinate transformation objects
TransformType::Pointer transform = TransformType::New();
if(!xfm_f.empty())
{
//reading a minc style xfm file
transform->OpenXfm(xfm_f.c_str());
if(!invert) transform->Invert(); //should be inverted by default to walk through target space
filter->SetTransform( transform );
}
//creating the interpolator
InterpolatorType::Pointer interpolator = InterpolatorType::New();
interpolator->SetSplineOrder(order);
filter->SetInterpolator( interpolator );
filter->SetDefaultPixelValue( 0 );
//this is for processing using batch system
filter->SetNumberOfThreads(1);
if(!like_f.empty())
{
//.........这里部分代码省略.........