A simple example illustrating the extraction of the sequence of surfels boudary. This program outputs this image.
#include <iostream>
#include "DGtal/base/Common.h"
#include "DGtal/topology/KhalimskySpaceND.h"
#include "DGtal/images/imagesSetsUtils/SetFromImage.h"
#include "DGtal/images/ImageSelector.h"
#include "DGtal/helpers/StdDefs.h"
#include "DGtal/topology/helpers/Surfaces.h"
#include "DGtal/io/readers/PGMReader.h"
#include "DGtal/io/colormaps/GradientColorMap.h"
#include "DGtal/io/boards/Board2D.h"
#include "DGtal/io/Color.h"
#include "ConfigExamples.h"
{
typedef ImageSelector < Z2i::Domain, int>::Type
Image;
std::string inputFilename = examplesPath + "samples/circleR10modif.pgm";
board << image.domain() << set2d;
board2 << image.domain() << set2d;
board3 << image.domain() << set2d;
bool space_ok = ks.
init( image.domain().lowerBound(), image.domain().upperBound(),
true );
std::vector<Z2i::SCell> vectBdrySCell;
ks, SAdj, set2d, aCell );
board <<
CustomStyle( (*(vectBdrySCell.begin())).className(),
unsigned int d=0;
std::vector<Z2i::SCell>::iterator it;
for ( it=vectBdrySCell.begin() ; it != vectBdrySCell.end(); it++ ){
cmap_grad( d )))<< *it;
d++;
}
std::set<Z2i::SCell> bdry;
( bdry,
std::set<Z2i::SCell>::iterator itB;
for ( itB=bdry.begin() ; itB != bdry.end(); itB++ ){
cmap_grad( d )))<< *itB;
d++;
}
std::vector< std::vector<Z2i::SCell> > vectContoursBdrySCell;
ks, SAdj, set2d );
d=0;
for(unsigned int i=0; i< vectContoursBdrySCell.size(); i++){
d++;
for(unsigned int j=0; j< vectContoursBdrySCell.at(i).size(); j++){
board3<<
CustomStyle(vectContoursBdrySCell.at(i).at(j).className() ,
cmap_grad3( d )))<<vectContoursBdrySCell.at(i).at(j) ;
}
}
board << aCell;
return (space_ok);
}
Aim: This class specializes a 'Board' class so as to display DGtal objects more naturally (with <<)....
Structure representing an RGB triple with alpha component.
Aim: A wrapper class around a STL associative container for storing sets of digital points within som...
Aim: This class template may be used to (linearly) convert scalar values in a given range into a colo...
void addColor(const Color &color)
Aim: This class is a model of CCellularGridSpaceND. It represents the cubical grid as a cell complex,...
const Point & lowerBound() const
Return the lower bound for digital points in this space.
bool init(const Point &lower, const Point &upper, bool isClosed)
Specifies the upper and lower bounds for the maximal cells in this space.
const Point & upperBound() const
Return the upper bound for digital points in this space.
Aim: A utility class for constructing surfaces (i.e. set of (n-1)-cells).
Aim: Represent adjacencies between surfel elements, telling if it follows an interior to exterior ord...
void saveFIG(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0, bool includeFIGHeader=true) const
void saveEPS(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
DGtal is the top-level namespace which contains all DGtal functions and types.
Custom style class redefining the pen color and the fill color. You may use Board2D::Color::None for ...
Aim: Import a 2D or 3D using the Netpbm formats (ASCII mode).
Aim: Define utilities to convert a digital set into an image.
Represents a signed cell in a cellular grid space by its Khalimsky coordinates and a boolean value.
ImageContainerBySTLVector< Domain, Value > Image