@ALDAOperator(genericExecutionMode=ALL, level=APPLICATION, allowBatchMode=true) public class MedialnessMultiScaleFilter2D extends MTBOperator
2D multi-scale medialness filter for vessel segmentation. The filter detects vessel-like structures in 2D space and is derived from a medialness function, used to detect tubular structures in 3D space. Related publication: author = {Moghimirad, Elahe and Rezatofighi, Seyed Hamid and Soltanian-Zadeh, Hamid}, title = {Retinal vessel segmentation using a multi-scale medialness function}, journal = {Computers in Biology and Medicine}, year = {2012}, volume = {42}, number = {1}, pages = {50--60},
Modifier and Type | Class and Description |
---|---|
static class |
MedialnessMultiScaleFilter2D.FilterMode
Settings.
|
Modifier and Type | Field and Description |
---|---|
private MedialnessMultiScaleFilter2D.FilterMode |
filterMode |
private MTBImageDouble |
ImageXX |
private MTBImageDouble |
ImageXY |
private MTBImageDouble |
ImageYX |
private MTBImageDouble |
ImageYY |
private MTBImage |
inputImage |
private MTBImageDouble |
outputImage |
private MTBImage |
processedImage |
private Double |
scaleMax |
private Double |
scaleMin |
private Integer |
scaleNum |
private Double |
theta |
private Boolean |
useThresh |
Constructor and Description |
---|
MedialnessMultiScaleFilter2D()
Standard constructor.
|
MedialnessMultiScaleFilter2D(MTBImage _inputImage,
Integer _scaleNum,
Double _scaleMin,
Double _scaleMax,
Double _theta,
MedialnessMultiScaleFilter2D.FilterMode _filterMode,
Boolean _useThresh)
Constructor to create a new 2D multi-scale medialness filter.
|
Modifier and Type | Method and Description |
---|---|
private Jama.EigenvalueDecomposition |
getEigenvalueDecompositionAt(int x,
int y)
Get eigenvalue decomposition of of the Hessian matrix to get largest
eigenvalue at pixel (x,y) to get the vector perpendicular to the vessel
path and eigenvalues.
|
MedialnessMultiScaleFilter2D.FilterMode |
getFilterMode()
Get filter mode to define relation of foreground to background.
|
private void |
getImageDerivatives()
Calculate second partial derivatives of the input image to generate Hessian
matrix at each pixel position and getting the vector perpendicular to the
vessel path.
|
MTBImage |
getInputImage()
Get input image.
|
MTBImageDouble |
getOutputImage()
Get medialness filter image.
|
Double |
getScaleMax()
Get maximum of scales.
|
Double |
getScaleMin()
Get minimum of scales.
|
Integer |
getScaleNum()
Get number of scales.
|
Double |
getTheta()
Get coefficient to relate vessel radius and scale.
|
Boolean |
getUseThresh()
Get adaptive thresholding tag.
|
protected void |
operate() |
void |
setFilterMode(MedialnessMultiScaleFilter2D.FilterMode _filterMode)
Set filter mode to define relation of foreground to background.
|
void |
setInputImage(MTBImage inputImage)
Set input image.
|
void |
setScaleMax(Double scaleMax)
Set maximum of scales.
|
void |
setScaleMin(Double scaleMin)
Set minimum of scales.
|
void |
setScaleNum(Integer scaleNum)
Set number of scales.
|
void |
setTheta(Double theta)
Set coefficient to relate vessel radius and scale.
|
void |
setUseThresh(Boolean _useThresh)
Set adaptive thresholding tag.
|
readResolve
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
@Parameter(label="Input Image", required=true, direction=IN, description="Input image.", mode=STANDARD, dataIOOrder=0) private transient MTBImage inputImage
@Parameter(label="Number of Scales", required=true, direction=IN, description="Number of scales.", mode=STANDARD, dataIOOrder=1) private Integer scaleNum
@Parameter(label="Minimum of Scales", required=true, direction=IN, description="Minimum of scales.", mode=STANDARD, dataIOOrder=2) private Double scaleMin
@Parameter(label="Maximum of Scales", required=true, direction=IN, description="Maximum of scales.", mode=STANDARD, dataIOOrder=3) private Double scaleMax
@Parameter(label="Coefficient", required=true, direction=IN, description="Coefficient to relate vessel radius and scale.", mode=STANDARD, dataIOOrder=4) private Double theta
@Parameter(label="Filter Mode", required=true, direction=IN, description="Mode to set relation of foreground to background.", mode=STANDARD, dataIOOrder=5) private MedialnessMultiScaleFilter2D.FilterMode filterMode
@Parameter(label="Adaptive Thresholding", required=true, direction=IN, description="Use adaptive thresholding to reduce background noise.", mode=STANDARD, dataIOOrder=6) private Boolean useThresh
@Parameter(label="Output Image", required=true, direction=OUT, description="Medialness filtered output image.") private transient MTBImageDouble outputImage
private transient MTBImage processedImage
private transient MTBImageDouble ImageXX
private transient MTBImageDouble ImageXY
private transient MTBImageDouble ImageYX
private transient MTBImageDouble ImageYY
public MedialnessMultiScaleFilter2D() throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
public MedialnessMultiScaleFilter2D(MTBImage _inputImage, Integer _scaleNum, Double _scaleMin, Double _scaleMax, Double _theta, MedialnessMultiScaleFilter2D.FilterMode _filterMode, Boolean _useThresh) throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
_inputImage
- input image_scaleNum
- number of scales_scaleMin
- minimum of scales_scaleMax
- maximum of scales_theta
- coefficient to relate vessel radius and scale_filterMode
- filter mode to define relation of foreground to background_useThresh
- flag for adaptive thresholding to reduce background noisede.unihalle.informatik.Alida.exceptions.ALDOperatorException
public MTBImage getInputImage()
public void setInputImage(MTBImage inputImage)
public Integer getScaleNum()
public void setScaleNum(Integer scaleNum)
public Double getScaleMin()
public void setScaleMin(Double scaleMin)
public Double getScaleMax()
public void setScaleMax(Double scaleMax)
public Double getTheta()
public void setTheta(Double theta)
public MedialnessMultiScaleFilter2D.FilterMode getFilterMode()
public void setFilterMode(MedialnessMultiScaleFilter2D.FilterMode _filterMode)
public Boolean getUseThresh()
public void setUseThresh(Boolean _useThresh)
public MTBImageDouble getOutputImage()
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
private Jama.EigenvalueDecomposition getEigenvalueDecompositionAt(int x, int y)
x
- pixel coordinate in x-directiony
- pixel coordinate in y-directionprivate void getImageDerivatives()
Copyright © 2010–2020 Martin Luther University Halle-Wittenberg, Institute of Computer Science, Pattern Recognition and Bioinformatics. All rights reserved.