@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, setNotifyRecursiveFlag
addOperatorExecutionProgressEventListener, 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.ALDOperatorException
public 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.ALDOperatorException
public boolean supportsStepWiseExecution()
supportsStepWiseExecution
in class de.unihalle.informatik.Alida.operator.ALDOperatorControllable
public 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.ALDOperator
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
private 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.ALDOperator
Copyright © 2010–2020 Martin Luther University Halle-Wittenberg, Institute of Computer Science, Pattern Recognition and Bioinformatics. All rights reserved.