edgepoints: Edge detection in noisy images

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/edgepoints.R

Description

Detection of edge points by the difference of two rotated and asymmetric Kernel- or M-Kernel-Estimators.

Usage

1
2
3
4
  edgepoints(data, h1n, h2n, asteps = 4,
    estimator = "kernel", kernel = "mean",
    score = "gauss", sigma = 1,
    kernelfunc = NULL, margin = FALSE)

Arguments

data

numerical matrix representation of the (noisy) image.

h1n, h2n

positive numbers. Bandwidth for the kernels.

asteps

optional positive integer. Number of different angles used.

estimator

optional string. Estimator used within the windows. Possible values are:

  • "kernel": Kernel-Estimators. The used kernel function can be selected by means of kernel.

  • "M_mean": M-Kernel-Estimators with mean as starting value. The used kernel function can be selected by means of kernel, the score function can be chosen with score.

  • "M_median": M-Kernel-Estimators with median as starting value. The used kernel function can be selected by means of kernel, the score function can be chosen with score.

  • "median": Median, what is a special M-Kernel-Estimator.

  • "test_mean": Multiple Test for equal means in both windows for every angle.

  • "test_median": Multiple Test for equal means in both windows for every angle.

kernel

optional string. Kernel function for estimator = "kernel", estimator = "M_mean", or estimator = "M_median". Possible values are:

  • "mean": Rectangular kernel. With estimator = "kernel", this gives an ordinary mean estimator. With estimator = "M_mean" or estimator = "M_median", this gives an M-Estimator.

  • "linear": Linear kernel function. The distance of the observations to the common midpoint of both windows is linearly measured.

  • "linear2": Linear kernel function. The distance of the observations to the midpoint of the window they belong to is linearly measured.

  • "gauss": Density of the normal distribution with sd = 0.5 and zero outside [-1,1]x[-1,1].

  • "func": Arbitrary kernel function given by kernelfunc.

score

optional string. Score function for M-Kernel-Estimators if estimator = "M_mean" or estimator = "M_median". Possible values are:

  • "gauss": negative density of the normal distribution. The deviation can be given by means of parameter sigma.

  • "huber": The Huber score function is the absolute value (median) within an interval [-c, c] and the square function (mean) outside this interval. The value of c can be given by means of the parameter sigma.

sigma

optional positiv number. Parameter for the score function "gauss" or "huber".

kernelfunc

optional function taking two numbers as arguments and returning a positive number. Used as kernel function given kernel = "func". Note that the function should be zero outside [-1,1]x[-1,1] and that only one function must be handed over for both windows. The 'lower' part of the domain, e.g., [-1,1]x[-1,0], is used within one window while the 'upper' part is used within the other.

margin

Optional value. Results near the margin are in general not very reasonable. Setting margin = TRUE, they are calculated nevertheless. With margin = FALSE, the returned matrices have the same dimension as data but the jump heights at the margin are set to zero. Setting margin = "cut", the retuned matrices are cut down by the margins. The default is margin = FALSE.

Details

edgepoints implements several versions of the RDKE method, introduced by Qiu in 1997. The original method, which uses kernel estimates, is a generalized version which uses M-Kernel-Estimators and two test procedures. The test procedures are multiple tests for different angles for the hypothesis of equal means (or medians) in both windows. All methods apply rotating and scaling in the correct order (see Garlipp, 2004).

Value

A list of two numerical matrices. The first matrix contains the maximal jump height for every pixel if the chosen estimator is not a test procedure, and p-values otherwise. The second matrix contains the angle which leads to the maximal jump height or minimal p-value.

Author(s)

Tim Garlipp, [email protected]

References

Garlipp, T. (2004), On Robust Jump Detection in Regression Surface with Applications to Image Analysis, Carl-von-Ossietzky-Universitaet Oldenburg, Dissertation

Qiu, P. (1997), Nonparametric Estimation of Jump Surface, The Indian Journal of Statistics, 59A, No.2, 268-294.

See Also

eplist

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
  ## produce a matrix representation of a simple
  ## noisy image showing a black rectangle
  y = matrix(rep(0, 60 * 60), nrow = 60)
  y[21:40, 21:40] = 1
  y = y + matrix(rnorm(60 * 60, 0, 0.2), nrow = 60)
  image(y, col = gray(seq(0, 1, 1/255)))

  ## find the rectangle's edge points
  ye = edgepoints(y, 0.05, 0.05, estimator = "M_median", kernel = "gauss")
  image(ye[[1]] > 0.7, col = gray(c(1,0)))

Example output

row: 0/60
row: 1/60
row: 2/60
row: 3/60
row: 4/60
row: 5/60
row: 6/60
row: 7/60
row: 8/60
row: 9/60
row: 10/60
row: 11/60
row: 12/60
row: 13/60
row: 14/60
row: 15/60
row: 16/60
row: 17/60
row: 18/60
row: 19/60
row: 20/60
row: 21/60
row: 22/60
row: 23/60
row: 24/60
row: 25/60
row: 26/60
row: 27/60
row: 28/60
row: 29/60
row: 30/60
row: 31/60
row: 32/60
row: 33/60
row: 34/60
row: 35/60
row: 36/60
row: 37/60
row: 38/60
row: 39/60
row: 40/60
row: 41/60
row: 42/60
row: 43/60
row: 44/60
row: 45/60
row: 46/60
row: 47/60
row: 48/60
row: 49/60
row: 50/60
row: 51/60
row: 52/60
row: 53/60
row: 54/60
row: 55/60
row: 56/60
row: 57/60
row: 58/60
row: 59/60

edci documentation built on May 17, 2018, 1:03 a.m.

Related to edgepoints in edci...