本文整理汇总了C++中volmagick::Volume::interpolate方法的典型用法代码示例。如果您正苦于以下问题:C++ Volume::interpolate方法的具体用法?C++ Volume::interpolate怎么用?C++ Volume::interpolate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类volmagick::Volume
的用法示例。
在下文中一共展示了Volume::interpolate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
if(argc < 4)
{
std:: cerr <<
"Usage: " << argv[0] <<
" inputmesh inputvol outputMesh [range]\n";
return 1;
}
try
{
geometry geom;
cvcraw_geometry::read(geom, string(argv[1]));
VolMagick::Volume inputVol;
VolMagick::readVolumeFile(inputVol,argv[2]); ///input volume
double range = 0; bool gotRange = false;
if( argc > 4 ) {
range = atof( argv[4] );
gotRange = true;
std::cout << "got range: " << range << std::endl;
}
float x,y,z;
float value;
color_t color;
COLOUR c;
if( !gotRange ) {
// compute range, max absolute value
for(int i=0; i< geom.points.size(); i++)
{
x = geom.points[i][0];
y = geom.points[i][1];
z = geom.points[i][2];
value = inputVol.interpolate(x,y,z);
if( range < fabs( value ) ) range = fabs( value );
}
}
std::cout<<"range: "<< range << std::endl;
for(int i=0; i< geom.points.size(); i++)
{
x = geom.points[i][0];
y = geom.points[i][1];
z = geom.points[i][2];
value = inputVol.interpolate(x,y,z);
c=GetColour(value, range);
color[0] = c.r;
color[1] = c.g;
color[2] = c.b;
geom.colors.push_back(color);
}
cvcraw_geometry::write(geom, string(argv[3]));
std::cout<< "done. "<< std::endl;
}
catch(VolMagick::Exception &e)
{
std:: cerr << e.what() << std::endl;
}
catch(std::exception &e)
{
std::cerr << e.what() << std::endl;
}
return 0;
}