@Reference(type=Article, author={"Perona, P.","Malik, J."}, title="Scale-Space and Edge Detection Using Anisotropic Diffusion", year="1990", journal="IEEE Trans. Pattern Anal. Mach. Intell.", pages={"629","","639"}, url="http://dx.doi.org/10.1109/34.56205", month="July", number="7", publisher="IEEE Computer Society", volume="12", customData={"issue_date","July 1990","issn","0162-8828","numpages","11","doi","10.1109/34.56205","acmid","78304","address","Washington, DC, USA"}) public class AnisotropicDiffusion extends Object implements SinglebandImageProcessor<Float,FImage>
| Modifier and Type | Class and Description | 
|---|---|
| static interface  | AnisotropicDiffusion.ConductionCoefficientFunctionInterface describing a function that computes the conduction coefficient as a
 function of space and gradient magnitude. | 
| static class  | AnisotropicDiffusion.HighConstrastEdgeFunctionThe first conduction function proposed by Perona & Malik, that privileges
 high contrast edges over low constrast ones. | 
| static class  | AnisotropicDiffusion.WideRegionFunctionThe second conduction function proposed by Perona & Malik, that
 privileges wider regions over smaller ones. | 
SinglebandImageProcessor.Processable<T,S extends Image<T,S>,I extends Image<?,I>>| Modifier and Type | Field and Description | 
|---|---|
| protected AnisotropicDiffusion.ConductionCoefficientFunction | function | 
| protected float | lambda | 
| protected ConnectedComponent.ConnectMode | neighbourMode | 
| protected int | numIterations | 
| Constructor and Description | 
|---|
| AnisotropicDiffusion(int numIterations,
                    float lambda,
                    AnisotropicDiffusion.ConductionCoefficientFunction function)Construct using the given parameters. | 
| AnisotropicDiffusion(int numIterations,
                    float lambda,
                    AnisotropicDiffusion.ConductionCoefficientFunction function,
                    ConnectedComponent.ConnectMode neighbourMode)Construct using the given parameters. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | processImage(FImage image)Process an image. | 
| void | processImageOneIteration(FImage image)Perform a single iteration of anisotropic diffusion | 
protected int numIterations
protected float lambda
protected AnisotropicDiffusion.ConductionCoefficientFunction function
protected ConnectedComponent.ConnectMode neighbourMode
public AnisotropicDiffusion(int numIterations, float lambda, AnisotropicDiffusion.ConductionCoefficientFunction function, ConnectedComponent.ConnectMode neighbourMode)
numIterations - number of iterations of filtering to applylambda - the integration constant (less than or equal to 1/4 for
            4-neighbour mode and 1/8 for 8-neighbour)function - the conduction coefficient functionneighbourMode - the neighbourhood modepublic AnisotropicDiffusion(int numIterations, float lambda, AnisotropicDiffusion.ConductionCoefficientFunction function)
numIterations - number of iterations of filtering to applylambda - the integration constant (bigger than 0 and less than or equal to
            1/4)function - the conduction coefficient functionpublic void processImage(FImage image)
ImageProcessorImage.internalAssign(Image).processImage in interface ImageProcessor<FImage>image - The image to process in place.public void processImageOneIteration(FImage image)
image - the image