本文整理汇总了C++中Viewer3D::setWindowTitle方法的典型用法代码示例。如果您正苦于以下问题:C++ Viewer3D::setWindowTitle方法的具体用法?C++ Viewer3D::setWindowTitle怎么用?C++ Viewer3D::setWindowTitle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Viewer3D
的用法示例。
在下文中一共展示了Viewer3D::setWindowTitle方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main( int argc, char** argv )
{
QApplication application(argc,argv);
Viewer3D<> viewer;
viewer.setWindowTitle("simpleViewer");
viewer.show();
trace.beginBlock ( "Testing Polygon 3D display in Viewer3D" );
std::vector<Z3i::RealPoint> polyg1;
polyg1.push_back(Z3i::RealPoint(0,0,0));
polyg1.push_back(Z3i::RealPoint(0,1,0));
polyg1.push_back(Z3i::RealPoint(1,1,0));
viewer.addPolygon(polyg1);
viewer.createNewPolygonList("hop");
std::vector<Z3i::RealPoint> polyg2;
polyg2.push_back(Z3i::RealPoint(0,10,0));
polyg2.push_back(Z3i::RealPoint(0,11,0));
polyg2.push_back(Z3i::RealPoint(11,11,0));
viewer.addPolygon(polyg2);
viewer << Viewer3D<>::updateDisplay;
bool res = application.exec();
trace.emphase() << ( res ? "Passed." : "Error." ) << endl;
trace.endBlock();
return res ? 0 : 1;
}
示例2: main
int main( int argc, char** argv )
{
typedef DGtal::ImageContainerBySTLVector< DGtal::Z2i::Domain, unsigned char> imageNG;
typedef DGtal::ImageContainerBySTLVector< DGtal::Z2i::Domain, unsigned int> imageCol;
QApplication application(argc,argv);
Viewer3D<> viewer;
viewer.setWindowTitle("simpleViewer");
viewer.show();
Point p1( 0, 0, 0 );
Point p2( 125, 188, 0 );
Point p3( 30, 30, 30 );
std::string filename = testPath + "samples/church-small.pgm";
std::string filename3 = testPath + "samples/color64.ppm";
imageNG image = DGtal::PGMReader<imageNG>::importPGM(filename);
imageNG image2 = DGtal::GenericReader<imageNG>::import(filename);
imageCol image3 = DGtal::GenericReader<imageCol>::import(filename3);
viewer << DGtal::AddTextureImage2DWithFunctor<imageNG, hueFct , Z3i::Space, Z3i::KSpace>(image2, hueFct(), Viewer3D<>::RGBMode );
viewer << image;
viewer << DGtal::AddTextureImage2DWithFunctor<imageCol, DefaultFunctor, Z3i::Space, Z3i::KSpace>(image3, DefaultFunctor(), Viewer3D<>::RGBMode );
viewer << DGtal::UpdateImagePosition<Z3i::Space, Z3i::KSpace>(0, Viewer3D<>::xDirection, 50, 50, 50 );
viewer << DGtal::UpdateImagePosition<Z3i::Space, Z3i::KSpace>(2, Viewer3D<>::yDirection, 0, 0, 0);
viewer << SetMode3D( image.domain().className(), "BoundingBox" );
viewer << image.domain();
viewer << DGtal::Update2DDomainPosition<Z3i::Space, Z3i::KSpace>(0, Viewer3D<>::xDirection, 0, 0, 0);
for(unsigned int i= 0; i< 10; i++){
if(i%4==0){
viewer << SetMode3D( image.className(), "" );
}else if(i%4==1){
viewer << SetMode3D( image.className(), "BoundingBox" );
}else if(i%4==2){
viewer << SetMode3D( image.className(), "Grid" );
}else if(i%4==3){
viewer << SetMode3D( image.className(), "InterGrid" );
}
viewer << image;
viewer << DGtal::UpdateImageData<imageNG>(i+3, image, i*50, i*50, i*50);
}
viewer << p1 << p2 << p3;
viewer << Viewer3D<>::updateDisplay;
bool res = application.exec();
trace.emphase() << ( res ? "Passed." : "Error." ) << endl;
trace.endBlock();
return res ? 0 : 1;
}
示例3: main
int main( int argc, char** argv )
{
typedef DGtal::ImageContainerBySTLVector< DGtal::Z3i::Domain, unsigned char> Image3D;
QApplication application(argc,argv);
Viewer3D<> viewer;
viewer.setWindowTitle("simpleViewer");
viewer.show();
trace.beginBlock("Testing Viewer with display of 3D Image ");
Point p1( 0, 0, 0 );
Point p2( 125, 188, 0 );
Point p3( 30, 30, 30 );
std::string filename = testPath + "samples/lobsterCroped.vol";
viewer.setFillTransparency(150);
Image3D image3d = VolReader<Image3D>::importVol(filename);
viewer << SetMode3D(image3d.className(), "BoundingBox");
viewer << DGtal::AddTextureImage3DWithFunctor<Image3D, hueFct , Space, KSpace>(image3d, hueFct(),Viewer3D<>::RGBMode );
viewer.setFillTransparency(255);
// Extract some slice images:
// Get the 2D domain of the slice:
DGtal::Projector<DGtal::Z2i::Space> invFunctor; invFunctor.initRemoveOneDim(2);
DGtal::Z2i::Domain domain2D(invFunctor(image3d.domain().lowerBound()),
invFunctor(image3d.domain().upperBound()));
typedef DGtal::ConstImageAdapter<Image3D, DGtal::Z2i::Domain, DGtal::Projector< Z3i::Space>,
Image3D::Value, DGtal::DefaultFunctor > SliceImageAdapter;
DGtal::DefaultFunctor idV;
DGtal::Projector<DGtal::Z3i::Space> aSliceFunctorZ(5); aSliceFunctorZ.initAddOneDim(2);
SliceImageAdapter sliceImageZ(image3d, domain2D, aSliceFunctorZ, idV);
viewer << sliceImageZ;
viewer << DGtal::UpdateImagePosition<Space, KSpace>(6, Viewer3D<>::zDirection, 0.0, 0.0, -10.0);
viewer << p1 << p2 << p3;
viewer << Viewer3D<>::updateDisplay;
bool res = application.exec();
trace.emphase() << ( res ? "Passed." : "Error." ) << endl;
trace.endBlock();
return res ? 0 : 1;
}
示例4: main
int main( int argc, char** argv )
{
typedef DGtal::ImageContainerBySTLVector< DGtal::Z3i::Domain, unsigned int> Image3D;
typedef DGtal::ConstImageAdapter<Image3D, Z2i::Domain, DGtal::Point2DEmbedderIn3D<DGtal::Z3i::Domain>,
Image3D::Value, DGtal::DefaultFunctor > ImageAdapterExtractor;
QApplication application(argc,argv);
Viewer3D<> viewer;
viewer.setWindowTitle("simpleViewer");
viewer.show();
trace.beginBlock("Testing Viewer with Image Embedder ");
Point pcenter( 10, 20, 20 );
Point pcenterImg( 10, 20, 20 );
std::string filename = testPath + "samples/cat10.pgm3d";
Image3D image = DGtal::GenericReader<Image3D>::import(filename);
const int IMAGE_PATCH_WIDTH = 80;
// Setting the image domain of the resulting image to be displayed in 3D:
DGtal::Z2i::Domain domainImage2D (DGtal::Z2i::Point(0,0),
DGtal::Z2i::Point(IMAGE_PATCH_WIDTH, IMAGE_PATCH_WIDTH));
DGtal::Point2DEmbedderIn3D<DGtal::Z3i::Domain > embedder(image.domain(),
pcenterImg, Z3i::RealPoint(1, 1, 1),
IMAGE_PATCH_WIDTH);
DGtal::Point2DEmbedderIn3D<DGtal::Z3i::Domain > embedder2(image.domain(),
pcenterImg, Z3i::RealPoint(1, 0, 0),
IMAGE_PATCH_WIDTH);
DGtal::Point2DEmbedderIn3D<DGtal::Z3i::Domain > embedder3(image.domain(),
pcenterImg, Z3i::RealPoint(0, 1, 0 ),
IMAGE_PATCH_WIDTH);
DGtal::Point2DEmbedderIn3D<DGtal::Z3i::Domain > embedder4(image.domain(),
pcenterImg, Z3i::RealPoint(0, 0, 1 ),
IMAGE_PATCH_WIDTH);
DGtal::DefaultFunctor idV;
ImageAdapterExtractor extractedImage(image, domainImage2D, embedder, idV);
ImageAdapterExtractor extractedImage2(image, domainImage2D, embedder2, idV);
ImageAdapterExtractor extractedImage3(image, domainImage2D, embedder3, idV);
ImageAdapterExtractor extractedImage4(image, domainImage2D, embedder4, idV);
viewer << extractedImage;
viewer << extractedImage2;
viewer << extractedImage3;
viewer << extractedImage4;
viewer << DGtal::UpdateImage3DEmbedding<Z3i::Space, Z3i::KSpace>(0,
embedder(Z2i::RealPoint(0,0),false),
embedder(Z2i::RealPoint(IMAGE_PATCH_WIDTH,0),false),
embedder(domainImage2D.upperBound(), false),
embedder(Z2i::RealPoint(0, IMAGE_PATCH_WIDTH), false));
viewer << DGtal::UpdateImage3DEmbedding<Z3i::Space, Z3i::KSpace>(1,
embedder2(Z2i::RealPoint(0,0),false),
embedder2(Z2i::RealPoint(IMAGE_PATCH_WIDTH,0),false),
embedder2(domainImage2D.upperBound(), false),
embedder2(Z2i::RealPoint(0, IMAGE_PATCH_WIDTH), false));
viewer << DGtal::UpdateImage3DEmbedding<Z3i::Space, Z3i::KSpace>(2,
embedder3(Z2i::RealPoint(0,0),false),
embedder3(Z2i::RealPoint(IMAGE_PATCH_WIDTH,0),false),
embedder3(domainImage2D.upperBound(), false),
embedder3(Z2i::RealPoint(0, IMAGE_PATCH_WIDTH), false));
viewer << DGtal::UpdateImage3DEmbedding<Z3i::Space, Z3i::KSpace>(3,
embedder4(Z2i::RealPoint(0,0),false),
embedder4(Z2i::RealPoint(IMAGE_PATCH_WIDTH,0),false),
embedder4(domainImage2D.upperBound(), false),
embedder4(Z2i::RealPoint(0, IMAGE_PATCH_WIDTH), false));
viewer.setFillColor(DGtal::Color(250,20,20,255));
viewer << pcenter;
viewer << Viewer3D<>::updateDisplay;
bool res = application.exec();
trace.emphase() << ( res ? "Passed." : "Error." ) << endl;
trace.endBlock();
return res ? 0 : 1;
}
示例5: main
int main( int argc, char** argv )
{
std::string inputFilename = examplesPath + "samples/Al.100.vol";
//------------
typedef Z3i::Point Point;
QApplication application(argc,argv);
Viewer3D<> viewer;
viewer.setWindowTitle("simpleViewer");
viewer.show();
//Default image selector = STLVector
typedef ImageSelector<Z3i::Domain, unsigned char>::Type Image;
Image image = VolReader<Image>::importVol( inputFilename );
Z3i::Domain domain = image.domain();
Image imageSeeds ( domain);
for ( Image::Iterator it = imageSeeds.begin(), itend = imageSeeds.end();it != itend; ++it)
(*it)=1;
Z3i::Point p0(10,10,10);
//imageSeeds.setValue(p0, 0 );
randomSeeds(imageSeeds, 70, 0);
//Distance transformation computation
typedef SimpleThresholdForegroundPredicate<Image> Predicate;
Predicate aPredicate(imageSeeds,0);
typedef DistanceTransformation<Z3i::Space,Predicate, Z3i::L2Metric> DTL2;
DTL2 dtL2(&domain, &aPredicate, &Z3i::l2Metric);
unsigned int min = 0;
unsigned int max = 0;
for(DTL2::ConstRange::ConstIterator it = dtL2.constRange().begin(),
itend=dtL2.constRange().end();
it!=itend;
++it)
{
if( (*it) < min )
min=(*it);
if( (*it) > max )
max=(*it);
}
GradientColorMap<long> gradient( 0,30);
gradient.addColor(Color::Red);
gradient.addColor(Color::Yellow);
gradient.addColor(Color::Green);
gradient.addColor(Color::Cyan);
gradient.addColor(Color::Blue);
gradient.addColor(Color::Magenta);
gradient.addColor(Color::Red);
viewer << SetMode3D( (*(domain.begin())).className(), "Paving" );
for(Z3i::Domain::ConstIterator it = domain.begin(), itend=domain.end();
it!=itend;
++it){
double valDist= dtL2( (*it) );
Color c= gradient(valDist);
if(dtL2(*it)<=30 && image(*it)>0){
viewer << CustomColors3D(Color((float)(c.red()),
(float)(c.green()),
(float)(c.blue(),205)),
Color((float)(c.red()),
(float)(c.green()),
(float)(c.blue()),205));
viewer << *it ;
}
}
viewer<< Viewer3D<>::updateDisplay;
return application.exec();
}
示例6: main
//.........这里部分代码省略.........
Predicate aPredicate(image, vm[ "min" ].as<int>(), vm[ "max" ].as<int>() );
DistanceTransformation<Z3i::Space, Predicate , Z3i::L2Metric> dt(image.domain(),aPredicate, Z3i::L2Metric() );
trace.endBlock();
trace.info() <<image<<std::endl;
// Domain creation from two bounding points.
trace.beginBlock("Constructing Set");
DigitalSet shape_set( image.domain() );
DigitalSet fixedSet( image.domain() );
// Get the optional fixed points
if( vm.count("fixedPoints")){
std::vector<int> vectC = vm["fixedPoints"].as<std::vector<int> >();
if(vectC.size()%3==0){
for( unsigned int i=0; i < vectC.size()-2; i=i+3){
Z3i::Point pt(vectC.at(i), vectC.at(i+1), vectC.at(i+2));
fixedSet.insertNew(pt);
}
}else{
trace.error()<< " The coordinates should be 3d coordinates, ignoring fixedPoints option." << std::endl;
}
}
SetFromImage<DigitalSet>::append<Image>(shape_set, image,
vm[ "min" ].as<int>(), vm[ "max" ].as<int>() );
trace.info() << shape_set<<std::endl;
trace.endBlock();
trace.beginBlock("Computing skeleton");
// (6,18), (18,6), (26,6) seem ok.
// (6,26) gives sometimes weird results (but perhaps ok !).
Object26_6 shape( dt26_6, shape_set );
int nb_simple=0;
int layer = 1;
std::queue<DigitalSet::Iterator> Q;
do
{
trace.info() << "Layer: "<< layer << std::endl;
int nb=0;
DigitalSet & S = shape.pointSet();
trace.progressBar(0, (double)S.size());
for ( DigitalSet::Iterator it = S.begin(); it != S.end(); ++it )
{
if ( nb % 100 == 0 ) trace.progressBar((double)nb, (double)S.size());
nb++;
if (dt( *it ) <= layer)
{
if ( shape.isSimple( *it ) )
Q.push( it );
}
}
trace.progressBar( (double)S.size(), (double)S.size() );
nb_simple = 0;
while ( ! Q.empty() )
{
DigitalSet::Iterator it = Q.front();
Q.pop();
if ( shape.isSimple( *it ) && fixedSet.find(*it) == fixedSet.end() )
{
S.erase( *it );
++nb_simple;
}
}
trace.info() << "Nb simple points : "<<nb_simple<< " " << std::endl;
++layer;
}
while ( nb_simple != 0 );
trace.endBlock();
DigitalSet & S = shape.pointSet();
trace.info() << "Skeleton--> "<<S<<std::endl;
// Display by using two different list to manage OpenGL transparency.
QApplication application(argc,argv);
Viewer3D<> viewer;
viewer.setWindowTitle("simpleExample3DViewer");
viewer.show();
viewer << SetMode3D( shape_set.className(), "Paving" );
viewer << CustomColors3D(Color(25,25,255, 255), Color(25,25,255, 255));
viewer << S ;
viewer << CustomColors3D(Color(255,25,255, 255), Color(255,25,255, 255));
viewer << fixedSet;
viewer << SetMode3D( shape_set.className(), "PavingTransp" );
viewer << CustomColors3D(Color(250, 0,0, 25), Color(250, 0,0, 5));
viewer << shape_set;
viewer<< Viewer3D<>::updateDisplay;
return application.exec();
}
示例7: main
int main( int argc, char** argv )
{
QApplication application(argc,argv);
Viewer3D<> viewer;
viewer.setWindowTitle("simpleViewer");
viewer.show();
trace.beginBlock ( "Testing class for Viewer3D" );
Point p1( 14, 14, 14 );
Point p2( 27, 27, 27 );
Domain domain( p1, p2 );
viewer << CustomColors3D(Color(20, 20, 20, 50),Color(20, 0,250,30));
viewer << SetMode3D(domain.className(), "Grid");
viewer << domain;
DigitalSet shape_set( domain );
Shapes<Domain>::addNorm1Ball( shape_set, Point( 13, 23, 13 ), 7 );
viewer << CustomColors3D(Color(250, 200,0, 100),Color(250, 200,0, 50));
viewer << shape_set ;
DigitalSet shape_set2( domain );
Shapes<Domain>::addNorm1Ball( shape_set2, Point( 24, 15, 12 ), 12 );
viewer << shape_set2 ;
DigitalSet shape_set3( domain );
Shapes<Domain>::addNorm2Ball( shape_set3, Point( 11, 15, 12 ), 12 );
viewer << CustomColors3D(Color(250, 20,0, 190),Color(220, 20,20, 250));
viewer << shape_set3 ;
Point pp1( -1, -1, -2 );
Point pp2( 2, 2, 3 );
Domain domain2( pp1, pp2 );
Point pp3( 1, 1, 1 );
Point pp4( 2, -1, 5 );
Point pp5( -1, 2, 3 );
Point pp6( 0, 0, 0 );
Point pp0( 0, 2, 1 );
//viewer<< m;
viewer << SetMode3D( pp1.className(), "Paving" );
viewer << pp1 << pp2 << pp3;
//viewer << SetMode3D( pp1.className(), "Grid" );
viewer << CustomColors3D(Color(250, 0,0),Color(250, 0,0));
viewer << SetMode3D( pp1.className(), "PavingWired" );
viewer << pp4 << pp5 ;
viewer << SetMode3D( pp1.className(), "Both" );
viewer << CustomColors3D(Color(250, 200,0, 100),Color(250, 0,0, 100));
viewer << pp6;
viewer << CustomColors3D(Color(250, 200,0, 100),Color(250, 200,0, 20));
viewer << pp0;
viewer << SetMode3D(domain.className(), "Paving");
viewer << domain2 << Display3D<Space, KSpace>::updateDisplay;
bool res = application.exec();
trace.emphase() << ( res ? "Passed." : "Error." ) << endl;
trace.endBlock();
return res ? 0 : 1;
}
示例8: main
//.........这里部分代码省略.........
if ( !parseOK || vm.count ( "help" ) ||argc<=1 )
{
trace.info() << "Illustration of homotopic thinning of a vol file with 3D viewer."<<std::endl
<< std::endl << "Basic usage: "<<std::endl
<< "\thomotopicThinning3d [options] --input <volFileName>"<<std::endl
<< general_opt << "\n";
return 0;
}
//Parse options
if ( ! ( vm.count ( "input" ) ) ) missingParam ( "--input" );
std::string filename = vm["input"].as<std::string>();
typedef ImageSelector < Z3i::Domain, unsigned char>::Type Image;
Image image = VolReader<Image>::importVol ( filename );
trace.beginBlock("DT Computation");
typedef DistanceTransformation<Image, 0> DTL2;
DTL2 dtL2;
DTL2::OutputImage resultL2 = dtL2.compute ( image );
trace.endBlock();
trace.info() <<image<<std::endl;
// Domain cretation from two bounding points.
Point c( 0, 0, 0 );
Point p1( -50, -50, -50 );
Point p2( 50, 50, 50 );
Domain domain( p1, p2 );
trace.beginBlock("Constructing Set");
DigitalSet shape_set( domain );
SetPredicate<DigitalSet> set3dPredicate( shape_set );
SetFromImage<DigitalSet>::append<Image>(shape_set, image,
0, 255);
trace.info() << shape_set<<std::endl;
trace.endBlock();
trace.beginBlock("Computing skeleton");
Object26_6 shape( dt26_6, shape_set );
int nb_simple=0;
int layer = 1;
std::queue<DigitalSet::Iterator> Q;
do
{
trace.info() << "Layer: "<< layer << std::endl;
int nb=0;
DigitalSet & S = shape.pointSet();
for ( DigitalSet::Iterator it = S.begin(); it != S.end(); ++it )
{
trace.progressBar((double)nb, (double)S.size());
trace.info() << nb<<" "; nb++;
if (resultL2( *it ) <= layer*layer)
{
if ( shape.isSimple( *it ) )
Q.push( it );
}
}
nb_simple = 0;
while ( ! Q.empty() )
{
DigitalSet::Iterator it = Q.front();
Q.pop();
if ( shape.isSimple( *it ) )
{
S.erase( *it );
++nb_simple;
}
}
trace.info() << "Nb simple points : "<<nb_simple<<std::endl;
++layer;
}
while ( nb_simple != 0 );
trace.endBlock();
DigitalSet & S = shape.pointSet();
trace.info() << "Skeleton--> "<<S<<std::endl;
// Display by using two different list to manage OpenGL transparency.
QApplication application(argc,argv);
Viewer3D viewer;
viewer.setWindowTitle("simpleExample3DViewer");
viewer.show();
viewer << SetMode3D( shape_set.className(), "Paving" );
viewer << CustomColors3D(Color(25,25,255, 255), Color(25,25,255, 255));
viewer << S ;
viewer << SetMode3D( shape_set.className(), "PavingTransp" );
viewer << CustomColors3D(Color(250, 0,0, 25), Color(250, 0,0, 5));
viewer << shape_set;
viewer<< Viewer3D::updateDisplay;
return application.exec();
}
示例9: main
int main( int argc, char** argv )
{
std::string inputFilename = examplesPath + "samples/Al.100.vol";
//------------
typedef SpaceND<3> Space4Type;
typedef HyperRectDomain<Space4Type> TDomain;
typedef TDomain::Point Point;
QApplication application(argc,argv);
Viewer3D viewer;
viewer.setWindowTitle("simpleViewer");
viewer.show();
//Default image selector = STLVector
typedef ImageSelector<TDomain, unsigned char>::Type Image;
Image image = VolReader<Image>::importVol( inputFilename );
TDomain domain(image.lowerBound(), image.upperBound());
Image imageSeeds (image.lowerBound(), image.upperBound());
for ( Image::Iterator it = imageSeeds.begin(), itend = imageSeeds.end();it != itend; ++it)
(*it)=1;
Z3i::Point p0(10,10,10);
//imageSeeds.setValue(p0, 0 );
randomSeeds(imageSeeds, 70, 0);
//Distance transformation computation
typedef ImageSelector<TDomain, long int>::Type ImageLong;
typedef DistanceTransformation<Image, 2> DTL2;
typedef DistanceTransformation<Image, 0> DTLInf;
typedef DistanceTransformation<Image, 1> DTL1;
DTL2 dtL2;
DTLInf dtLinf;
DTL1 dtL1;
dtL1.checkTypesValidity ( imageSeeds );
DTL1::OutputImage resultL1 = dtL1.compute ( imageSeeds );
unsigned int min = 0;
unsigned int max = 0;
for(DTL1::OutputImage::ConstIterator it = resultL1.begin(), itend=resultL1.end();
it!=itend;
++it)
{
if( (*it) < min )
min=(*it);
if( (*it) > max )
max=(*it);
}
GradientColorMap<long> gradient( 0,30);
gradient.addColor(Color::Red);
gradient.addColor(Color::Yellow);
gradient.addColor(Color::Green);
gradient.addColor(Color::Cyan);
gradient.addColor(Color::Blue);
gradient.addColor(Color::Magenta);
gradient.addColor(Color::Red);
viewer << SetMode3D( (*(domain.begin())).styleName(), "Paving" );
for(TDomain::ConstIterator it = domain.begin(), itend=domain.end();
it!=itend;
++it){
unsigned int valDist= resultL1( (*it) );
Color c= gradient(valDist);
if(resultL1(*it)<=30 ){
viewer << CustomColors3D(Color((float)(c.red()),
(float)(c.green()),
(float)(c.blue(),205)),
Color((float)(c.red()),
(float)(c.green()),
(float)(c.blue()),205));
viewer << *it ;
}
}
//viewer << ClippingPlane(1,0,0,-60);
viewer<< Viewer3D::updateDisplay;
return application.exec();
}
示例10: main
int main( int argc, char** argv )
{
QApplication application(argc,argv);
Viewer3D<> viewer;
viewer.setWindowTitle("simpleViewer");
viewer.show();
trace.beginBlock ( "Testing class 3DDomain2DView" );
Z2i::Point p1( 0, 0 );
Z2i::Point p2( 10, 15 );
Z3i::Point p13D( 0, 0, 0 );
Z3i::Point p23D( 10, 15, 0 );
Z3i::Point p13Dt( 20, 20, 20 );
Z3i::Point p23Dt( 30, 35, 20 );
Z3i::Point p13Dtt( 40, 20, 20 );
Z3i::Point p23Dtt( 50, 35, 20 );
HyperRectDomain<Z2i::Space> dom ( p1,p2 );
HyperRectDomain<Z2i::Space> dom2 ( p1,p2 );
HyperRectDomain<Z2i::Space> dom3 ( p1,p2 );
HyperRectDomain<Z2i::Space> dom4 ( p1,p2 );
HyperRectDomain<Z2i::Space> dom5 ( p1,p2 );
HyperRectDomain<Z2i::Space> dom6 ( p1,p2 );
HyperRectDomain<Z2i::Space> dom7 ( p1,p2 );
HyperRectDomain<Z2i::Space> dom8 ( p1,p2 );
HyperRectDomain<Z2i::Space> dom9 ( p1,p2 );
viewer << p13D << p23D << p13Dt << p23Dt << p13Dtt << p23Dtt;
viewer << dom << dom2 << dom3;
viewer << SetMode3D( dom4.className(), "Grid" );
viewer << dom4 << dom5 << dom6;
viewer << SetMode3D( dom4.className(), "Grid" );
viewer << dom7 << dom8 << dom9;
viewer << Update2DDomainPosition<Space, KSpace>(0, Viewer3D<Space, KSpace>::xDirection, 0, 0, 0);
viewer << Update2DDomainPosition<Space, KSpace>(1, Viewer3D<Space, KSpace>::yDirection, 0, 0, 0);
viewer << Update2DDomainPosition<Space, KSpace>(2, Viewer3D<Space, KSpace>::zDirection, 0, 0, 0);
viewer << Update2DDomainPosition<Space, KSpace>(3, Viewer3D<Space, KSpace>::xDirection, 0, 0, 0);
viewer << Update2DDomainPosition<Space, KSpace>(4, Viewer3D<Space, KSpace>::yDirection, 0, 0, 0);
viewer << Update2DDomainPosition<Space, KSpace>(5, Viewer3D<Space, KSpace>::zDirection, 0, 0, 0);
viewer << Update2DDomainPosition<Space, KSpace>(6, Viewer3D<Space, KSpace>::xDirection, 0, 0, 0);
viewer << Update2DDomainPosition<Space, KSpace>(7, Viewer3D<Space, KSpace>::yDirection, 0, 0, 0);
viewer << Update2DDomainPosition<Space, KSpace>(8, Viewer3D<Space, KSpace>::zDirection, 0, 0, 0);
viewer << DGtal::Translate2DDomain(3, 20, 20 ,20);
viewer << DGtal::Translate2DDomain(4, 20, 20 ,20);
viewer << DGtal::Translate2DDomain(5, 20, 20 ,20);
viewer << DGtal::Translate2DDomain(6, 40, 20 ,20);
viewer << DGtal::Translate2DDomain(7, 40, 20 ,20);
viewer << DGtal::Translate2DDomain(8, 40, 20 ,20);
viewer << Viewer3D<>::updateDisplay;
bool res = application.exec();
trace.emphase() << ( res ? "Passed." : "Error." ) << endl;
trace.endBlock();
return res ? 0 : 1;
}
示例11: main
int main(int argc, char **argv)
{
//Reading the image
try
{
typedef ImageContainerBySTLVector< Z2i::Domain, unsigned char> Image;
Image image = GenericReader<Image>::import("church.pgm");
//You can access to image domain and values
trace.info() << image.domain()<<std::endl;
trace.info() << "Value at (5,5)="<< (int)image( Z2i::Point(5,5) )<<std::endl;
//Creating the viewer
// press 'h' for help
QApplication application(argc,argv);
Viewer3D<> viewer;
viewer.setWindowTitle("simpleViewer");
viewer.show();
//Display 2 voxels
viewer << Z3i::Point(2,3,5) ;
viewer << Z3i::Point(3,2,1) ;
//Display a triangle
Z3i::RealPoint p1(1.0,0.0,0.0),
p2(0.0,1.0,0.0),
p3(0.0,0.0,1.0);
viewer.addTriangle(p1,p2,p3);
//Display a green triangle (with shift)
Z3i::RealPoint shift(3.0,0.0,0.0);
viewer<< CustomColors3D(Color(0, 250,0),Color(0, 250,0));
viewer.addTriangle(p1+shift,
p2+shift,
p3+shift);
//A triangle whose color is given by a colormap on scalar function
// (see colormaps http://libdgtal.org/doc/nightly/moduleIO.html)
// scalar are 'unsigned char' type here (and we want the 128th color)
unsigned char maxscalar=255;
unsigned char minscalar=0;
HueShadeColorMap<unsigned> huemap(minscalar,maxscalar);
Z3i::RealPoint shift2(5.0,0.0,0.0);
viewer<< CustomColors3D(huemap(128),
huemap(128));
viewer.addTriangle(p1+shift2,
p2+shift2,
p3+shift2);
//Important: we need to update the display
viewer << Viewer3D<>::updateDisplay;
//infinite loop (ESC to close the viewer)
bool res = application.exec();
return res;
}
catch(const std::exception& ex)
{
trace.info()<< "Error when reading the file "<< ex.what()<< std::endl;
exit(2);
}
}
示例12: main
int main( int argc, char** argv )
{
// parse command line ----------------------------------------------
po::options_description general_opt("Allowed options are: ");
general_opt.add_options()
("help,h", "display this message")
("input-file,i", po::value<std::string>(), "vol file (.vol) , pgm3d (.p3d or .pgm3d, pgm (with 3 dims)) file or sdp (sequence of discrete points)" )
("thresholdMin,m", po::value<int>()->default_value(0), "threshold min to define binary shape" )
("thresholdMax,M", po::value<int>()->default_value(255), "threshold max to define binary shape" )
("numMaxVoxel,n", po::value<int>()->default_value(500000), "set the maximal voxel number to be displayed." )
#ifdef WITH_ITK
("dicomMin", po::value<int>()->default_value(-1000), "set minimum density threshold on Hounsfield scale")
("dicomMax", po::value<int>()->default_value(3000), "set maximum density threshold on Hounsfield scale")
#endif
("transparency,t", po::value<uint>()->default_value(255), "transparency") ;
bool parseOK=true;
po::variables_map vm;
try{
po::store(po::parse_command_line(argc, argv, general_opt), vm);
}catch(const std::exception& ex){
parseOK=false;
trace.info()<< "Error checking program options: "<< ex.what()<< endl;
}
po::notify(vm);
if( !parseOK || vm.count("help")||argc<=1)
{
std::cout << "Usage: " << argv[0] << " [input-file]\n"
<< "Display volume file as a voxel set by using QGLviewer"<< endl
<< general_opt << "\n";
return 0;
}
if(! vm.count("input-file"))
{
trace.error() << " The file name was defined" << endl;
return 0;
}
string inputFilename = vm["input-file"].as<std::string>();
int thresholdMin = vm["thresholdMin"].as<int>();
int thresholdMax = vm["thresholdMax"].as<int>();
unsigned char transp = vm["transparency"].as<uint>();
bool limitDisplay=false;
if(vm.count("numMaxVoxel")){
limitDisplay=true;
}
unsigned int numDisplayedMax = vm["numMaxVoxel"].as<int>();
QApplication application(argc,argv);
Viewer3D<> viewer;
viewer.setWindowTitle("simple Volume Viewer");
viewer.show();
typedef ImageSelector<Domain, unsigned char>::Type Image;
string extension = inputFilename.substr(inputFilename.find_last_of(".") + 1);
if(extension!="vol" && extension != "p3d" && extension != "pgm3D" && extension != "pgm3d" && extension != "sdp" && extension != "pgm"
#ifdef WITH_ITK
&& extension !="dcm"
#endif
){
trace.info() << "File extension not recognized: "<< extension << std::endl;
return 0;
}
if(extension=="vol" || extension=="pgm3d" || extension=="pgm3D"
#ifdef WITH_ITK
|| extension =="dcm"
#endif
){
unsigned int numDisplayed=0;
#ifdef WITH_ITK
int dicomMin = vm["dicomMin"].as<int>();
int dicomMax = vm["dicomMax"].as<int>();
typedef DGtal::RescalingFunctor<int ,unsigned char > RescalFCT;
Image image = extension == "dcm" ? DicomReader< Image, RescalFCT >::importDicom( inputFilename,
RescalFCT(dicomMin,
dicomMax,
0, 255) ) :
GenericReader<Image>::import( inputFilename );
#else
Image image = GenericReader<Image>::import (inputFilename );
#endif
trace.info() << "Image loaded: "<<image<< std::endl;
Domain domain = image.domain();
GradientColorMap<long> gradient( thresholdMin, thresholdMax);
gradient.addColor(Color::Blue);
gradient.addColor(Color::Green);
gradient.addColor(Color::Yellow);
gradient.addColor(Color::Red);
for(Domain::ConstIterator it = domain.begin(), itend=domain.end(); it!=itend; ++it){
unsigned char val= image( (*it) );
if(limitDisplay && numDisplayed > numDisplayedMax)
break;
Color c= gradient(val);
if(val<=thresholdMax && val >=thresholdMin){
viewer << CustomColors3D(Color((float)(c.red()), (float)(c.green()),(float)(c.blue()), transp),
//.........这里部分代码省略.........
示例13: main
int main( int argc, char** argv )
{
// parse command line ----------------------------------------------
po::options_description general_opt("Allowed options are: ");
general_opt.add_options()
("help,h", "display this message")
("input-file,i", po::value<std::string>(), "volume file" )
("thresholdMin,m", po::value<int>()->default_value(0), "threshold min to define binary shape" )
("thresholdMax,M", po::value<int>()->default_value(255), "threshold max to define binary shape" )
("transparency,t", po::value<uint>()->default_value(255), "transparency") ;
bool parseOK=true;
po::variables_map vm;
try{
po::store(po::parse_command_line(argc, argv, general_opt), vm);
}catch(const std::exception& ex){
parseOK=false;
trace.info()<< "Error checking program options: "<< ex.what()<< endl;
}
po::notify(vm);
if( !parseOK || vm.count("help")||argc<=1)
{
std::cout << "Usage: " << argv[0] << " [input-file]\n"
<< "Display volume file as a voxel set by using QGLviewer"
<< general_opt << "\n";
return 0;
}
if(! vm.count("input-file"))
{
trace.error() << " The file name was defined" << endl;
return 0;
}
string inputFilename = vm["input-file"].as<std::string>();
int thresholdMin = vm["thresholdMin"].as<int>();
int thresholdMax = vm["thresholdMax"].as<int>();
unsigned char transp = vm["transparency"].as<uint>();
QApplication application(argc,argv);
Viewer3D viewer;
viewer.setWindowTitle("simple Volume Viewer");
viewer.show();
typedef ImageSelector<Domain, unsigned char>::Type Image;
Image image = VolReader<Image>::importVol( inputFilename );
trace.info() << "Image loaded: "<<image<< std::endl;
Domain domain = image.domain();
GradientColorMap<long> gradient( thresholdMin, thresholdMax);
gradient.addColor(Color::Blue);
gradient.addColor(Color::Green);
gradient.addColor(Color::Yellow);
gradient.addColor(Color::Red);
for(Domain::ConstIterator it = domain.begin(), itend=domain.end(); it!=itend; ++it){
unsigned char val= image( (*it) );
Color c= gradient(val);
if(val<=thresholdMax && val >=thresholdMin){
viewer << CustomColors3D(Color((float)(c.red()), (float)(c.green()),(float)(c.blue()), transp),
Color((float)(c.red()), (float)(c.green()),(float)(c.blue()), transp));
viewer << *it;
}
}
viewer << Viewer3D::updateDisplay;
return application.exec();
}
示例14: main
int main( int argc, char** argv )
{
QApplication application(argc,argv);
Viewer3D<> viewer;
viewer.setWindowTitle("simpleViewer");
viewer.show();
typedef ImageSelector < Z3i::Domain, unsigned char>::Type Image3D;
typedef ImageSelector < Z2i::Domain, unsigned char>::Type Image2D;
typedef DGtal::ConstImageAdapter<Image3D, Image2D::Domain, DGtal::Projector< Z3i::Space>,
Image3D::Value, DGtal::DefaultFunctor > SliceImageAdapter;
typedef DGtal::ConstImageAdapter<Image3D, Z2i::Domain, DGtal::Point2DEmbedderIn3D<DGtal::Z3i::Domain>,
Image3D::Value, DGtal::DefaultFunctor > ImageAdapterExtractor;
DGtal::Projector<DGtal::Z2i::Space> invFunctor(2);
// Importing a 3D image
std::string filename = examplesPath + "samples/lobster.vol";
Image3D image = VolReader<Image3D>::importVol( filename );
DGtal::Z2i::Domain domain(invFunctor(image.domain().lowerBound()),
invFunctor(image.domain().upperBound()));
DGtal::DefaultFunctor idV;
trace.beginBlock ( "Example extract2DImagesFrom3D" );
// Extracting 2D slices ... and visualisation on 3DViewer
unsigned int pos=0;
for (unsigned int i=0; i<30; i+=5){
DGtal::Projector<DGtal::Z3i::Space> aSliceFunctor(i); aSliceFunctor.initAddOneDim(2);
SliceImageAdapter sliceImageZ(image, domain, aSliceFunctor, idV);
viewer << sliceImageZ;
viewer << DGtal::UpdateImagePosition<Z3i::Space, Z3i::KSpace>(pos, Viewer3D<>::zDirection, i*20, i*20, i*20 );
pos++;
}
// Visu extraction from points
const int IMAGE_PATCH_WIDTH = 40;
DGtal::Z3i::Point ptCenter(155, 155, 20);
DGtal::Z2i::Domain domainImage2D (DGtal::Z2i::Point(0,0),
DGtal::Z2i::Point(IMAGE_PATCH_WIDTH, IMAGE_PATCH_WIDTH));
DGtal::Point2DEmbedderIn3D<DGtal::Z3i::Domain > embedder(image.domain(), ptCenter,
DGtal::Z3i::RealPoint(1,-1,1),
IMAGE_PATCH_WIDTH);
ImageAdapterExtractor extractedImage(image, domainImage2D, embedder, idV);
viewer << extractedImage;
viewer << DGtal::UpdateImage3DEmbedding<Z3i::Space, Z3i::KSpace>(pos,
embedder(Z2i::Point(0,0)),
embedder(Z2i::Point(IMAGE_PATCH_WIDTH,0)),
embedder(domainImage2D.upperBound()),
embedder(Z2i::RealPoint(0, IMAGE_PATCH_WIDTH)));
viewer << DGtal::Viewer3D<>::updateDisplay;
application.exec();
return 0;
}
示例15: main
//.........这里部分代码省略.........
if(vectCol.size()!=4 && vectCol.size()!=8 ) {
trace.error() << "colors specification should contain R,G,B and Alpha values"<< std::endl;
}
meshColorR = vectCol[0];
meshColorG = vectCol[1];
meshColorB = vectCol[2];
meshColorA = vectCol[3];
if(vectCol.size() == 8) {
meshColorRLine = vectCol[4];
meshColorGLine = vectCol[5];
meshColorBLine = vectCol[6];
meshColorALine = vectCol[7];
}
}
if(vm.count("customColorSDP")) {
std::vector<unsigned int > vectCol = vm["customColorSDP"].as<std::vector<unsigned int> >();
if(vectCol.size()!=4) {
trace.error() << "colors specification should contain R,G,B and Alpha values"<< std::endl;
}
sdpColorR = vectCol[0];
sdpColorG = vectCol[1];
sdpColorB = vectCol[2];
sdpColorA = vectCol[3];
}
QApplication application(argc,argv);
Viewer3D<> viewer;
std::stringstream title;
title << "Simple Mesh Viewer: " << inputFilenameVect[0];
viewer.setWindowTitle(title.str().c_str());
viewer.show();
viewer.myGLLineMinWidth = lineWidth;
viewer.setGLScale(sx, sy, sz);
bool invertNormal= vm.count("invertNormal");
double ballRadius = vm["SDPradius"].as<double>();
trace.info() << "Importing mesh... ";
std::vector<Mesh<DGtal::Z3i::RealPoint> > vectMesh;
for(unsigned int i = 0; i< inputFilenameVect.size(); i++) {
Mesh<DGtal::Z3i::RealPoint> aMesh(!vm.count("customColorMesh"));
aMesh << inputFilenameVect[i];
vectMesh.push_back(aMesh);
}
bool import = vectMesh.size()==inputFilenameVect.size();
if(!import) {
trace.info() << "File import failed. " << std::endl;
return 0;
}
trace.info() << "[done]. "<< std::endl;
if(vm.count("displaySDP")) {
std::string filenameSDP = vm["displaySDP"].as<std::string>();
vector<Z3i::RealPoint> vectPoints;
vectPoints = PointListReader<Z3i::RealPoint>::getPointsFromFile(filenameSDP);
viewer << CustomColors3D(Color(sdpColorR, sdpColorG, sdpColorB, sdpColorA),
Color(sdpColorR, sdpColorG, sdpColorB, sdpColorA));
for(unsigned int i=0; i< vectPoints.size(); i++) {