public abstract class AbstractAnisotropicDiffusion extends java.lang.Object implements ProgressReporter
diffuse(ij.process.FloatProcessor,
ij.process.FloatProcessor)
.Modifier and Type | Field and Description |
---|---|
protected java.util.List<ProgressListener> |
progressListeners |
Constructor and Description |
---|
AbstractAnisotropicDiffusion() |
Modifier and Type | Method and Description |
---|---|
void |
addProgressListener(ProgressListener l)
Add progress listener.
|
double |
currentProgress()
Report what fraction of the processing task was already completed.
|
protected abstract void |
diffuse(ij.process.FloatProcessor src,
ij.process.FloatProcessor dest)
Perform single diffusion operation, called iteratively by
process(ij.process.FloatProcessor) . |
double |
getMeanSquareError() |
int |
getNumberOfIterations() |
double |
getTimeStep() |
ij.process.FloatProcessor |
process(ij.process.FloatProcessor src)
Performs anisotropic diffusion.
|
void |
removeAllProgressListener()
Remove all progress listener.
|
void |
removeProgressListener(ProgressListener l)
Remove progress listener.
|
void |
setMeanSquareError(double meanSquareError) |
void |
setNumberOfIterations(int numberOfIterations) |
void |
setTimeStep(double timeStep) |
protected double |
time() |
protected final java.util.List<ProgressListener> progressListeners
public int getNumberOfIterations()
public void setNumberOfIterations(int numberOfIterations)
public double getTimeStep()
public void setTimeStep(double timeStep)
public double getMeanSquareError()
public void setMeanSquareError(double meanSquareError)
public double currentProgress()
ProgressReporter
currentProgress
in interface ProgressReporter
public void addProgressListener(ProgressListener l)
ProgressReporter
addProgressListener
in interface ProgressReporter
l
- listener to add.public void removeProgressListener(ProgressListener l)
ProgressReporter
removeProgressListener
in interface ProgressReporter
l
- listener to remove.public void removeAllProgressListener()
ProgressReporter
removeAllProgressListener
in interface ProgressReporter
public ij.process.FloatProcessor process(ij.process.FloatProcessor src)
numberOfIterations
calls to diffuse(ij.process.FloatProcessor, ij.process.FloatProcessor)
, updating value of
time
before each call.src
- input image to which to apply anisotropic diffusion.protected abstract void diffuse(ij.process.FloatProcessor src, ij.process.FloatProcessor dest)
process(ij.process.FloatProcessor)
.src
- source imagedest
- destination imageprotected double time()