DGtal 1.4.2
Loading...
Searching...
No Matches
freemanChainDisplay.cpp File Reference
#include <iostream>
#include <fstream>
#include "DGtal/base/Common.h"
#include "DGtal/kernel/domains/HyperRectDomain.h"
#include "DGtal/images/ImageSelector.h"
#include "DGtal/kernel/SpaceND.h"
#include "DGtal/base/BasicTypes.h"
#include "DGtal/geometry/curves/FreemanChain.h"
#include "DGtal/io/readers/STBReader.h"
#include "DGtal/io/boards/Board2D.h"
#include "DGtal/helpers/StdDefs.h"
#include "ConfigExamples.h"
Include dependency graph for freemanChainDisplay.cpp:

Go to the source code of this file.

Functions

int main ()
 

Detailed Description

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Author
Bertrand Kerautret (kerau.nosp@m.tre@.nosp@m.loria.nosp@m..fr ) LORIA (CNRS, UMR 7503), University of Nancy, France
Date
2010/12/01

An example of FreemanChain display with background source image.

This file is part of the DGtal library.

Definition in file freemanChainDisplay.cpp.

Function Documentation

◆ main()

int main ( void )

Definition at line 51 of file freemanChainDisplay.cpp.

52{
53
54 typedef SpaceND<2> Space2;
55 typedef HyperRectDomain<Space2> TDomain;
56
57 //Default image selector = STLVector
59
60 // Creating FreemanChain from file
61 std::string freemanChainFilename = examplesPath + "samples/contourS.fc";
62 fstream fst;
63 fst.open (freemanChainFilename.c_str(), ios::in);
65 fst.close();
66
67 // Importing image with MagickReader
68 STBReader<Image> reader;
69 std::string filenameImage = examplesPath + "samples/contourS.png";
70 Image img = reader.import( filenameImage );
71
72 Point ptInf = img.domain().lowerBound();
73 Point ptSup = img.domain().upperBound();
74 unsigned int width = abs(ptSup[0]-ptInf[0]+1);
75 unsigned int height = abs(ptSup[1]-ptInf[1]+1);
76
77 // Draw the freemanchain and the contour
78 Board2D dgBoard;
79
80 dgBoard.drawImage(filenameImage, 0,height-1, width, height );
81 dgBoard << fc;
82
83 dgBoard.saveEPS("freemanChainDisplay.eps");
84 dgBoard.saveSVG("freemanChainDisplay.svg");
85 dgBoard.saveFIG("freemanChainDisplay.fig");
86
87 return 0;
88}
Aim: This class specializes a 'Board' class so as to display DGtal objects more naturally (with <<)....
Definition Board2D.h:71
Aim: Parallelepidec region of a digital space, model of a 'CDomain'.
Aim: implements association bewteen points lying in a digital domain and values.
Definition Image.h:70
Aim: Image reader using the stb_image.h header only code.
Definition STBReader.h:62
static ImageContainer import(const std::string &filename, const Functor &aFunctor=Functor())
void saveFIG(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0, bool includeFIGHeader=true) const
Definition Board.cpp:906
void saveEPS(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
Definition Board.cpp:804
void drawImage(std::string filename, double x, double y, double width, double height, int depthValue=-1, double alpha=1.0)
Definition Board.cpp:427
void saveSVG(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
Definition Board.cpp:1011
ImageContainerBySTLVector< Domain, Value > Image

References LibBoard::Board::drawImage(), DGtal::STBReader< TImageContainer, TFunctor >::import(), LibBoard::Board::saveEPS(), LibBoard::Board::saveFIG(), and LibBoard::Board::saveSVG().