de.unihalle.informatik.MiToBo.filters.vesselness
Class MFFDOGMultiScaleFilter2D

java.lang.Object
  extended by de.unihalle.informatik.Alida.operator.ALDOperator
      extended by de.unihalle.informatik.MiToBo.core.operator.MTBOperator
          extended by de.unihalle.informatik.MiToBo.filters.vesselness.MFFDOGMultiScaleFilter2D
All Implemented Interfaces:
de.unihalle.informatik.Alida.datatypes.ALDConfigurationValidator, de.unihalle.informatik.Alida.operator.events.ALDOperatorExecutionProgressEventListener, EventListener, loci.common.StatusReporter

@ALDAOperator(genericExecutionMode=ALL,
              level=APPLICATION)
public class MFFDOGMultiScaleFilter2D
extends MTBOperator
implements loci.common.StatusReporter

MF-FDOG multi-scale filter for vessel segmentation.

This operator applies the MFFDOGFilter2D on multiple scales. The results are then combined using a logical OR operation.
Related publication:

B. Zhang, L. Zhang, L. Zhang and F. Karray, "Retinal vessel extraction by matched filter with first-order derivative of Gaussian",
Comp. in Biology and Medicine, vol. 40 (2010), pp. 438-445

Author:
Birgit Moeller

Nested Class Summary
 
Nested classes/interfaces inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
de.unihalle.informatik.Alida.operator.ALDOperator.HidingMode
 
Field Summary
protected  int angleSampling
          Sampling step size for orientations.
protected  MTBImage inputImg
          Input image to be processed.
protected  MFFDOGFilter2D.VesselMode mode
          Scenario for detecting vessels.
protected  MTBImageByte resultVesselMap
          Resulting binary vessel map.
protected  Vector<loci.common.StatusListener> statusListeners
          Vector of installed StatusListeners.
protected  Double[][] widthLengthTab
          Table with vessel widths and lengths to apply.
 
Fields inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
completeDAG, name, operatorExecutionEventlistenerList, portHashAccess, verbose, versionProvider
 
Constructor Summary
MFFDOGMultiScaleFilter2D()
          Default constructor.
 
Method Summary
 void addStatusListener(loci.common.StatusListener statuslistener)
           
 void notifyListeners(loci.common.StatusEvent e)
           
protected  void operate()
           
protected  Object readResolve()
          Init function for deserialized objects.
 void removeStatusListener(loci.common.StatusListener statuslistener)
           
 void validateCustom()
           
 
Methods inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
addOperatorExecutionProgressEventListener, fieldContained, fireOperatorExecutionProgressEvent, getALDPortHashAccessKey, getConstructionMode, getHidingMode, getInInoutNames, getInInoutNames, getInNames, getInOutNames, getMissingRequiredInputs, getName, getNumParameters, getOutInoutNames, getOutNames, getParameter, getParameterDescriptor, getParameterNames, getSupplementalNames, getVerbose, getVersion, handleOperatorExecutionProgressEvent, isConfigured, print, print, print, printInterface, printInterface, readHistory, reinitializeParameterDescriptors, removeOperatorExecutionProgressEventListener, runOp, runOp, runOp, setConstructionMode, setHidingMode, setName, setParameter, setVerbose, toStringVerbose, unconfiguredItems, validate, validateGeneric, writeHistory, writeHistory, writeHistory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

statusListeners

protected transient Vector<loci.common.StatusListener> statusListeners
Vector of installed StatusListeners.


inputImg

@Parameter(label="Input Image",
           required=true,
           dataIOOrder=-10,
           direction=IN,
           mode=STANDARD,
           description="Input image.")
protected transient MTBImage inputImg
Input image to be processed.


mode

@Parameter(label="Scenario",
           required=false,
           dataIOOrder=1,
           direction=IN,
           mode=STANDARD,
           description="Relation of vessels to background.")
protected MFFDOGFilter2D.VesselMode mode
Scenario for detecting vessels.


widthLengthTab

@Parameter(label="Widths and Lengths",
           required=true,
           dataIOOrder=2,
           direction=IN,
           mode=STANDARD,
           description="Widths and lengths to apply.")
protected Double[][] widthLengthTab
Table with vessel widths and lengths to apply.

The operator expects an array with two columns. The first column refers to the widths to be applied, the second column refers to related vessel length. Note that both columns need to have the same length.

The widths determine the standard deviation of the Gaussian kernel, i.e. sigma = w / 2.0.


angleSampling

@Parameter(label="Angular Sampling Steps",
           required=true,
           direction=IN,
           mode=ADVANCED,
           description="Angular sampling step size (in degrees).",
           dataIOOrder=3)
protected int angleSampling
Sampling step size for orientations.


resultVesselMap

@Parameter(label="Result Map",
           dataIOOrder=0,
           direction=OUT,
           description="Resulting vessel map.")
protected transient MTBImageByte resultVesselMap
Resulting binary vessel map.

Constructor Detail

MFFDOGMultiScaleFilter2D

public MFFDOGMultiScaleFilter2D()
                         throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Default constructor.

Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Method Detail

readResolve

protected Object readResolve()
Description copied from class: MTBOperator
Init function for deserialized objects.

This function is called on an instance of this class being deserialized from file, prior to handing the instance over to the user. It takes care of a proper initialization of transient member variables as they are not initialized to the default values during deserialization.

Overrides:
readResolve in class MTBOperator
Returns:
Updated deserialized object.

validateCustom

public void validateCustom()
                    throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Overrides:
validateCustom in class de.unihalle.informatik.Alida.operator.ALDOperator
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException

operate

protected void operate()
                throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException,
                       de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
Specified by:
operate in class de.unihalle.informatik.Alida.operator.ALDOperator
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException

addStatusListener

public void addStatusListener(loci.common.StatusListener statuslistener)
Specified by:
addStatusListener in interface loci.common.StatusReporter

notifyListeners

public void notifyListeners(loci.common.StatusEvent e)
Specified by:
notifyListeners in interface loci.common.StatusReporter

removeStatusListener

public void removeStatusListener(loci.common.StatusListener statuslistener)
Specified by:
removeStatusListener in interface loci.common.StatusReporter


Copyright © 2010–2015 Martin Luther University Halle-Wittenberg. All rights reserved.