DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
topology/3dBorderExtractionImg.cpp

Objects have a border, which are the points which touch the complement in the sense of background adjacency. A border of an object is itself an object, with the same topology as the object.

See also:
Border of a digital object
visuBorderExtraction2.png
Border extraction visualisation from imported volume
#include <iostream>
#include "DGtal/base/Common.h"
#include <QtGui/qapplication.h>
#include "DGtal/base/Common.h"
#include "DGtal/io/readers/VolReader.h"
#include "DGtal/images/ImageSelector.h"
#include "DGtal/images/imagesSetsUtils/SetFromImage.h"
#include "DGtal/io/viewers/Viewer3D.h"
#include "DGtal/helpers/StdDefs.h"
#include "ConfigExamples.h"
using namespace std;
using namespace DGtal;
int main( int argc, char** argv )
{
std::string inputFilename = examplesPath + "samples/Al.100.vol";
QApplication application(argc,argv);
Viewer3D viewer;
viewer.show();
// Image image = VolReader<Image>::VolReader<Image>::importVol(inputFilename);
Image image = VolReader<Image>::importVol(inputFilename);
Z3i::DigitalSet set3d (image.domain());
SetFromImage<Z3i::DigitalSet>::append<Image>(set3d, image, 0,255);
Z3i::Object18_6 obj3d (Z3i::dt18_6, set3d);
Z3i::Object18_6 border = obj3d.border();
viewer << border;
viewer << ClippingPlane(0,1,0, -40) << Display3D::updateDisplay;
//viewer << ClippingPlane(0,-1,0, 70)<< Viewer3D::updateDisplay;
//viewer << ClippingPlane(1,0.1,0, -50)<< Viewer3D::updateDisplay;
//viewer << ClippingPlane(1,0.1,0, -50)<< Viewer3D::updateDisplay;
return application.exec();
}
// //