aimsalgo 6.0.0
Neuroimaging image processing
aims::ScaleSpace< Geom, Text > Class Template Reference

#include <aims/primalsketch/scalespace.h>

Inheritance diagram for aims::ScaleSpace< Geom, Text >:
Collaboration diagram for aims::ScaleSpace< Geom, Text >:

Classes

struct  BlobDescriptor
 

Public Types

enum  MeshShape { Surface , Tore }
 
enum  BlobSaddleType { Junction , Bottom }
 
enum  MeshGrowingMode { Translate , Scale , PushNormal }
 
enum  MergeCode { OK = 0 , PbUp = 1 , PbDown = 2 , PbBoth = 3 }
 

Public Member Functions

 ScaleSpace ()
 
virtual ~ScaleSpace ()
 
void PutSmoother (Smoother< Geom, Text > *blur)
 
ScaleLevel< Geom, Text > * Scale (float t)
 
Text & GetScaleImage (float t)
 
Text & GetOriginalImage ()
 
std::map< float, ScaleLevel< Geom, Text > * > GetScaleLevels ()
 
void AddScale (float t)
 
void RemoveScale (float t)
 
void GenerateDefaultScaleSpace (float tmax)
 
std::set< float > GetScaleList ()
 
void WriteScale (float t, std::string name)
 
void WriteScaleSpace (std::string name)
 
Texture< int > meshBlobExtract (const AimsSurface< 3, Void > &mesh, const Texture< float > &inittex, std::map< int, BlobDescriptor > &limits)
 
int blobToGraph (Graph &g, const Texture< int > &blobs, const AimsSurfaceTriangle &mesh, const AimsSurfaceTriangle &infl_mesh, const Texture< float > &values, float scale, std::map< int, BlobDescriptor > &limits, int startindex)
 
void cleanGraphScale (Graph &g, float scale)
 
MergeCode mergeGraphs (Graph &g, Graph &h)
 
void createSubMeshes (Graph &g, const AimsSurface< 3, Void > &mesh, float depl=0, float depl0=0, MeshShape ms=Surface, MeshGrowingMode gm=Scale, bool compressedMeshes=true)
 
void grayLevel2PrimalSketch (Graph &glevel, Graph &psketch)
 
std::multimap< float, unsigned > sortGLB (std::string key, const std::map< unsigned, Vertex * > &nodes, const std::map< unsigned, std::set< Vertex * > > &scblobs)
 
void GLBVertexToSSBVertex (Graph &psketch, const std::multimap< float, unsigned > &ordering, const std::map< unsigned, Vertex * > &nodes, const std::map< unsigned, std::set< Vertex * > > &scblobs)
 
void GLBEdgeToSSBEdge (Graph &glevel, Graph &psketch, const std::map< Vertex *, unsigned > &labels, const std::map< unsigned, Vertex * > &nodes)
 
void setGraphLabelAndName (const std::multimap< float, unsigned > &ordering, const std::map< unsigned, Vertex * > &nodes, const std::map< unsigned, std::set< Vertex * > > &scblobs)
 
float getRepresentativeScale (const std::set< Vertex * > &SSB)
 
carto::rc_ptr< AimsSurfaceTrianglegetRepresentativeBlobMesh (float scale0, const std::set< Vertex * > &SSB)
 
int adaptiveScaleSpace (Graph &psketch, const AimsSurfaceTriangle &mesh, const AimsSurfaceTriangle &infl_mesh, const Texture1d &inittex, std::map< float, Texture< int > > &tex_blobs, std::map< float, Texture< float > > &tex_curv, int index, float tbegin, float tend, float dt, float dts, float dtmin, const float HMAX, bool logFlag, const std::map< unsigned, std::set< std::pair< unsigned, float > > > &weightLapl)
 
AimsSurfaceTriangle surface2Tore (const AimsSurfaceTriangle &)
 
- Public Member Functions inherited from aims::BaseScaleSpace
 BaseScaleSpace ()
 
virtual ~BaseScaleSpace ()
 

Protected Member Functions

float dt ()
 
- Protected Member Functions inherited from aims::BaseScaleSpace
int get_timediff (float t1, float t2)
 

Protected Attributes

std::map< float, ScaleLevel< Geom, Text > * > scales
 
Smoother< Geom, Text > * _smoother
 

Detailed Description

template<typename Geom, typename Text>
class aims::ScaleSpace< Geom, Text >

Definition at line 88 of file scalespace.h.

Member Enumeration Documentation

◆ BlobSaddleType

template<typename Geom, typename Text>
enum aims::ScaleSpace::BlobSaddleType
Enumerator
Junction 
Bottom 

Definition at line 66 of file meshBlob.h.

◆ MergeCode

template<typename Geom, typename Text>
enum aims::ScaleSpace::MergeCode
Enumerator
OK 
PbUp 
PbDown 
PbBoth 

Definition at line 87 of file meshBlob.h.

◆ MeshGrowingMode

template<typename Geom, typename Text>
enum aims::ScaleSpace::MeshGrowingMode
Enumerator
Translate 
Scale 
PushNormal 

Definition at line 72 of file meshBlob.h.

◆ MeshShape

template<typename Geom, typename Text>
enum aims::ScaleSpace::MeshShape
Enumerator
Surface 
Tore 

Definition at line 60 of file meshBlob.h.

Constructor & Destructor Documentation

◆ ScaleSpace()

template<typename Geom, typename Text>
aims::ScaleSpace< Geom, Text >::ScaleSpace ( )
inline

Definition at line 98 of file scalespace.h.

References _smoother, and aims::BaseScaleSpace::BaseScaleSpace().

Referenced by AddScale().

◆ ~ScaleSpace()

template<typename Geom, typename Text>
virtual aims::ScaleSpace< Geom, Text >::~ScaleSpace ( )
inlinevirtual

Definition at line 100 of file scalespace.h.

References _smoother.

Member Function Documentation

◆ adaptiveScaleSpace()

template<typename Geom, typename Text>
int aims::ScaleSpace< Geom, Text >::adaptiveScaleSpace ( Graph & psketch,
const AimsSurfaceTriangle & mesh,
const AimsSurfaceTriangle & infl_mesh,
const Texture1d & inittex,
std::map< float, Texture< int > > & tex_blobs,
std::map< float, Texture< float > > & tex_curv,
int index,
float tbegin,
float tend,
float dt,
float dts,
float dtmin,
const float HMAX,
bool logFlag,
const std::map< unsigned, std::set< std::pair< unsigned, float > > > & weightLapl )

References dt().

◆ AddScale()

◆ blobToGraph()

template<typename Geom, typename Text>
int aims::ScaleSpace< Geom, Text >::blobToGraph ( Graph & g,
const Texture< int > & blobs,
const AimsSurfaceTriangle & mesh,
const AimsSurfaceTriangle & infl_mesh,
const Texture< float > & values,
float scale,
std::map< int, BlobDescriptor > & limits,
int startindex )

◆ cleanGraphScale()

template<typename Geom, typename Text>
void aims::ScaleSpace< Geom, Text >::cleanGraphScale ( Graph & g,
float scale )

◆ createSubMeshes()

template<typename Geom, typename Text>
void aims::ScaleSpace< Geom, Text >::createSubMeshes ( Graph & g,
const AimsSurface< 3, Void > & mesh,
float depl = 0,
float depl0 = 0,
MeshShape ms = Surface,
MeshGrowingMode gm = Scale,
bool compressedMeshes = true )

References Scale, and Surface.

◆ dt()

template<typename Geom, typename Text>
float aims::ScaleSpace< Geom, Text >::dt ( )
inlineprotectedvirtual

Implements aims::BaseScaleSpace.

Definition at line 91 of file scalespace.h.

References _smoother.

Referenced by adaptiveScaleSpace().

◆ GenerateDefaultScaleSpace()

template<typename Geom, typename Text>
void aims::ScaleSpace< Geom, Text >::GenerateDefaultScaleSpace ( float tmax)
inline

Definition at line 119 of file scalespace.h.

References AddScale().

◆ GetOriginalImage()

template<typename Geom, typename Text>
Text & aims::ScaleSpace< Geom, Text >::GetOriginalImage ( )
inline

Definition at line 112 of file scalespace.h.

References Scale.

Referenced by AddScale().

◆ getRepresentativeBlobMesh()

template<typename Geom, typename Text>
carto::rc_ptr< AimsSurfaceTriangle > aims::ScaleSpace< Geom, Text >::getRepresentativeBlobMesh ( float scale0,
const std::set< Vertex * > & SSB )

◆ getRepresentativeScale()

template<typename Geom, typename Text>
float aims::ScaleSpace< Geom, Text >::getRepresentativeScale ( const std::set< Vertex * > & SSB)

◆ GetScaleImage()

template<typename Geom, typename Text>
Text & aims::ScaleSpace< Geom, Text >::GetScaleImage ( float t)
inline

Definition at line 110 of file scalespace.h.

References Scale.

◆ GetScaleLevels()

template<typename Geom, typename Text>
std::map< float, ScaleLevel< Geom, Text > * > aims::ScaleSpace< Geom, Text >::GetScaleLevels ( )
inline

Definition at line 114 of file scalespace.h.

References scales.

◆ GetScaleList()

template<typename Geom, typename Text>
std::set< float > aims::ScaleSpace< Geom, Text >::GetScaleList ( )

◆ GLBEdgeToSSBEdge()

template<typename Geom, typename Text>
void aims::ScaleSpace< Geom, Text >::GLBEdgeToSSBEdge ( Graph & glevel,
Graph & psketch,
const std::map< Vertex *, unsigned > & labels,
const std::map< unsigned, Vertex * > & nodes )

◆ GLBVertexToSSBVertex()

template<typename Geom, typename Text>
void aims::ScaleSpace< Geom, Text >::GLBVertexToSSBVertex ( Graph & psketch,
const std::multimap< float, unsigned > & ordering,
const std::map< unsigned, Vertex * > & nodes,
const std::map< unsigned, std::set< Vertex * > > & scblobs )

◆ grayLevel2PrimalSketch()

template<typename Geom, typename Text>
void aims::ScaleSpace< Geom, Text >::grayLevel2PrimalSketch ( Graph & glevel,
Graph & psketch )

◆ mergeGraphs()

template<typename Geom, typename Text>
MergeCode aims::ScaleSpace< Geom, Text >::mergeGraphs ( Graph & g,
Graph & h )

◆ meshBlobExtract()

template<typename Geom, typename Text>
Texture< int > aims::ScaleSpace< Geom, Text >::meshBlobExtract ( const AimsSurface< 3, Void > & mesh,
const Texture< float > & inittex,
std::map< int, BlobDescriptor > & limits )

◆ PutSmoother()

template<typename Geom, typename Text>
void aims::ScaleSpace< Geom, Text >::PutSmoother ( Smoother< Geom, Text > * blur)
inline

◆ RemoveScale()

template<typename Geom, typename Text>
void aims::ScaleSpace< Geom, Text >::RemoveScale ( float t)

◆ Scale()

template<typename Geom, typename Text>
ScaleLevel< Geom, Text > * aims::ScaleSpace< Geom, Text >::Scale ( float t)
inline

Definition at line 104 of file scalespace.h.

References AddScale(), and scales.

◆ setGraphLabelAndName()

template<typename Geom, typename Text>
void aims::ScaleSpace< Geom, Text >::setGraphLabelAndName ( const std::multimap< float, unsigned > & ordering,
const std::map< unsigned, Vertex * > & nodes,
const std::map< unsigned, std::set< Vertex * > > & scblobs )

◆ sortGLB()

template<typename Geom, typename Text>
std::multimap< float, unsigned > aims::ScaleSpace< Geom, Text >::sortGLB ( std::string key,
const std::map< unsigned, Vertex * > & nodes,
const std::map< unsigned, std::set< Vertex * > > & scblobs )

◆ surface2Tore()

template<typename Geom, typename Text>
AimsSurfaceTriangle aims::ScaleSpace< Geom, Text >::surface2Tore ( const AimsSurfaceTriangle & )

◆ WriteScale()

template<typename Geom, typename Text>
void aims::ScaleSpace< Geom, Text >::WriteScale ( float t,
std::string name )

◆ WriteScaleSpace()

template<typename Geom, typename Text>
void aims::ScaleSpace< Geom, Text >::WriteScaleSpace ( std::string name)

Member Data Documentation

◆ _smoother

template<typename Geom, typename Text>
Smoother<Geom, Text>* aims::ScaleSpace< Geom, Text >::_smoother
protected

Definition at line 94 of file scalespace.h.

Referenced by AddScale(), dt(), PutSmoother(), ScaleSpace(), and ~ScaleSpace().

◆ scales

template<typename Geom, typename Text>
std::map<float, ScaleLevel<Geom, Text>*> aims::ScaleSpace< Geom, Text >::scales
protected

Definition at line 93 of file scalespace.h.

Referenced by AddScale(), GetScaleLevels(), and Scale().


The documentation for this class was generated from the following files: