![]() |
OpenWalnut
1.5.0dev
|
This module smoothes images of a dataset while preserving edges. More...
#include <WMAnisotropicFiltering.h>
Inheritance diagram for WMAnisotropicFiltering:
Collaboration diagram for WMAnisotropicFiltering:Public Member Functions | |
| WMAnisotropicFiltering () | |
| Standard constructor. More... | |
| virtual | ~WMAnisotropicFiltering () |
| Destructor. More... | |
| virtual const std::string | getName () const |
| Gives back the name of this module. More... | |
| virtual const std::string | getDescription () const |
| Gives back a description of this module. More... | |
| virtual std::shared_ptr< WModule > | factory () const |
| Due to the prototype design pattern used to build modules, this method returns a new instance of this method. More... | |
| virtual const char ** | getXPMIcon () const |
| Return an icon for this module. More... | |
Public Member Functions inherited from WModule | |
| WModule () | |
| Constructs a new WModule instance. More... | |
| virtual | ~WModule () |
| Destructor. More... | |
| const InputConnectorList & | getInputConnectors () const |
| Gives back input connectors. More... | |
| std::shared_ptr< WModuleInputConnector > | getInputConnector (std::string name) |
| Finds the named connector for the module. More... | |
| std::shared_ptr< WModuleInputConnector > | findInputConnector (std::string name) |
| Finds the named connector for the module. More... | |
| const OutputConnectorList & | getOutputConnectors () const |
| Gives back output connectors. More... | |
| std::shared_ptr< WModuleOutputConnector > | getOutputConnector (std::string name) |
| Finds the named connector for the module. More... | |
| std::shared_ptr< WModuleOutputConnector > | findOutputConnector (std::string name) |
| Finds the named connector for the module. More... | |
| std::shared_ptr< WModuleConnector > | getConnector (std::string name) |
| Finds the named connector for the module. More... | |
| std::shared_ptr< WModuleConnector > | findConnector (std::string name) |
| Finds the named connector for the module. More... | |
| std::shared_ptr< WProperties > | getProperties () const |
| Return a pointer to the properties object of the module. More... | |
| std::shared_ptr< WProperties > | getInformationProperties () const |
| Return a pointer to the information properties object of the module. More... | |
| const WBoolFlag & | isInitialized () const |
| Determines whether the module instance is properly initialized. More... | |
| const WBoolFlag & | isUseable () const |
| Checks whether the module instance is ready to be used. More... | |
| const WBoolFlag & | isAssociated () const |
| Checks whether this module is associated with an container. More... | |
| const WBoolFlag & | isReady () const |
| Checks whether this module is ready. More... | |
| const WBoolFlag & | isReadyOrCrashed () const |
| This is the logical or of isReady and isCrashed. More... | |
| const WBoolFlag & | isRunning () const |
| Returns a flag denoting whether the thread currently is running or nor. More... | |
| void | waitRestored () |
| This method waits for the module to be restored completely. More... | |
| bool | isRestoreNeeded () const |
| Check whether this module is in restore mode. More... | |
| void | setRestoreNeeded (bool restore=true) |
| Change the restore mode. More... | |
| void | reportRestoreComplete () |
| Called by loaders to tell the module that loading has been completed. More... | |
| std::shared_ptr< WModuleContainer > | getAssociatedContainer () const |
| The container this module is associated with. More... | |
| virtual boost::signals2::connection | subscribeSignal (MODULE_SIGNAL signal, t_ModuleGenericSignalHandlerType notifier) |
| Connects a specified notify function with a signal this module instance is offering. More... | |
| virtual boost::signals2::connection | subscribeSignal (MODULE_SIGNAL signal, t_ModuleErrorSignalHandlerType notifier) |
| Connects a specified notify function with a signal this module instance is offering. More... | |
| virtual std::shared_ptr< WProgressCombiner > | getRootProgressCombiner () |
| Gets the modules base progress. More... | |
| virtual MODULE_TYPE | getType () const |
| Gets the type of the module. More... | |
| void | disconnect () |
| Completely disconnects all connected connectors of this module. More... | |
| WCombinerTypes::WDisconnectList | getPossibleDisconnections () |
| Gives a list of all WDisconnectCombiners possible. More... | |
| boost::filesystem::path | getLocalPath () const |
| Returns the local path of the module. More... | |
| boost::filesystem::path | getLibPath () const |
| Returns the absolute path to the library containing this module. More... | |
| std::string | getPackageName () const |
| Returns the name of the package the module belongs to, The package name basically is the name of the library containing this and maybe other modules. More... | |
| bool | isDeprecated () const |
| Checks whether the module was marked as deprecated. More... | |
| std::string | getDeprecationMessage () const |
| Queries the deprecation message of a module if specified. More... | |
| virtual WModuleMetaInformation::ConstSPtr | getMetaInformation () const |
| The meta information of this module. More... | |
| const std::string & | getUUID () const |
| Get the UUID of the module instance. More... | |
| WPropString | getRuntimeName () const |
| Returns the name the user has given this module. More... | |
| const WRequirement * | checkRequirements () const |
| This method checks whether all the requirements of the module are complied. More... | |
| virtual boost::signals2::connection | subscribeSignal (THREAD_SIGNAL signal, t_ThreadErrorSignalHandlerType notifier) |
| Connects a specified notify function with a signal this thread instance is offering. More... | |
Public Member Functions inherited from WThreadedRunner | |
| WThreadedRunner () | |
| Default constructor. More... | |
| virtual | ~WThreadedRunner () |
| Destructor. More... | |
| virtual void | run () |
| Run thread. More... | |
| void | run (THREADFUNCTION f) |
| Run thread. More... | |
| void | wait (bool requestFinish=false) |
| Wait for the thread to be finished. More... | |
| virtual void | requestStop () |
| This method's purpose is to request a stop without waiting for it. More... | |
| virtual boost::signals2::connection | subscribeSignal (THREAD_SIGNAL signal, t_ThreadErrorSignalHandlerType notifier) |
| Connects a specified notify function with a signal this thread instance is offering. More... | |
| const WBoolFlag & | isCrashed () const |
| Checks whether this thread has been crashed. More... | |
| const std::string & | getCrashMessage () const |
| Get the message of the exception finally causing the crash. More... | |
| void | setThreadName (std::string name) |
| Set the name of the thread. More... | |
| std::string | getThreadName () const |
| Returns the current thread name. More... | |
Public Member Functions inherited from WPrototyped | |
| WPrototyped () | |
| Default constructor. More... | |
| virtual | ~WPrototyped () |
| Destructor. More... | |
| template<typename T > | |
| bool | isA () |
| Checks whether the actual prototype has the specified runtime type. More... | |
Protected Member Functions | |
| virtual void | moduleMain () |
| Entry point after loading the module. More... | |
| virtual void | connectors () |
| Initialize the connectors this module is using. More... | |
| virtual void | properties () |
| Initialize the properties for this module. More... | |
| virtual void | activate () |
| Callback for m_active. More... | |
Protected Member Functions inherited from WModule | |
| void | threadMain () |
| Thread entry point. More... | |
| virtual void | onThreadException (const WException &e) |
| This method is called if an exception was caught, which came from the custom thread code. More... | |
| void | setAssociatedContainer (std::shared_ptr< WModuleContainer > container) |
| Sets the container this module is associated with. More... | |
| virtual void | requirements () |
| Initialize requirements in this function. More... | |
| virtual std::string | deprecated () const |
| This function allows module programmers to mark their modules deprecated in a user-friendly way. More... | |
| void | initialize () |
| Manages initialization. More... | |
| virtual void | cleanup () |
| Called whenever the module should shutdown. More... | |
| void | addConnector (std::shared_ptr< WModuleInputConnector > con) |
| Adds the specified connector to the list of inputs. More... | |
| void | addConnector (std::shared_ptr< WModuleOutputConnector > con) |
| Adds the specified connector to the list of outputs. More... | |
| void | removeConnectors () |
| Removes all connectors properly. More... | |
| virtual const t_GenericSignalHandlerType | getSignalHandler (MODULE_CONNECTOR_SIGNAL signal) |
| Gives the signal handler function responsible for a given signal. More... | |
| virtual void | notifyConnectionEstablished (std::shared_ptr< WModuleConnector > here, std::shared_ptr< WModuleConnector > there) |
| Gets called whenever a connector gets connected to the specified input. More... | |
| virtual void | notifyConnectionClosed (std::shared_ptr< WModuleConnector > here, std::shared_ptr< WModuleConnector > there) |
| Gets called whenever a connection between a remote and local connector gets closed. More... | |
| virtual void | notifyDataChange (std::shared_ptr< WModuleConnector > input, std::shared_ptr< WModuleConnector > output) |
| Gets called when the data on one input connector changed. More... | |
| void | ready () |
| Call this whenever your module is ready and can react on property changes. More... | |
| wlog::WStreamedLogger | infoLog () const |
| Logger instance for comfortable info logging. More... | |
| wlog::WStreamedLogger | debugLog () const |
| Logger instance for comfortable debug logging. More... | |
| wlog::WStreamedLogger | warnLog () const |
| Logger instance for comfortable warning- logs. More... | |
| wlog::WStreamedLogger | errorLog () const |
| Logger instance for comfortable error logging. More... | |
| void | setLocalPath (boost::filesystem::path path) |
| Sets the local module path. More... | |
| void | setLibPath (boost::filesystem::path path) |
| Set the path to the library which contains this module. More... | |
| void | setPackageName (std::string name) |
| Set the package name. More... | |
Protected Member Functions inherited from WThreadedRunner | |
| virtual void | notifyStop () |
| Gets called when the thread should be stopped. More... | |
| void | yield () const |
| Give remaining execution timeslice to another thread. More... | |
| void | sleep (const int32_t t) const |
| Sets thread asleep. More... | |
| void | msleep (const int32_t t) const |
| Sets thread asleep. More... | |
| void | waitForStop () |
| Let the thread sleep until a stop request was given. More... | |
| void | handleDeadlyException (const WException &e, std::string sender="WThreadedRunner") |
| Handle the specified exception which was not caught in the thread, which basically means the thread has crashed. More... | |
Private Member Functions | |
| void | calcSmoothedImages (int iterations) |
| Calculates the resulting smoothed image. More... | |
| std::size_t | coordsToIndex (std::shared_ptr< WGridRegular3D > const &grid, std::size_t x, std::size_t y, std::size_t z) |
| Calculates grid indices from voxel coords. More... | |
| void | copyData (std::shared_ptr< std::vector< double > > &smoothed, std::shared_ptr< WGridRegular3D > const &grid) |
| Copy the datasets image data to a temp array. More... | |
| void | calcDeriv (std::vector< double > &deriv, std::shared_ptr< std::vector< double > > const &smoothed, std::shared_ptr< WGridRegular3D > const &grid, std::size_t image, std::size_t numImages) |
| Calculates an array containing the derivatives in x, y and z directions of the image intensity (i.e. More... | |
| void | calcCoeff (std::vector< double > &coeff, std::vector< double > const &deriv, std::shared_ptr< WGridRegular3D > const &grid) |
| Calculates the diffusion coeff for every voxel. More... | |
| void | diffusion (std::vector< double > const &deriv, std::vector< double > const &coeff, std::shared_ptr< std::vector< double > > &smoothed, std::shared_ptr< WGridRegular3D > const &grid, std::size_t image, std::size_t numImages) |
| Do the diffusion. More... | |
Private Attributes | |
| std::shared_ptr< WModuleInputData< WDataSetSingle > > | m_input |
| An input connector that accepts multi image datasets. More... | |
| std::shared_ptr< WModuleOutputData< WDataSetSingle > > | m_output |
| An output connector for the output dataset. More... | |
| std::shared_ptr< WDataSetSingle > | m_dataSet |
| This is a pointer to the dataset the module is currently working on. More... | |
| std::shared_ptr< WCondition > | m_propCondition |
| A condition used to notify about changes in several properties. More... | |
| double | m_k |
| The edge preservation parameter used for diffusion coeff calculation. More... | |
| double | m_d |
| The size of the time steps. More... | |
| WPropInt | m_iterations |
| A property for the number of iterations. More... | |
| WPropDouble | m_Kcoeff |
| A property for the edge preservation parameter. More... | |
| WPropDouble | m_delta |
| A property for the time step size. More... | |
Additional Inherited Members | |
Public Types inherited from WModule | |
| typedef std::vector< std::shared_ptr< WModuleInputConnector > > | InputConnectorList |
| The type for the list of input connectors. More... | |
| typedef std::vector< std::shared_ptr< WModuleOutputConnector > > | OutputConnectorList |
| The type for the list of output connectors. More... | |
| typedef std::shared_ptr< WModule > | SPtr |
| Shared pointer to a WModule. More... | |
| typedef std::shared_ptr< const WModule > | ConstSPtr |
| Shared pointer to a const WModule. More... | |
Public Types inherited from WThreadedRunner | |
| typedef std::shared_ptr< WThreadedRunner > | SPtr |
| Abbreviation to a shared_ptr to this type. More... | |
| typedef std::shared_ptr< const WThreadedRunner > | ConstSPtr |
| Abbreviation to a const shared_ptr to this type. More... | |
| typedef boost::function< void(void) > | THREADFUNCTION |
| Type used for simple thread functions. More... | |
Static Public Member Functions inherited from WModule | |
| static SPtr | findByUUID (std::string uuid) |
| Find a module instance by UUID. More... | |
Static Public Member Functions inherited from WThreadedRunner | |
| static void | setThisThreadName (std::string name) |
| Static function to set the name of the calling thread. More... | |
Protected Types inherited from WModule | |
| typedef std::vector< WRequirement * > | Requirements |
| The type of the requirement list. More... | |
Protected Attributes inherited from WModule | |
| std::shared_ptr< WProperties > | m_properties |
| The property object for the module. More... | |
| std::shared_ptr< WProperties > | m_infoProperties |
| The property object for the module containing only module whose purpose is "PV_PURPOSE_INFORMNATION". More... | |
| std::shared_ptr< WProgressCombiner > | m_progress |
| Progress indicator used as parent for all progress' of this module. More... | |
| WBoolFlag | m_initialized |
| True if everything is initialized and ready to be used. More... | |
| WBoolFlag | m_isAssociated |
| True if container got associated with this flag. More... | |
| WBoolFlag | m_isUsable |
| True if associated && initialized. More... | |
| WBoolFlag | m_isReady |
| True if ready() was called. More... | |
| WBoolFlag | m_isReadyOrCrashed |
| It is true whenever m_isReady or WThreadedRunner::m_isCrashed is true. More... | |
| WBoolFlag | m_isRunning |
| True if the module currently is running. More... | |
| WBoolFlag | m_isLoadFinished |
| Flag to denote whether the module container and the project loader have finished their work. More... | |
| bool | m_restoreMode |
| Flag denoting the current restore mode. More... | |
| std::shared_ptr< WProgress > | m_readyProgress |
| Progress indicator for the "ready" state. More... | |
| WConditionSet | m_moduleState |
| The internal state of the module. More... | |
| std::shared_ptr< WModuleContainer > | m_container |
| The container this module belongs to. More... | |
| InputConnectorList | m_inputConnectors |
| Set of input connectors associated with this module. More... | |
| OutputConnectorList | m_outputConnectors |
| Set of output connectors associated with this module. More... | |
| WPropBool | m_active |
| True whenever the module should be active. More... | |
| WPropString | m_runtimeName |
| This property holds a user specified name for the current module instance. More... | |
| boost::filesystem::path | m_localPath |
| The path where the module binary resides in. More... | |
| boost::filesystem::path | m_libPath |
| The absolute path to the library containing this module. More... | |
| std::string | m_packageName |
| The name of the lib/the package containing this module. More... | |
| Requirements | m_requirements |
| The list of requirements. More... | |
Protected Attributes inherited from WThreadedRunner | |
| boost::thread | m_thread |
| Thread instance. More... | |
| WBoolFlag | m_shutdownFlag |
| Condition getting fired whenever the thread should quit. More... | |
| WBoolFlag | m_isCrashed |
| True whenever an exception is thrown during threadMain. More... | |
| std::string | m_crashMessage |
| The crash message. More... | |
This module smoothes images of a dataset while preserving edges.
Definition at line 43 of file WMAnisotropicFiltering.h.
| WMAnisotropicFiltering::WMAnisotropicFiltering | ( | ) |
Standard constructor.
Definition at line 40 of file WMAnisotropicFiltering.cpp.
Referenced by factory().
Here is the caller graph for this function:
|
virtual |
Destructor.
Definition at line 46 of file WMAnisotropicFiltering.cpp.
|
protectedvirtual |
Callback for m_active.
Reimplemented from WModule.
Definition at line 100 of file WMAnisotropicFiltering.cpp.
References WModule::activate().
Here is the call graph for this function:
|
private |
Calculates the diffusion coeff for every voxel.
| coeff | The memory used for the coeff data. |
| deriv | The gradient data. |
| grid | The grid. |
Definition at line 258 of file WMAnisotropicFiltering.cpp.
References coordsToIndex(), and m_k.
Referenced by calcSmoothedImages().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Calculates an array containing the derivatives in x, y and z directions of the image intensity (i.e.
contains the intensity gradient).
| deriv | The memory used for the gradient values. |
| smoothed | The intensity data. |
| grid | The grid. |
| image | The index of the image to calc the gradient from. |
| numImages | The number of images in this dataset. |
Definition at line 229 of file WMAnisotropicFiltering.cpp.
References coordsToIndex().
Referenced by calcSmoothedImages().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Calculates the resulting smoothed image.
| iterations | The number of diffusion time steps. |
Definition at line 150 of file WMAnisotropicFiltering.cpp.
References calcCoeff(), calcDeriv(), copyData(), diffusion(), WModule::infoLog(), m_dataSet, m_delta, m_input, m_iterations, m_Kcoeff, and WModule::m_progress.
Referenced by moduleMain().
Here is the call graph for this function:
Here is the caller graph for this function:
|
protectedvirtual |
Initialize the connectors this module is using.
Reimplemented from WModule.
Definition at line 70 of file WMAnisotropicFiltering.cpp.
References WModule::addConnector(), WModule::connectors(), m_input, and m_output.
Here is the call graph for this function:
|
private |
Calculates grid indices from voxel coords.
| grid | The grid. |
| x | The x-coord. |
| y | The y-coord. |
| z | The z-coord. |
Definition at line 214 of file WMAnisotropicFiltering.cpp.
Referenced by calcCoeff(), calcDeriv(), and diffusion().
Here is the caller graph for this function:
|
private |
Copy the datasets image data to a temp array.
| smoothed | The temp array to copy to. |
| grid | The grid, which is not used in this function. |
Definition at line 220 of file WMAnisotropicFiltering.cpp.
References m_dataSet.
Referenced by calcSmoothedImages().
Here is the caller graph for this function:
|
private |
Do the diffusion.
| deriv | The intensity gradient data. |
| coeff | The diffusion coeffs. |
| smoothed | The new smoothed image. |
| grid | The grid. |
| image | The index of the image to calc the gradient from. |
| numImages | The number of images in this dataset. |
Definition at line 281 of file WMAnisotropicFiltering.cpp.
References coordsToIndex(), and m_d.
Referenced by calcSmoothedImages().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Due to the prototype design pattern used to build modules, this method returns a new instance of this method.
NOTE: it should never be initialized or modified in some other way. A simple new instance is required.
Implements WModule.
Definition at line 50 of file WMAnisotropicFiltering.cpp.
References WMAnisotropicFiltering().
Here is the call graph for this function:
|
virtual |
Gives back a description of this module.
Implements WPrototyped.
Definition at line 60 of file WMAnisotropicFiltering.cpp.
|
virtual |
Gives back the name of this module.
Implements WPrototyped.
Definition at line 55 of file WMAnisotropicFiltering.cpp.
|
virtual |
Return an icon for this module.
Reimplemented from WModule.
Definition at line 65 of file WMAnisotropicFiltering.cpp.
|
protectedvirtual |
Entry point after loading the module.
Runs in separate thread.
Implements WModule.
Definition at line 105 of file WMAnisotropicFiltering.cpp.
References WConditionSet::add(), calcSmoothedImages(), WModule::debugLog(), WModule::infoLog(), m_d, m_dataSet, m_delta, m_input, m_iterations, m_k, m_Kcoeff, WModule::m_moduleState, m_propCondition, WThreadedRunner::m_shutdownFlag, WModule::ready(), WConditionSet::setResetable(), and WConditionSet::wait().
Here is the call graph for this function:
|
protectedvirtual |
Initialize the properties for this module.
Reimplemented from WModule.
Definition at line 83 of file WMAnisotropicFiltering.cpp.
References m_delta, m_iterations, m_Kcoeff, m_propCondition, WModule::m_properties, and WModule::properties().
Here is the call graph for this function:
|
private |
The size of the time steps.
Definition at line 195 of file WMAnisotropicFiltering.h.
Referenced by diffusion(), and moduleMain().
|
private |
This is a pointer to the dataset the module is currently working on.
Definition at line 184 of file WMAnisotropicFiltering.h.
Referenced by calcSmoothedImages(), copyData(), and moduleMain().
|
private |
A property for the time step size.
Definition at line 204 of file WMAnisotropicFiltering.h.
Referenced by calcSmoothedImages(), moduleMain(), and properties().
|
private |
An input connector that accepts multi image datasets.
Definition at line 174 of file WMAnisotropicFiltering.h.
Referenced by calcSmoothedImages(), connectors(), and moduleMain().
|
private |
A property for the number of iterations.
Definition at line 198 of file WMAnisotropicFiltering.h.
Referenced by calcSmoothedImages(), moduleMain(), and properties().
|
private |
The edge preservation parameter used for diffusion coeff calculation.
Definition at line 192 of file WMAnisotropicFiltering.h.
Referenced by calcCoeff(), and moduleMain().
|
private |
A property for the edge preservation parameter.
Definition at line 201 of file WMAnisotropicFiltering.h.
Referenced by calcSmoothedImages(), moduleMain(), and properties().
|
private |
An output connector for the output dataset.
Definition at line 179 of file WMAnisotropicFiltering.h.
Referenced by connectors().
|
private |
A condition used to notify about changes in several properties.
Definition at line 189 of file WMAnisotropicFiltering.h.
Referenced by moduleMain(), and properties().