本文整理汇总了C++中Scanner::offsetView方法的典型用法代码示例。如果您正苦于以下问题:C++ Scanner::offsetView方法的具体用法?C++ Scanner::offsetView怎么用?C++ Scanner::offsetView使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Scanner
的用法示例。
在下文中一共展示了Scanner::offsetView方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: scanner
//.........这里部分代码省略.........
if (endptr != endstr) {
std::cerr << "Error setting --ndet to " << argv[optind+1] << std::endl;
phm2helix_usage(argv[0]);
return (1);
}
opt_nview = strtol(argv[optind+2], &endptr, 10);
endstr = argv[optind+2] + strlen(argv[optind+2]);
if (endptr != endstr) {
std::cerr << "Error setting --nview to " << argv[optind+2] << std::endl;
phm2helix_usage(argv[0]);
return (1);
}
opt_PhmProg = argv[optind+3];
if (opt_rotangle < 0) {
if (optGeometryName.compare ("parallel") == 0)
opt_rotangle = 0.5;
else
opt_rotangle = 1.0;
}
std::ostringstream desc;
desc << "phm2helix: NDet=" << opt_ndet
<< ", Nview=" << opt_nview
<< ", NRay=" << opt_nray
<< ", RotAngle=" << opt_rotangle
<< ", OffsetView =" << opt_offsetview
<< ", Geometry=" << optGeometryName
<< ", PhantomProg=" << opt_PhmProg
<< ", PhmFileName=" << opt_PhmFileName;
if (opt_desc.length()) {
desc << ": " << opt_desc;
}
opt_desc = desc.str();
opt_rotangle *= TWOPI;
int stat;
char extcommand[100];
if(opt_debug != 0)
std::cout << opt_PhmProg << " " << 0 << " " << opt_nview << " " << opt_PhmFileName << std::endl;
//extcommand << opt_PhmProg << " " << 0 << " " << opt_nview << " " << opt_PhmFileName ;
sprintf(extcommand, "%s %d %d %s", opt_PhmProg.c_str(), 0, opt_nview, opt_PhmFileName.c_str() );
stat = system( extcommand );
if (stat != 0 )
std::cerr << "Error executing external phantom program " << opt_PhmProg << " with command " << extcommand << std::endl;
phm.createFromFile (opt_PhmFileName.c_str());
remove(opt_PhmFileName.c_str());
Scanner scanner (phm, optGeometryName.c_str(), opt_ndet, opt_nview,
opt_offsetview, opt_nray, opt_rotangle, dOptFocalLength,
dOptCenterDetectorLength, dOptViewRatio, dOptScanRatio);
if (scanner.fail()) {
std::cout << "Scanner Creation Error: " << scanner.failMessage()
<< std::endl;
return (1);
}
Projections pjGlobal(scanner);
for( int iView = 0; iView < opt_nview; iView++ ){
if(opt_debug != 0)
std::cout << opt_PhmProg << " " << iView << " " << opt_nview << " " << opt_PhmFileName << std::endl;
//extcommand << opt_PhmProg << " " << iView << " " << opt_nview << " " << opt_PhmFileName ;
sprintf(extcommand, "%s %d %d %s",
opt_PhmProg.c_str(), iView, opt_nview,
opt_PhmFileName.c_str() );
stat = system( extcommand );
if (stat != 0 )
std::cerr << "Error executing external phantom program " << opt_PhmProg << " with command " << extcommand << std::endl;
Phantom phmtmp;
phmtmp.createFromFile (opt_PhmFileName.c_str());
scanner.collectProjections (pjGlobal, phmtmp, iView,
1, scanner.offsetView(), true, opt_trace);
remove(opt_PhmFileName.c_str());
}
pjGlobal.setCalcTime (timerProgram.timerEnd());
pjGlobal.setRemark (opt_desc);
pjGlobal.write (opt_outfile);
if (opt_verbose) {
phm.print (std::cout);
std::cout << std::endl;
std::ostringstream os;
pjGlobal.printScanInfo (os);
std::cout << os.str() << std::endl;
std::cout << " Remark: " << pjGlobal.remark() << std::endl;
std::cout << "Run time: " << pjGlobal.calcTime() << " seconds\n";
}
return (0);
}