@ALDAOperator(genericExecutionMode=ALL,
level=APPLICATION,
shortDescription="Operator for integrated cell image analysis.")
public class Mica2D
extends MTBOperatorControllable
Given a multi-channel input image this operator detects nuclei, particles and the cell boundary and integrates all results to complete cell statistics.
de.unihalle.informatik.Alida.operator.ALDOperatorControllable.OperatorControlStatus, de.unihalle.informatik.Alida.operator.ALDOperatorControllable.OperatorControlStatusHandle, de.unihalle.informatik.Alida.operator.ALDOperatorControllable.OperatorExecutionStatus| Modifier and Type | Field and Description |
|---|---|
private int |
cellChannel
Channel for cell boundary detection.
|
private int[] |
channelsToCopy
Set of image channels to copy into result stack.
|
private CytoplasmAnalyzer2D |
cytoDetector
Cytoplasma detection operator.
|
private boolean |
doGauss
Preprocess cytoplasm channel by Gaussian smoothing.
|
private boolean |
excludeParticlesInNuclei
Flag to ignore particle in nuclei regions.
|
private double |
gaussSigma
Sigma for Gaussian smoothing.
|
private boolean |
imagesAsMasks
If flag is true, only masks are copied to result stack.
|
private MTBImage |
inImg
Multi-channel input image.
|
private int |
nucleiChannel
Nuclei channel.
|
private MTBPolygon2DSet |
nucleiContours
(Optional) initial snake contours for nuclei.
|
private NucleusDetector2D |
nucleiDetector
Operator for nucleus detection/separation.
|
private MultiChannelParticleAnalyzer2D |
particleDetector
Particle detector.
|
private boolean |
prepareFinalResultStack
Flag for preparing final result image(s) stack.
|
private SegResult_Complete |
resultData
Result data object.
|
private SegResult_Cytoplasm |
resultDataCells
Local container for cell cytoplasm segmentation result.
|
private Vector<MTBImage> |
resultImages
Local container for set of segmentation result and channel copy images.
|
private Mica2DTableModel |
resultStats
Result data object.
|
private de.unihalle.informatik.Alida.datatypes.ALDDirectoryString |
saveIntermediateResultPath
Path where to save intermediate results.
|
private boolean |
saveIntermediateResults
Flag for saving intermediate results to a specified directory.
|
private boolean |
showIntermediateResults
Flag for showing intermediate results.
|
private SegResultEnums.MeasureUnit |
units
Units used in measurements, default is pixels.
|
| Constructor and Description |
|---|
Mica2D()
Default constructor.
|
Mica2D(MTBImage img,
int nc,
int cc)
Default constructor.
|
| Modifier and Type | Method and Description |
|---|---|
String |
getDocumentation() |
SegResult_Complete |
getResultData()
Returns result data object.
|
String |
getSaveIntermediateResultPath()
Returns path where to save intermediate results.
|
protected void |
operate()
Invokes analysis procedure on given image.
|
private MTBImageRGB |
prepareResultImageStack()
Initialize result image stack.
|
void |
saveIntermediateResults(boolean flag)
Set flag to save intermediate results.
|
void |
setChannelsToCopy(int[] carray)
Specify list of channels to copy to result stack.
|
void |
setDoGauss(boolean _doGauss)
Specify if cell channel is to be smoothed prior to detection.
|
void |
setGaussSigma(double _gaussSigma)
Specify sigma for Gaussian smoothing.
|
void |
setInitialSnakes(MTBPolygon2DSet f)
Specify set of initial snakes.
|
void |
setMeasureUnits(SegResultEnums.MeasureUnit mu)
Specify how to measure lengths and areas.
|
void |
setSaveIntermediateResultPath(String sIntermediateResultPath)
Set path where to save intermediate results.
|
void |
showIntermediateResults(boolean flag)
Set flag to display intermediate results.
|
void |
showMasksOnly(boolean flag)
Set flag indicating whether to show masks or overlays in result stack.
|
boolean |
supportsStepWiseExecution() |
addALDConfigurationEventListener, addALDControlEventListener, fireALDConfigurationEvent, fireALDControlEvent, getControlStatus, getControlStatusHandle, getExecutionStatus, handleALDConfigurationEvent, handleALDControlEvent, removeALDConfigurationEventListener, removeALDControlEventListener, setControlStatus, setNotifyRecursiveFlagaddOperatorExecutionProgressEventListener, addParameter, addParameter, addParameterUnconditioned, fieldContained, fireOperatorExecutionProgressEvent, getALDPortHashAccessKey, getConstructionMode, 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, readResolve, 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",
dataIOOrder=-20)
private transient MTBImage inImg
@Parameter(label="Nucleus channel",
required=true,
dataIOOrder=-19,
direction=IN,
description="Nuclei channel (index starts with 1, -1 if none available).")
private int nucleiChannel
@Parameter(label="Cytoplasm channel",
required=true,
dataIOOrder=-18,
direction=IN,
description="Cytoplasm channel, index starts with 1.")
private int cellChannel
@Parameter(label="Nuclei detector",
required=false,
dataIOOrder=-20,
direction=IN,
description="Nucleus detector.")
private NucleusDetector2D nucleiDetector
@Parameter(label="Nuclei contours",
required=false,
dataIOOrder=-19,
direction=IN,
description="(Optional) set of nuclei contours.")
private MTBPolygon2DSet nucleiContours
If a nucleus channel is available contours can be extracted automatically.
@Parameter(label="Cytoplasm detector",
required=false,
dataIOOrder=-18,
direction=IN,
description="Cytoplasm detector.")
private CytoplasmAnalyzer2D cytoDetector
@Parameter(label="Apply Gauss to cytoplasm channel",
required=false,
direction=IN,
dataIOOrder=-17,
description="Apply Gaussian smoothing to cytoplasm channel.")
private boolean doGauss
@Parameter(label="Gauss sigma",
required=false,
direction=IN,
description="Sigma for Gaussian smoothing.",
dataIOOrder=-16)
private double gaussSigma
@Parameter(label="Particle detector",
required=false,
dataIOOrder=-15,
direction=IN,
description="Minimum size of particles.")
private MultiChannelParticleAnalyzer2D particleDetector
@Parameter(label="Ignore particles in nuclei regions",
required=false,
dataIOOrder=-14,
direction=IN,
description="Ignore particles in nucleis.")
private boolean excludeParticlesInNuclei
@Parameter(label="Measure Units",
required=false,
direction=IN,
dataIOOrder=-10,
description="Units for measuring areas and sizes.")
private SegResultEnums.MeasureUnit units
@Parameter(label="Result data summary",
direction=OUT,
description="Result segmentation masks.")
private transient SegResult_Complete resultData
@Parameter(label="Table of result statistics",
direction=OUT,
description="Result statistical data.")
private transient Mica2DTableModel resultStats
@Parameter(label="Show final result image stack",
direction=IN,
supplemental=true,
dataIOOrder=-30,
mode=STANDARD,
description="Flag to enable result image stack display.")
private boolean prepareFinalResultStack
@Parameter(label="Show intermediate results",
direction=IN,
supplemental=true,
dataIOOrder=-20,
description="Flag for showing intermediate result image(s)/data.")
private boolean showIntermediateResults
Be careful when using this option remote from commandline!
@Parameter(label="Save intermediate results",
direction=IN,
supplemental=true,
dataIOOrder=-19,
mode=ADVANCED,
description="Flag for saving intermediate result image(s)/data.")
private boolean saveIntermediateResults
@Parameter(label="Save intermediate results to...",
direction=IN,
supplemental=true,
dataIOOrder=-18,
mode=ADVANCED,
description="Path where to save intermediate results.")
private de.unihalle.informatik.Alida.datatypes.ALDDirectoryString saveIntermediateResultPath
@Parameter(label="List of channel IDs to copy to result",
supplemental=true,
direction=IN,
mode=ADVANCED,
dataIOOrder=-15,
description="Array of image channels to copy to result stack.")
private int[] channelsToCopy
@Parameter(label="Show b/w masks",
dataIOOrder=-16,
direction=IN,
supplemental=true,
mode=ADVANCED,
description="Flag for showing masks only instead of overlays.")
private boolean imagesAsMasks
private transient SegResult_Cytoplasm resultDataCells
public Mica2D()
throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDOperatorExceptionpublic Mica2D(MTBImage img, int nc, int cc) throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
img - Input multi-layer image to be processed.nc - Nuclei channel.cc - Cytoplasm channel.de.unihalle.informatik.Alida.exceptions.ALDOperatorExceptionpublic boolean supportsStepWiseExecution()
supportsStepWiseExecution in class de.unihalle.informatik.Alida.operator.ALDOperatorControllablepublic void setInitialSnakes(MTBPolygon2DSet f)
public void showIntermediateResults(boolean flag)
public void saveIntermediateResults(boolean flag)
public String getSaveIntermediateResultPath()
public void setSaveIntermediateResultPath(String sIntermediateResultPath)
public void setChannelsToCopy(int[] carray)
public void showMasksOnly(boolean flag)
public void setMeasureUnits(SegResultEnums.MeasureUnit mu)
public void setDoGauss(boolean _doGauss)
public void setGaussSigma(double _gaussSigma)
public SegResult_Complete getResultData()
protected 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.ALDProcessingDAGExceptionprivate MTBImageRGB prepareResultImageStack()
Transfers result images and selected input channels to a multi-channel RGB image.
public String getDocumentation()
getDocumentation in class de.unihalle.informatik.Alida.operator.ALDOperatorCopyright © 2010–2020 Martin Luther University Halle-Wittenberg, Institute of Computer Science, Pattern Recognition and Bioinformatics. All rights reserved.