42 #include "DGtal/base/Common.h"
43 #include "DGtal/kernel/SpaceND.h"
44 #include "DGtal/kernel/domains/HyperRectDomain.h"
45 #include "DGtal/images/ImageSelector.h"
46 #include "DGtal/io/readers/VolReader.h"
48 #include "DGtal/io/Color.h"
49 #include "DGtal/io/colormaps/GradientColorMap.h"
50 #include "DGtal/io/DrawWithDisplay3DModifier.h"
51 #include "DGtal/io/viewers/Viewer3D.h"
53 #include "DGtal/kernel/SpaceND.h"
54 #include "DGtal/kernel/domains/HyperRectDomain.h"
55 #include "DGtal/images/ImageSelector.h"
57 #include "DGtal/geometry/volumes/distance/DistanceTransformation.h"
58 #include "DGtal/images/SimpleThresholdForegroundPredicate.h"
59 #include "DGtal/helpers/StdDefs.h"
61 #include "ConfigExamples.h"
63 #include "DGtal/helpers/StdDefs.h"
68 using namespace DGtal;
80 template<
typename Image>
81 void randomSeeds(
Image &image,
const unsigned int nb,
const int value)
89 for (
unsigned int k = 0 ; k < nb; k++)
91 for (
unsigned int dim = 0; dim < Image::dimension; dim++)
92 p[dim] = rand() % (ext[dim]) + low[dim];
98 using namespace DGtal;
100 int main(
int argc,
char** argv )
103 std::string inputFilename = examplesPath +
"samples/Al.100.vol";
106 QApplication application(argc,argv);
108 viewer.setWindowTitle(
"simpleViewer");
119 Image imageSeeds ( domain);
120 for (
Image::Iterator it = imageSeeds.begin(), itend = imageSeeds.end();it != itend; ++it)
124 randomSeeds(imageSeeds, 70, 0);
129 Predicate aPredicate(imageSeeds,0);
132 DTL2 dtL2(&domain, &aPredicate, &Z3i::l2Metric);
134 unsigned int min = 0;
135 unsigned int max = 0;
136 for(DTL2::ConstRange::ConstIterator it = dtL2.constRange().begin(),
137 itend=dtL2.constRange().end();
149 gradient.addColor(Color::Red);
150 gradient.addColor(Color::Yellow);
151 gradient.addColor(Color::Green);
152 gradient.addColor(Color::Cyan);
153 gradient.addColor(Color::Blue);
154 gradient.addColor(Color::Magenta);
155 gradient.addColor(Color::Red);
164 double valDist= dtL2( (*it) );
165 Color c= gradient(valDist);
167 if(dtL2(*it)<=30 && image(*it)>0){
170 (
float)(c.
blue(),205)),
173 (
float)(c.
blue()),205));
177 viewer<< Viewer3D<>::updateDisplay;
179 return application.exec();
std::vector< Value >::iterator Iterator
Aim: This class template may be used to (linearly) convert scalar values in a given range into a colo...
const ConstIterator & begin() const
Aim: implements association bewteen points lying in a digital domain and values.
const ConstIterator & end() const
void setValue(const Point &aPoint, const Value &aValue)
Aim: Define a simple Foreground predicate thresholding image values given a single thresold...
Aim: implements methods to read a "Vol" file format.
DGtal is the top-level namespace which contains all DGtal functions and types.
Structure representing an RGB triple with alpha component.
void green(const unsigned char aGreenValue)
const Domain & domain() const
virtual void show()
Overload QWidget method in order to add a call to updateList() method (to ensure that the lists are w...
void red(const unsigned char aRedValue)
Modifier class in a Display3D stream. Useful to choose your own mode for a given class. Realizes the concept CDrawableWithDisplay3D.
void blue(const unsigned char aBlueValue)