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

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.MFFDOGFilter2D
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 MFFDOGFilter2D
extends MTBOperator
implements loci.common.StatusReporter

MF-FDOG filter for vessel segmentation.

This filter, the matched filter with first-order derivative of Gaussian, targets at segmenting vessel-like structures. 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
static class MFFDOGFilter2D.VesselMode
          Detection scenario mode.
 
Nested classes/interfaces inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
de.unihalle.informatik.Alida.operator.ALDOperator.HidingMode
 
Field Summary
protected  int angleSampling
          Angular sampling interval.
protected  Double expectedWidth
          Expected width of vessels.
protected  MTBImage inputImg
          Image to process.
protected  Integer length
          Expected length of vessel segments.
protected  int meanFilterSize
          Size of mean filter for Gaussian derivative image.
protected  MFFDOGFilter2D.VesselMode mode
          Mode for detecting vessels.
protected  MTBImageByte resultVesselMap
          Final vessel map.
protected  Vector<loci.common.StatusListener> statusListeners
          Vector of installed StatusListeners.
protected  double threshScalingConstant
          Threshold scaling constant.
 
Fields inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
completeDAG, name, operatorExecutionEventlistenerList, portHashAccess, verbose, versionProvider
 
Constructor Summary
MFFDOGFilter2D()
          Default constructor.
 
Method Summary
 void addStatusListener(loci.common.StatusListener statuslistener)
           
 MTBImageByte getResultVesselMap()
          Get result.
 void notifyListeners(loci.common.StatusEvent e)
           
protected  void operate()
           
protected  Object readResolve()
          Init function for deserialized objects.
 void removeStatusListener(loci.common.StatusListener statuslistener)
           
 void setInputImage(MTBImage img)
          Specify input image.
 void setLength(Integer l)
          Specify length of vessels.
 void setSampling(int s)
          Specify angular sampling.
 void setVesselMode(MFFDOGFilter2D.VesselMode m)
          Specify detection scenario.
 void setWidth(Double w)
          Specify width of vessels.
 
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, validateCustom, 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
Image to process.


mode

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


expectedWidth

@Parameter(label="Expected Vessel Width",
           required=false,
           dataIOOrder=2,
           direction=IN,
           mode=STANDARD,
           description="Expected size of vessels.")
protected Double expectedWidth
Expected width of vessels.

The width is used to select the standard deviation of the Gaussian, i.e. %preamble{\usepackage{amssymb, amsmath}}.


length

@Parameter(label="Length",
           required=false,
           dataIOOrder=3,
           direction=IN,
           mode=STANDARD,
           description="Length of vessel segments.")
protected Integer length
Expected length of vessel segments.

The length of the vessels is used to set the height of the filter masks.


angleSampling

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


meanFilterSize

@Parameter(label="Size of Mean Filter",
           required=true,
           direction=IN,
           mode=ADVANCED,
           description="Size of mean filter.",
           dataIOOrder=5)
protected int meanFilterSize
Size of mean filter for Gaussian derivative image.


threshScalingConstant

@Parameter(label="Threshold Scaling Constant",
           required=true,
           direction=IN,
           mode=ADVANCED,
           description="Constant for scaling local threshold, usually from the interval [2,3].",
           dataIOOrder=6)
protected double threshScalingConstant
Threshold scaling constant.


resultVesselMap

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

Constructor Detail

MFFDOGFilter2D

public MFFDOGFilter2D()
               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.

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

setInputImage

public void setInputImage(MTBImage img)
Specify input image.

Parameters:
img - Image to process.

setVesselMode

public void setVesselMode(MFFDOGFilter2D.VesselMode m)
Specify detection scenario.

Parameters:
m - Mode to assume.

setWidth

public void setWidth(Double w)
Specify width of vessels.

Parameters:
w - Expected width of vessels.

setLength

public void setLength(Integer l)
Specify length of vessels.

Parameters:
l - Length value to apply.

setSampling

public void setSampling(int s)
Specify angular sampling.

Parameters:
s - Size of angular sampling interval.

getResultVesselMap

public MTBImageByte getResultVesselMap()
Get result.

Returns:
Binary vessel map.

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.