@ALDAOperator(genericExecutionMode=SWING, level=STANDARD, shortDescription="Segments the wound area of a scratch assay image.") public class ScratchAssaySegmenter extends MTBOperator
Modifier and Type | Field and Description |
---|---|
private Integer |
closingMaskSize |
private Integer |
entropyFilterSize |
private MTBImage |
entropyImg |
private MTBImage |
inImg |
private MTBImage |
initMask |
private Boolean |
isHorizontal |
private Integer |
maxIter |
private String |
modelFile |
private Boolean |
noCheck |
private Integer |
numIterations |
private MTBImage |
resultImg |
private Long |
runtime |
private Double |
scratchArea |
private double[] |
scratchFeatures |
private Integer |
sigma |
private int |
sizeX |
private int |
sizeY |
private de.unihalle.informatik.Alida.datatypes.ALDFileString |
svmFile |
private Boolean |
useExternalSVM |
Constructor and Description |
---|
ScratchAssaySegmenter() |
ScratchAssaySegmenter(MTBImage inImg,
int sigma,
int entropyFilterSize,
boolean isHorizontal,
boolean noCheck,
int maxIter) |
Modifier and Type | Method and Description |
---|---|
private double |
classify(MTBImage entropyImg,
MTBImage scratchMask,
String modelFile)
decide, whether the given entropy image contains an open scratch or not
|
private MTBImage |
createInitBar(boolean horizontal)
create rectangular shaped bar as initialization for the scratch
|
private double |
getBhattacharyyaCoefficient(MTBImage entropyImg,
MTBImage scratchMask) |
String |
getDocumentation() |
MTBImage |
getEntropyImage() |
private double |
getEntropyMeanDifference(MTBImage entropyImg,
MTBImage scratchMask) |
private double |
getKolmogorovSmirnovStatistic(MTBImage entropyImg,
MTBImage scratchMask) |
Integer |
getNumIterations() |
MTBImage |
getResultImage() |
Long |
getRuntime() |
Double |
getScratchArea() |
double[] |
getScratchFeatures() |
private double |
measure()
measures the scratch area, i.e. number of pixels that don't have value 0
|
protected void |
operate() |
void |
setInitMask(MTBImage initMask) |
void |
setSVMFile(String path) |
void |
useExternalSVM(boolean useExternalSVM) |
readResolve
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, 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, supplemental=false, description="input image", mode=STANDARD, dataIOOrder=0) private transient MTBImage inImg
@Parameter(label="initialization mask", required=false, direction=IN, supplemental=false, description="initialization mask", mode=ADVANCED, dataIOOrder=1) private transient MTBImage initMask
@Parameter(label="horizontal scratch", required=true, direction=IN, supplemental=false, description="horizontally or vertically oriented scratch", mode=STANDARD, dataIOOrder=2) private Boolean isHorizontal
@Parameter(label="\u03c3", required=true, direction=IN, supplemental=false, description="standard deviation of gauss filter", mode=STANDARD, dataIOOrder=3) private Integer sigma
@Parameter(label="entropy filter size", required=true, direction=IN, supplemental=false, description="size of entropy filter mask", mode=STANDARD, dataIOOrder=4) private Integer entropyFilterSize
@Parameter(label="maximum iterations", required=false, direction=IN, supplemental=false, description="maximum number of iterations of level set segmentation", mode=ADVANCED, dataIOOrder=5) private Integer maxIter
@Parameter(label="don\'t check for scratch presence", required=false, direction=IN, supplemental=false, description="don\'t check for scratch presence prior to segmentation", mode=STANDARD, dataIOOrder=6) private Boolean noCheck
@Parameter(label="use external svm file", required=false, direction=IN, supplemental=false, description="should an external svm file be used for classification", mode=ADVANCED, dataIOOrder=7) private Boolean useExternalSVM
@Parameter(label="external svm file", required=false, direction=IN, supplemental=false, description="absolute path to external svm model file", mode=ADVANCED, dataIOOrder=8) private de.unihalle.informatik.Alida.datatypes.ALDFileString svmFile
@Parameter(label="scratch area", required=true, direction=OUT, supplemental=false, description="detected scratch area") private Double scratchArea
@Parameter(label="result image", required=true, direction=OUT, supplemental=false, description="resulting segmented image") private transient MTBImage resultImg
@Parameter(label="number of iterations", required=false, direction=OUT, supplemental=true, description="number of iterations required for the segmentation") private Integer numIterations
@Parameter(label="runtime", required=false, direction=OUT, supplemental=true, description="time required to perform the segmentation") private Long runtime
@Parameter(label="entropy image", required=false, direction=OUT, supplemental=true, description="entropy image") private transient MTBImage entropyImg
private int sizeX
private int sizeY
private double[] scratchFeatures
private String modelFile
private Integer closingMaskSize
public ScratchAssaySegmenter() throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
public ScratchAssaySegmenter(MTBImage inImg, int sigma, int entropyFilterSize, boolean isHorizontal, boolean noCheck, int maxIter) throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
inImg
- input imagesigma
- variance of gauss filterentropyFilterSize
- size of mask for entropy filteringisHorizontal
- is scratch horizontally oriented (assumed to be vertically oriented else)noCheck
- don't check for scratch presence prior to segmentationmaxIter
- maximum number of iterationsde.unihalle.informatik.Alida.exceptions.ALDOperatorException
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 MTBImage getResultImage() throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
public Double getScratchArea() throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
public Integer getNumIterations()
public Long getRuntime()
public MTBImage getEntropyImage()
public void useExternalSVM(boolean useExternalSVM)
public void setSVMFile(String path)
public void setInitMask(MTBImage initMask)
public double[] getScratchFeatures() throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException, de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
private double measure() throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
private MTBImage createInitBar(boolean horizontal)
horizontal
- should the craeted bar be horizontally orientedprivate double classify(MTBImage entropyImg, MTBImage scratchMask, String modelFile) throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException, de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
entropyImg
- scratchMask
- modelFile
- de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
private double getEntropyMeanDifference(MTBImage entropyImg, MTBImage scratchMask) throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException, de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
entropyImg
- scratchMask
- de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
private double getBhattacharyyaCoefficient(MTBImage entropyImg, MTBImage scratchMask) throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException, de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
entropyImg
- scratchMask
- de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
private double getKolmogorovSmirnovStatistic(MTBImage entropyImg, MTBImage scratchMask) throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException, de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
entropyImg
- scratchMask
- de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
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.