@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, writeHistory
protected 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.ALDOperatorException
protected Object readResolve()
MTBOperator
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.
readResolve
in class MTBOperator
protected void operate() throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException, de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
operate
in class de.unihalle.informatik.Alida.operator.ALDOperator
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
public 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.StatusReporter
public void notifyListeners(loci.common.StatusEvent e)
notifyListeners
in interface loci.common.StatusReporter
public void removeStatusListener(loci.common.StatusListener statuslistener)
removeStatusListener
in interface loci.common.StatusReporter
Copyright © 2010–2020 Martin Luther University Halle-Wittenberg, Institute of Computer Science, Pattern Recognition and Bioinformatics. All rights reserved.