Utilities

Edge detection

The function extract_edges complements imfilter from Images.jl and can be used to extract edges from an image on CPU and GPU.

CorrelationFunctions.Utilities.extract_edgesFunction
extract_edges(array, filter, mode)

Perform edge extraction in the same way as in surfsurf and surfvoid functions from Map and Directional modules. array may be a CUDA array or an ordinary array. filter is a value of AbstractKernel type which selects an edge extraction algorithm. Boundary conditions are affected by mode. Periodic boundary conditions are assumed if mode is Periodic() and reflection from the boundaries is used if mode is NonPeriodic().

NB: We use reflection instead of zero-padding with NonPeriodic() to ensure that $F_{ss}^{(0)} == F_{ss}^{(1)}$ for two-phase media.

See also: AbstractKernel, AbstractMode.

source

Patterns for three-point functions

These patterns can be used to generate array-like objects which can be used as ps1 and ps2 arguments to the functions based on three-point statistics.

Misc

Some miscellaneous functions and helpers.

CorrelationFunctions.Utilities.read_cuboidFunction
read_cuboid(datapath :: String, side, dim)

Read 3D array from a disk. The data on the disk must be in binary format, one octet per sample. Totally, there must be $side^{dim}$ octets which are read into $side \times side \times \dots \times side$ array.

source
CorrelationFunctions.Utilities.lowfreq_energy_ratioFunction
lowfreq_energy_ratio(array, fraction = 0.5)

Calculate a ratio $E_a/E$ where $E$ is a total energy of a signal array and $E_a$ is the energy concentrated in frequencies $[0, af/2]$ where $f$ is the sampling rate and $a$ is set via parameter fraction. mean(array) is subtracted from the array before calculations.

This function can be helpful in estimating if array is suitable for calculating surface-surface or surface-void function. An empirical criterion is that if this function returns a value greater than 0.97, the array is good.

source