isKernel | R Documentation |
These functions can be used to generate kernels for morphological, smoothing
or resampling operations. There are two types of kernels: kernel arrays,
which are used with morph
, and kernel functions, which are
used with resample
.
isKernel(object) isKernelArray(object) isKernelFunction(object) kernelArray(values) shapeKernel(width, dim = length(width), type = c("box", "disc", "diamond"), binary = TRUE, normalised = FALSE) gaussianKernel(sigma, dim = length(sigma), size = 6 * sigma, normalised = TRUE) sobelKernel(dim, axis = 1) kernelFunction(name = c("box", "triangle", "mitchell-netravali", "lanczos"), ...) boxKernel() triangleKernel() mitchellNetravaliKernel(B = 1/3, C = 1/3) mnKernel(B = 1/3, C = 1/3) lanczosKernel()
object |
Any object. |
values |
A numeric vector or array, containing the values of the kernel array. |
width |
A numeric vector giving the width of the shape in each
dimension, in array elements. Does not need to be integer-valued, or equal
for all dimensions. Will be recycled to length |
dim |
An integer value giving the dimensionality of the kernel.
Defaults to the length of |
type |
A string giving the type of shape to produce. In one dimension, these shapes are all equivalent. |
binary |
If |
normalised |
If |
sigma |
A numeric vector giving the standard deviation of the
underlying Gaussian distribution in each dimension, in array elements.
Does not need to be equal for all dimensions. Will be recycled to length
|
size |
A numeric vector giving the width of the kernel in each
dimension, which will be rounded up to the nearest odd integer. Defaults
to four times the corresponding |
axis |
The axis along which the gradient operator will be applied. |
name |
A string giving the name of the kernel function required. |
... |
Parameters for the kernel function. |
B, C |
Mitchell-Netravali coefficients, each of which must be between 0 and 1. |
There are two forms of kernel used by this package. Kernel arrays, otherwise
known in mathematical morphology as structuring elements, are numeric arrays
with class kernelArray
. They are defined on a grid of odd width, and
are used by morph
and related functions. Kernel functions, by
contrast, are represented in R as a list containing a name and, optionally,
some parameters. The real implementation is in C++. They are defined
everywhere within the support of the kernel, and are used by
resample
and friends. The key distinction is in whether the
kernel will always be centred exactly on the location of an existing value
in the data (for kernel arrays) or not (for kernel functions).
The kernelArray
and kernelFunction
functions create objects of
the corresponding classes, while isKernelArray
and
isKernelFunction
test for them. In addition, isKernel
returns
TRUE
if its argument is of either kernel class.
The remaining functions generate special-case kernels: shapeKernel
generates arrays with nonzero elements in a box, disc or diamond shape for
use with morphology
functions; gaussianKernel
generates
Gaussian coefficients and is used by gaussianSmooth
;
sobelKernel
generates the Sobel-Feldman gradient operator, for use by
sobelFilter
; boxKernel
is used for “nearest
neighbour” resampling, and triangleKernel
for linear, bilinear, etc.
The Mitchell-Netravali kernel, a.k.a. BC-spline, is based on a family of
piecewise-cubic polynomial functions, with support of four times the pixel
separation in each dimension. The default parameters are the ones
recommended by Mitchell and Netravali as a good trade-off between various
artefacts, but other well-known special cases include B=1, C=0 (the cubic
B-spline) and B=0, C=0.5 (the Catmull-Rom spline). mnKernel
is a
shorter alias for mitchellNetravaliKernel
. Finally, the Lanczos
kernel is a five-lobe windowed sinc function.
For isKernel
, isKernelArray
and
isKernelFunction
, a logical value. For kernelArray
,
shapeKernel
, gaussianKernel
and sobelKernel
, a kernel
array. For kernelFunction
, boxKernel
, triangleKernel
,
mitchellNetravaliKernel
and mnKernel
, a kernel function.
Jon Clayden <code@clayden.org>
The Mitchell-Netravali kernel is described in the following paper.
D.P. Mitchell & A.N. Netravali (1988). Reconstruction filters in computer graphics. Computer Graphics 22(4):221-228.
morph
for general application of kernel arrays to
data, morphology
for mathematical morphology functions,
resample
for resampling, and gaussianSmooth
for smoothing. Also see sampleKernelFunction
for kernel
sampling and plotting.
shapeKernel(c(3,5), type="diamond") gaussianKernel(c(0.3,0.3)) mnKernel()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.