@ALDAOperator(genericExecutionMode=ALL,
level=APPLICATION)
public class MFFDOGFilter2D
extends MTBOperator
implements loci.common.StatusReporter
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.
| Modifier and Type | Class and Description |
|---|---|
static class |
MFFDOGFilter2D.VesselMode
Detection scenario mode.
|
| Modifier and Type | Field and Description |
|---|---|
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.
|
| Constructor and Description |
|---|
MFFDOGFilter2D()
Default constructor.
|
| Modifier and Type | Method and Description |
|---|---|
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.
|
addOperatorExecutionProgressEventListener, addParameter, addParameter, addParameterUnconditioned, fieldContained, fireOperatorExecutionProgressEvent, getALDPortHashAccessKey, getConstructionMode, getDocumentation, getHidingMode, getInactiveParameterNames, getInInoutNames, getInInoutNames, getInNames, getInOutNames, getMissingRequiredInputs, getName, getNumParameters, getOutInoutNames, getOutNames, getParameter, getParameterDescriptor, getParameterDescriptorUnconditioned, getParameterNames, getParameterUnconditioned, getSupplementalNames, getVerbose, getVersion, handleOperatorExecutionProgressEvent, hasInOutParameters, hasParameter, isAnnotatedParameter, isConfigured, print, print, print, printInterface, printInterface, readHistory, reinitializeParameterDescriptors, removeOperatorExecutionProgressEventListener, removeParameter, runOp, runOp, runOp, setConstructionMode, setConstructionMode, setConstructionMode, setHidingMode, setName, setParameter, setParameterUnconditioned, setVerbose, toStringVerbose, unconfiguredItems, validate, validateCustom, validateGeneric, writeHistory, writeHistory, writeHistoryprotected transient Vector<loci.common.StatusListener> statusListeners
@Parameter(label="Input Image",
required=true,
dataIOOrder=-10,
direction=IN,
mode=STANDARD,
description="Input image.")
protected transient MTBImage inputImg
@Parameter(label="Scenario",
required=false,
dataIOOrder=1,
direction=IN,
mode=STANDARD,
description="Relation of vessels to background.")
protected MFFDOGFilter2D.VesselMode mode
@Parameter(label="Expected Vessel Width",
required=false,
dataIOOrder=2,
direction=IN,
mode=STANDARD,
description="Expected size of vessels.")
protected Double expectedWidth
The width is used to select the standard deviation of the Gaussian, i.e.

@Parameter(label="Length",
required=false,
dataIOOrder=3,
direction=IN,
mode=STANDARD,
description="Length of vessel segments.")
protected Integer length
The length of the vessels is used to set the height of the filter masks.
@Parameter(label="Angular Sampling Steps",
required=true,
direction=IN,
mode=ADVANCED,
description="Angular sampling step size (in degrees).",
dataIOOrder=4)
protected int angleSampling
@Parameter(label="Size of Mean Filter",
required=true,
direction=IN,
mode=ADVANCED,
description="Size of mean filter.",
dataIOOrder=5)
protected int meanFilterSize
@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
@Parameter(label="Result Map",
dataIOOrder=0,
direction=OUT,
description="Resulting vessel map.")
protected transient MTBImageByte resultVesselMap
public MFFDOGFilter2D()
throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDOperatorExceptionprotected Object readResolve()
MTBOperatorThis 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.
readResolve in class MTBOperatorprotected void operate()
throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException,
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
operate in class de.unihalle.informatik.Alida.operator.ALDOperatorde.unihalle.informatik.Alida.exceptions.ALDOperatorExceptionde.unihalle.informatik.Alida.exceptions.ALDProcessingDAGExceptionpublic void setInputImage(MTBImage img)
img - Image to process.public void setVesselMode(MFFDOGFilter2D.VesselMode m)
m - Mode to assume.public void setWidth(Double w)
w - Expected width of vessels.public void setLength(Integer l)
l - Length value to apply.public void setSampling(int s)
s - Size of angular sampling interval.public MTBImageByte getResultVesselMap()
public void addStatusListener(loci.common.StatusListener statuslistener)
addStatusListener in interface loci.common.StatusReporterpublic void notifyListeners(loci.common.StatusEvent e)
notifyListeners in interface loci.common.StatusReporterpublic void removeStatusListener(loci.common.StatusListener statuslistener)
removeStatusListener in interface loci.common.StatusReporterCopyright © 2010–2025 Martin Luther University Halle-Wittenberg, Institute of Computer Science, Pattern Recognition and Bioinformatics. All rights reserved.