Although not obvious from Equation 4.1, the discrete implementation of the nonlinear anisotropic diffusion filter is straightforward. Three key ideas help map the problem from the continuous domain to the discrete domain:
Using these ideas, a 1D derivation for the filter will be described. The derivation will then be generalized to the 2D and 3D cases.
In one dimension, the gradient and divergence expressions in Equation 4.1 reduce to derivatives:
Substituting discrete approximations for the derivatives and introducing the flow functions we get:
and are functions of , , and ; the notation has been dropped for simplicity. and are easily computed by substituting the discrete approximation of the gradient into Equation 4.2:
Equation 4.8 indicates that, for each iteration, the value of each element in a 1D array changes according to the flow contributed from its nearest neighbors. Figure 4.3 represents this concept graphically.
Figure 4.3: Visualization of 1D diffusion between elements in an array. is modified by the flow contributions, and .
An expression for the discrete implementation of the 1D diffusion filter can be derived by determining the element values after each iteration:
The iteration scheme expressed in Equation 4.11 is stable as long as is sufficiently small. Bounds for are computed in Section 4.3.4.
Note that the scheme is nonconvergent. Nordström provides a convergent version of the process he calls biased anisotropic diffusion :
where is the initial array before filtering.
The 1D discrete formulation of the diffusion process is easily extended to the 2D case:
The filtering process consists of updating each pixel in the image by an amount equal to the flow contributed by its four nearest neighbors:
As with the 1D case, the 2D process can be represented graphically (see Figure 4.4). Eight nearest neighbors can be used if the flow contribution of the diagonal neighbors is scaled according to their relative distance, , from the pixel of interest:
Anisotropic images can be handled similarly. The 3D formulation that follows assumes anisotropicy.
Figure 4.4: Visualization of 2D diffusion among pixels in an image. is modified by the flow contributions, .
The discrete formulation of the 3D nonlinear anisotropic diffusion filter can be extrapolated from the 2D description. The 3D filter, utilizing six nearest neighbors, is expressed as:
where , , and are relative distances between and its nearest neighbors in the , , and dimensions respectively. This expression assumes volume anisotropicy and can be extended to include 26 nearest neighbors in a similar manner to the 2D case. Again, the functional notation has been dropped from the flow functions for clarity.
The discrete implementation of the nonlinear anisotropic diffusion filter is a numerical integration of a partial differential equation. Methods for analyzing the stability of numerical integrations can be found in many numerical analysis texts (see ).
Gerig et al. use a simple analysis to find bounds for the diffusion filter integration constant, . The analysis is repeated here for completeness.
must be in the range, , where is a positive real number. The nearer is to zero, the closer the integration approximates the continuous case. However, many iteration steps would be required by the filter.
The upper bound, , can be determined from the discrete formulation of the diffusion process (spatial indices have been dropped for clarity):
where the subscript, , refers to the nearest neighbors of . Data isotropicy has been assumed.
In order for the process described by Equation 4.17 to be stable, the weight of the central intensity, , must be greater than or equal to the maximum weight of the neighborhood intensities, :
By setting in the diffusion functions from equations 4.3 and 4.4 to infinity, the diffusion coefficients, , are maximized and equal to unity, independent of gradient:
Equation 4.19 assumes that the nearest neighbors are equidistant. The larger distance for diagonal neighbors in 2D and 3D data sets and the differing distances in anisotropic data sets are easily accounted for by adding a relative distance factor:
where is the relative distance between neighbor, , and the central node. for the four nearest neighbors in images, for diagonal neighbors, and for the corners of neighborhood cubes in volumes.
The bounds for for filters operating on isotropic data sets are listed in Table 4.1.