int main() { const std::string examplesPath= "/home/remi/pred/DGtal_PRED/Source/Experience/"; std::string filename = examplesPath + "samples/contourS.pgm"; Image image = DGtal::PNMReader<Image>::importPGM(filename); DGtal::trace.info() << "Imported image: "<<image<<endl; DGtal::Board2D aBoard; aBoard << image.domain(); aBoard.saveSVG("imageDomainTuto.svg"); aBoard.clear(); Display2DFactory::drawImage<Gray>(aBoard, image, (unsigned char)0, (unsigned char)255); aBoard.saveEPS("imageDomainTuto2.eps"); typedef IntervalForegroundPredicate<Image> Binarizer; Binarizer b(image,1, 135); typedef DGtal::DistanceTransformation<Z2i::Space, Binarizer, 2> DTL2; typedef DTL2::OutputImage OutputImage; DTL2 dt(image.domain(),b); OutputImage result = dt.compute(); OutputImage::Value maxDT = (*std::max_element(result.begin(), result.end())); typedef DGtal::HueShadeColorMap<OutputImage::Value,2> HueTwice; aBoard.clear(); Display2DFactory::drawImage<HueTwice>(aBoard, result, (OutputImage::Value)0, (OutputImage::Value)maxDT); aBoard.saveEPS("imageDomainTuto3.eps"); }
int main(int argc, char **argv) { QApplication application(argc,argv); DGtal::Viewer3D viewer; DGtal::Z3i::Point center(0,0,0); DGtal::ImplicitRoundedHyperCube<Z3i::Space> myCube( center, 20, 2.8); DGtal::Z3i::Domain domain(myCube.getLowerBound(), myCube.getUpperBound()); DGtal::Z3i::DigitalSet mySet(domain); DGtal::Shapes<DGtal::Z3i::Domain>::euclideanShaper( mySet, myCube); viewer.show(); // viewer << mySet << DGtal::Display3D::updateDisplay; //! [ImageSetDT-DT] typedef DGtal::SetPredicate<DGtal::Z3i::DigitalSet> Predicate; Predicate aPredicate(mySet); typedef DGtal::DistanceTransformation<Z3i::Space, Predicate, 2> DTL2; typedef DTL2::OutputImage OutputImage; DTL2 dt(domain,aPredicate); OutputImage result = dt.compute(); //! [ImageSetDT-DT] OutputImage::Value maxDT = (*std::max_element(result.begin(), result.end())); GradientColorMap<OutputImage::Value> gradient( 0, maxDT); gradient.addColor(DGtal::Color::Blue); gradient.addColor(DGtal::Color::Green); gradient.addColor(DGtal::Color::Yellow); gradient.addColor(DGtal::Color::Red); for(Z3i::Domain::ConstIterator it = domain.begin(), itend = domain.end(); it != itend; ++it) if (result(*it) != 0) { OutputImage::Value val= result( *it ); DGtal::Color c= gradient(val); viewer << DGtal::CustomColors3D(c,c) << *it ; } viewer << DGtal::ClippingPlane(1,0,0,0); //@todo updateDisplay is in Display3D or Viewer3D (cf doc)? viewer << DGtal::Display3D::updateDisplay; return application.exec(); }