SoEigenvaluesToStructurenessProcessing3d engine computes a structure score image  
 More...
#include <ImageViz/Engines/EdgeDetection/EdgeMarking/SoEigenvaluesToStructurenessProcessing3d.h>
 Inheritance diagram for SoEigenvaluesToStructurenessProcessing3d:Public Types | |
| enum | Lightness {  BRIGHT = 0 , DARK = 1 }  | 
| enum | StructureType {  ROD = 0 , BALL = 1 , PLANE = 2 }  | 
  Public Types inherited from SoImageVizEngine | |
| enum | ComputeMode {  MODE_2D = 0 , MODE_3D = 1 , MODE_AUTO = 2 }  | 
| Compute Mode This enum specifies whether the main input will be interpreted as a 3D volume or a stack of 2D images for processing.  More... | |
| enum | Neighborhood3d {  CONNECTIVITY_6 = 0 , CONNECTIVITY_18 = 1 , CONNECTIVITY_26 = 2 }  | 
| Neighborhood Connectivity 3D.  More... | |
Public Member Functions | |
| SoEigenvaluesToStructurenessProcessing3d () | |
| Constructor.   | |
  Public Member Functions inherited from SoImageVizEngine | |
| virtual SoType | getTypeId () const | 
| Returns the type identifier for this specific instance.   | |
| virtual void | startEvaluate () | 
| Evaluate engine and dependencies in another thread without blocking the current one.   | |
| virtual void | waitEvaluate () | 
| Wait for the end of engine evaluation.   | |
| virtual void | abortEvaluate () | 
| Abort current processing as soon as possible.   | |
| virtual bool | isEvaluating () | 
| Returns true if the engine evaluation is in progress.   | |
  Public Member Functions inherited from SoEngine | |
| virtual int | getOutputs (SoEngineOutputList &list) const | 
| Returns a list of outputs in this engine.   | |
| SoEngineOutput * | getOutput (const SbName &outputName) const | 
| Returns a reference to the engine output with the given name.   | |
| SbBool | getOutputName (const SoEngineOutput *output, SbName &outputName) const | 
| Returns (in outputName) the name of the engine output (output).   | |
| SoEngine * | copy () const | 
| Creates and returns an exact copy of the engine.   | |
  Public Member Functions inherited from SoFieldContainer | |
| void | setToDefaults () | 
| Sets all fields in this object to their default values.   | |
| SbBool | hasDefaultValues () const | 
| Returns TRUE if all of the object's fields have their default values.   | |
| SbBool | fieldsAreEqual (const SoFieldContainer *fc) const | 
| Returns TRUE if this object's fields are exactly equal to fc's fields.   | |
| void | copyFieldValues (const SoFieldContainer *fc, SbBool copyConnections=FALSE) | 
| Copies the contents of fc's fields into this object's fields.   | |
| SoNONUNICODE SbBool | set (const char *fieldDataString) | 
| Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format.     | |
| SbBool | set (const SbString &fieldDataString) | 
| Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format.   | |
| void | get (SbString &fieldDataString) | 
| Returns the values of the fields of this object in the Open Inventor ASCII file format in the given string.   | |
| virtual int | getFields (SoFieldList &list) const | 
| Appends references to all of this object's fields to resultList, and returns the number of fields appended.   | |
| virtual int | getAllFields (SoFieldList &list) const | 
| Returns a list of fields, including the eventIn's and eventOut's.   | |
| virtual SoField * | getField (const SbName &fieldName) const | 
| Returns a the field of this object whose name is fieldName.   | |
| virtual SoField * | getEventIn (const SbName &fieldName) const | 
| Returns a the eventIn with the given name.   | |
| virtual SoField * | getEventOut (const SbName &fieldName) const | 
| Returns the eventOut with the given name.   | |
| SbBool | getFieldName (const SoField *field, SbName &fieldName) const | 
| Returns the name of the given field in the fieldName argument.   | |
| SbBool | enableNotify (SbBool flag) | 
| Notification at this Field Container is enabled (if flag == TRUE) or disabled (if flag == FALSE).   | |
| SbBool | isNotifyEnabled () const | 
| Notification is the process of telling interested objects that this object has changed.   | |
| virtual void | setUserData (void *data) | 
| Sets application data.   | |
| void * | getUserData (void) const | 
| Gets user application data.   | |
  Public Member Functions inherited from SoBase | |
| virtual void | touch () | 
| Marks an instance as modified, simulating a change to it.   | |
| virtual SbName | getName () const | 
| Returns the name of an instance.   | |
| virtual void | setName (const SbName &name) | 
| Sets the name of an instance.   | |
| void | setSynchronizable (const bool b) | 
| Sets this to be a ScaleViz synchronizable object.   | |
| bool | isSynchronizable () const | 
| Gets the ScaleViz synchronizable state of this object.   | |
  Public Member Functions inherited from SoRefCounter | |
| void | ref () const | 
| Adds a reference to an instance.   | |
| void | unref () const | 
| Removes a reference from an instance.   | |
| void | unrefNoDelete () const | 
| unrefNoDelete() should be called when it is desired to decrement the reference count, but not delete the instance if this brings the reference count to zero.   | |
| int | getRefCount () const | 
| Returns current reference count.   | |
| void | lock () const | 
| lock this instance.   | |
| void | unlock () const | 
| unlock this instance.   | |
  Public Member Functions inherited from SoTypedObject | |
| SbBool | isOfType (const SoType &type) const | 
| Returns TRUE if this object is of the type specified in type or is derived from that type.   | |
| template<typename TypedObjectClass > | |
| SbBool | isOfType () const | 
| Returns TRUE if this object is of the type of class TypedObjectClass or is derived from that class.   | |
Public Attributes | |
| SoSFImageDataAdapter | inEigenvaluesImage | 
| Image containing input eigenvalues field.   | |
| SoSFEnum | lightness | 
| The type of structure lightness to extract.   | |
| SoSFEnum | structureType | 
| The type of structure lightness to extract.   | |
| SoSFFloat | alpha | 
| Flatness sensitivity threshold.   | |
| SoSFFloat | beta | 
| Blobness sensitivity threshold.   | |
| SoSFFloat | noiseCutoff | 
| Noise scale factor.   | |
| SoImageVizEngineOutput< SoSFImageDataAdapter, SoImageDataAdapter * > | outImage | 
| Output image.   | |
  Public Attributes inherited from SoImageVizEngine | |
| SbEventHandler< EventArg & > | onBegin | 
| Event raised when the processing begins.   | |
| SbEventHandler< EventArg & > | onEnd | 
| Event raised when processing ends and the result is available.   | |
| SbEventHandler< EventArg & > | onProgress | 
| Event raised while processing is running.   | |
Additional Inherited Members | |
  Static Public Member Functions inherited from SoImageVizEngine | |
| static SoType | getClassTypeId () | 
| Returns the type identifier for this class.   | |
  Static Public Member Functions inherited from SoEngine | |
| static SoType | getClassTypeId () | 
| Returns the type identifier for the SoEngine class.   | |
| static SoEngine * | getByName (const SbName &name) | 
| Looks up engine(s) by name.   | |
| static int | getByName (const SbName &name, SoEngineList &list) | 
| Looks up engine(s) by name.   | |
  Static Public Member Functions inherited from SoFieldContainer | |
| static SoType | getClassTypeId () | 
| Returns the type of this class.   | |
  Static Public Member Functions inherited from SoBase | |
| static SoType | getClassTypeId () | 
| Returns type identifier for this class.   | |
  Static Public Member Functions inherited from SoTypedObject | |
| static SoType | getClassTypeId () | 
| Returns the type identifier for this class.   | |
 
  SoEigenvaluesToStructurenessProcessing3d engine computes a structure score image 
It allows to extract tubular, blob-like and plate-like structures from dark or bright background.
The computation is based on eigen values 



The structure score for bright tubular structures corresponds to :
![\[ score = \begin{cases}
0 & \text{ if } \lambda_1 >0 \text{ or } \lambda_2 >0 \\
(1-\exp(-\frac{\mathcal{R}_a^2}{2\alpha^2}))\exp(-\frac{\mathcal{R}_b^2}{2\beta^2})(1-\exp(-\frac{S^2}{2c^2})) &
\end{cases} \]](form_90.png)
and the score for bright blob-like structures is computed as follow :
![\[ score = \begin{cases}
0 & \text{ if } \lambda_1 >0 \text{ or} \lambda_2 >0 \text{ or} \lambda_3 >0\\
(1-\exp(-\frac{\mathcal{R}_a^2}{2\alpha^2}))(1-\exp(-\frac{\mathcal{R}_b^2}{2\beta^2}))(1-\exp(-\frac{S^2}{2c^2}))
\end{cases} \]](form_91.png)
and the score for bright plate-like structures is computed as follow :
![\[ score = \begin{cases}
0 & \text{ if } \lambda_1 >0 \\
\exp(-\frac{\mathcal{R}_a^2}{2\alpha^2})\exp(-\frac{\mathcal{R}_b^2}{2\beta^2})(1-\exp(-\frac{S^2}{2c^2})) &
\end{cases} \]](form_92.png)
where 
![\[S = \left \| \mathcal{H} \right \| = \sqrt{\sum \lambda_i^2}\]](form_93.png)




For dark objects the conditions on 


The method is referenced by Frangi publication :
A.F.Frangi, W.J.Niessen, K.L.Vincken, M.A.Viergever, "Multiscale vessel enhancement filtering" 
 Lecture Notes in Computer Science(MICCAI), vol. 1496, pp. 130-137, 1998.
This filter provides output float grayscale image where each voxel intensity represents a structure score.
| inEigenvaluesImage | NULL | 
| lightness | BRIGHT | 
| structureType | ROD | 
| alpha | 0.75f | 
| beta | 0.75f | 
| noiseCutoff | 0.5f | 
Definition at line 102 of file SoEigenvaluesToStructurenessProcessing3d.h.
| Enumerator | |
|---|---|
| BRIGHT | Extracts bright structures from dark background.  | 
| DARK | Extracts dark structures from bright background.  | 
Definition at line 124 of file SoEigenvaluesToStructurenessProcessing3d.h.
| Enumerator | |
|---|---|
| ROD | Extracts tubular structures.  | 
| BALL | Extracts blob-like structures.  | 
| PLANE | Extracts plate-like structures.  | 
Definition at line 143 of file SoEigenvaluesToStructurenessProcessing3d.h.
| SoEigenvaluesToStructurenessProcessing3d::SoEigenvaluesToStructurenessProcessing3d | ( | ) | 
Constructor.
| SoSFFloat SoEigenvaluesToStructurenessProcessing3d::alpha | 
Flatness sensitivity threshold.
It corresponds to the 
Definition at line 165 of file SoEigenvaluesToStructurenessProcessing3d.h.
| SoSFFloat SoEigenvaluesToStructurenessProcessing3d::beta | 
Blobness sensitivity threshold.
It corresponds to the 
Definition at line 169 of file SoEigenvaluesToStructurenessProcessing3d.h.
| SoSFImageDataAdapter SoEigenvaluesToStructurenessProcessing3d::inEigenvaluesImage | 
Image containing input eigenvalues field.
Type must be float.
Spectral series size is 3:



Definition at line 119 of file SoEigenvaluesToStructurenessProcessing3d.h.
| SoSFEnum SoEigenvaluesToStructurenessProcessing3d::lightness | 
The type of structure lightness to extract.
Use enum Lightness. Default is BRIGHT
Definition at line 138 of file SoEigenvaluesToStructurenessProcessing3d.h.
| SoSFFloat SoEigenvaluesToStructurenessProcessing3d::noiseCutoff | 
Noise scale factor.
It is used for computing the c term of the score equation. Default value is 0.5f.
Definition at line 173 of file SoEigenvaluesToStructurenessProcessing3d.h.
| SoImageVizEngineOutput<SoSFImageDataAdapter,SoImageDataAdapter*> SoEigenvaluesToStructurenessProcessing3d::outImage | 
Output image.
Size (except spectral series, only one), calibration, type and interpretation of the outImage image are forced to the same values as inEigenvaluesImage. All values are between 0 and 1. Default value is NULL. Supported types include: grayscale binary label color image.
Definition at line 178 of file SoEigenvaluesToStructurenessProcessing3d.h.
| SoSFEnum SoEigenvaluesToStructurenessProcessing3d::structureType | 
The type of structure lightness to extract.
Use enum StructureType. Default is ROD
Definition at line 161 of file SoEigenvaluesToStructurenessProcessing3d.h.