DGtal 1.3.0
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"

Go to the source code of this file.


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/.

Bertrand Kerautret (kerau.nosp@m.tre@.nosp@m.loria.nosp@m..fr ) LORIA (CNRS, UMR 7503), University of Nancy, France

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.

54 typedef SpaceND<2> Space2;
55 typedef HyperRectDomain<Space2> TDomain;
57 //Default image selector = STLVector
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();
67 // Importing image with MagickReader
68 STBReader<Image> reader;
69 std::string filenameImage = examplesPath + "samples/contourS.png";
70 Image img = reader.import( filenameImage );
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);
77 // Draw the freemanchain and the contour
78 Board2D dgBoard;
80 dgBoard.drawImage(filenameImage, 0,height-1, width, height );
81 dgBoard << fc;
83 dgBoard.saveEPS("freemanChainDisplay.eps");
84 dgBoard.saveSVG("freemanChainDisplay.svg");
85 dgBoard.saveFIG("freemanChainDisplay.fig");
87 return 0;
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:907
void saveEPS(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
Definition: Board.cpp:805
void drawImage(std::string filename, double x, double y, double width, double height, int depthValue=-1, double alpha=1.0)
Definition: Board.cpp:428
void saveSVG(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
Definition: Board.cpp:1012

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