SMIL  1.0.4
Watershed Extinction

Detailed Description

+ Collaboration diagram for Watershed Extinction:

Classes

struct  CrossVectorComp< T >
 
class  ExtinctionFlooding< T, labelT, extValType, HQ_Type >
 Generic extinction flooding process. More...
 
class  AreaExtinctionFlooding< T, labelT, extValType, HQ_Type >
 
class  VolumeExtinctionFlooding< T, labelT, extValType, HQ_Type >
 
class  DynamicExtinctionFlooding< T, labelT, extValType, HQ_Type >
 

Functions

 CrossVectorComp (const vector< T > &vec)
 
bool operator() (const T &i, const T &j)
 
virtual void createBasins (const UINT &nbr)
 
virtual void deleteBasins ()
 
virtual void insertPixel (const size_t &, const labelT &)
 
virtual void raiseLevel (const labelT &)
 
virtual labelT mergeBasins (const labelT &, const labelT &)
 
virtual void finalize (const labelT &)
 
virtual void updateEquTable (const labelT &lbl1, const labelT &lbl2)
 
virtual RES_T flood (const Image< T > &imIn, const Image< labelT > &imMarkers, Image< labelT > &imBasinsOut, const StrElt &se=DEFAULT_SE)
 
virtual RES_T flood (const Image< T > &imIn, const Image< labelT > &imMarkers, Image< labelT > &imBasinsOut, Graph< labelT, extValType > &_graph, const StrElt &se=DEFAULT_SE)
 
template<class outT >
RES_T floodWithExtValues (const Image< T > &imIn, const Image< labelT > &imMarkers, Image< outT > &imExtValOut, Image< labelT > &imBasinsOut, const StrElt &se=DEFAULT_SE)
 
template<class outT >
RES_T floodWithExtValues (const Image< T > &imIn, const Image< labelT > &imMarkers, Image< outT > &imExtValOut, const StrElt &se=DEFAULT_SE)
 
template<class outT >
RES_T floodWithExtRank (const Image< T > &imIn, const Image< labelT > &imMarkers, Image< outT > &imExtRankOut, Image< labelT > &imBasinsOut, const StrElt &se=DEFAULT_SE)
 
template<class outT >
RES_T floodWithExtRank (const Image< T > &imIn, const Image< labelT > &imMarkers, Image< outT > &imExtRankOut, const StrElt &se=DEFAULT_SE)
 
virtual RES_T initialize (const Image< T > &imIn, Image< labelT > &imLbl, const StrElt &se)
 
virtual RES_T processImage (const Image< T > &imIn, Image< labelT > &imLbl, const StrElt &se)
 
virtual void processMerges (void)
 
virtual void processPixel (const size_t &curOffset)
 
virtual void processNeighbor (const size_t &curOffset, const size_t &nbOffset)
 
virtual void createBasins (const UINT &nbr)
 
virtual void deleteBasins ()
 
virtual void insertPixel (const size_t &offset, const labelT &lbl)
 
virtual labelT mergeBasins (const labelT &lbl1, const labelT &lbl2)
 
virtual void finalize (const labelT &lbl)
 
virtual void createBasins (const UINT &nbr)
 
virtual void deleteBasins ()
 
virtual void insertPixel (const size_t &offset, const labelT &lbl)
 
virtual void raiseLevel (const labelT &lbl)
 
virtual labelT mergeBasins (const labelT &lbl1, const labelT &lbl2)
 
virtual void finalize (const labelT &lbl)
 
virtual labelT mergeBasins (const labelT &lbl1, const labelT &lbl2)
 
virtual void finalize (const labelT &lbl)
 
template<class T , class labelT , class outT >
RES_T watershedExtinction (const Image< T > &imIn, const Image< labelT > &imMarkers, Image< outT > &imOut, Image< labelT > &imBasinsOut, const char *extinctionType="v", const StrElt &se=DEFAULT_SE, bool rankOutput=true)
 
template<class T , class labelT , class outT >
RES_T watershedExtinction (const Image< T > &imIn, Image< labelT > &imMarkers, Image< outT > &imOut, const char *extinctionType="v", const StrElt &se=DEFAULT_SE, bool rankOutput=true)
 
template<class T , class outT >
RES_T watershedExtinction (const Image< T > &imIn, Image< outT > &imOut, const char *extinctionType="v", const StrElt &se=DEFAULT_SE, bool rankOutput=true)
 
template<class T , class labelT , class outT >
RES_T watershedExtinctionGraph (const Image< T > &imIn, const Image< labelT > &imMarkers, Image< labelT > &imBasinsOut, Graph< labelT, outT > &graph, const char *extinctionType="v", const StrElt &se=DEFAULT_SE)
 Calculation of the minimum spanning tree, simultaneously to the image flooding, with edges weighted according to volume extinction values. More...
 
template<class T , class labelT , class outT >
RES_T watershedExtinctionGraph (const Image< T > &imIn, Image< labelT > &imBasinsOut, Graph< labelT, outT > &graph, const char *extinctionType="v", const StrElt &se=DEFAULT_SE)
 
template<class T , class labelT >
Graph< labelT, labelT > watershedExtinctionGraph (const Image< T > &imIn, const Image< labelT > &imMarkers, Image< labelT > &imBasinsOut, const char *extinctionType="v", const StrElt &se=DEFAULT_SE)
 Warning: returns a graph with ranking values.
 
template<class T , class labelT >
Graph< labelT, labelT > watershedExtinctionGraph (const Image< T > &imIn, Image< labelT > &imBasinsOut, const char *extinctionType="v", const StrElt &se=DEFAULT_SE)
 

Variables

const vector< T > & compVec
 
UINT labelNbr
 
UINT basinNbr
 
currentLevel
 
vector< labelT > equivalentLabels
 
vector< extValType > extinctionValues
 
vector< UINT8 > imStatus
 
size_t lastOffset
 
std::vector< std::pair< labelT, labelT > > pendingMerges
 
std::vector< T > mergeLevels
 
Graph< labelT, extValType > * graph
 
vector< UINT > areas
 
vector< T > minValues
 
vector< UINT > areas
 
vector< UINT > volumes
 
vector< T > floodLevels
 

Function Documentation

◆ watershedExtinctionGraph()

RES_T smil::watershedExtinctionGraph ( const Image< T > &  imIn,
const Image< labelT > &  imMarkers,
Image< labelT > &  imBasinsOut,
Graph< labelT, outT > &  graph,
const char *  extinctionType = "v",
const StrElt se = DEFAULT_SE 
)

Calculation of the minimum spanning tree, simultaneously to the image flooding, with edges weighted according to volume extinction values.

Example

from smilPython import *
imIn = Image("https://smil.cmm.minesparis.psl.eu/images/lena.png")
imGrad = Image(imIn)
imMark = Image(imIn, "UINT16")
imBasins = Image(imMark)
gradient(imIn, imGrad)
hMinimaLabeled(imGrad, 5, imMark)
nRegions = 25
extType = "v"
# Graph version
imGraphOut = Image(imMark)
g = watershedExtinctionGraph(imGrad, imMark, imBasins, extType)
g.removeLowEdges(nRegions)
graphToMosaic(imBasins, g, imGraphOut)
# Re-labelize (usefull only to have the same label values in both versions)
label(imGraphOut, imGraphOut)
imGraphOut.showLabel()
# Image version
imImgOut = Image(imMark)
watershedExtinction(imGrad, imMark, imImgOut, imBasins, extType)
compare(imImgOut, ">", nRegions, 0, imMark, imMark);
basins(imGrad, imMark, imImgOut)
# Re-labelize (usefull only to have the same label values in both versions)
label(imImgOut, imImgOut)
imImgOut.showLabel()
RES_T compare(const Image< T1 > &imIn1, const char *compareType, const Image< T1 > &imIn2, const Image< T2 > &trueIm, const Image< T2 > &falseIm, Image< T2 > &imOut)
compare() - Compare each pixel of two images (or an image and a value)
Definition: DImageArith.hpp:1244
RES_T hMinimaLabeled(const Image< T1 > &imIn, const T1 &height, Image< T2 > &imOut, const StrElt &se=DEFAULT_SE)
hMinimaLabeled() - Calculate the h-minima and labelize them
Definition: DMorphoExtrema.hpp:182
size_t label(const Image< T1 > &imIn, Image< T2 > &imOut, const StrElt &se=DEFAULT_SE)
label() - Image labelization
Definition: DMorphoLabel.hpp:564
RES_T gradient(const Image< T > &imIn, Image< T > &imOut, const StrElt &se=DEFAULT_SE)
gradient() - Morphological gradient
Definition: DMorphoResidues.hpp:62
RES_T watershedExtinctionGraph(const Image< T > &imIn, const Image< labelT > &imMarkers, Image< labelT > &imBasinsOut, Graph< labelT, outT > &graph, const char *extinctionType="v", const StrElt &se=DEFAULT_SE)
Calculation of the minimum spanning tree, simultaneously to the image flooding, with edges weighted a...
Definition: DMorphoWatershedExtinction.hpp:602
RES_T basins(const Image< T > &imIn, const Image< labelT > &imMarkers, Image< labelT > &imBasinsOut, const StrElt &se=DEFAULT_SE)
Constrained basins.
Definition: DMorphoWatershed.hpp:363