derivate_gauss ( Image : DerivGauss : Sigma, Component : )

Convolve an image with derivatives of the Gaussian.

derivate_gauss convolves an image with the derivatives of a Gaussian and calculates various features derived thereof. Possible values for Component are:

'none'
Smoothing only.

'x'
First derivative along x.

'y'
First derivative along y.

'gradient'
Absolute value of the gradient.

'xx'
Second derivative along x.

'yy'
Second derivative along y.

'xy'
Second derivative along x and y.

'xxx'
Third derivative along x.

'yyy'
Third derivative along y.

'xxy'
Third derivative along x, x and y.

'xyy'
Third derivative along x, y and y.

'det'
Determinant of the Hessian matrix:
DET = g_xx * g_yy - g_xy**2

'laplace'
Laplace operator (trace of the Hessian matrix):
Laplace = g_xx + g_yy

'mean_curvatue'
Mean curvature H
a = (1 + g_x * g_x) * g_yy
b = 2 * g_x * g_y * g_xy
c = (1 + g_y * g_y) * g_xx
d = (1 + g_x * g_x + g_y * g_y) ** (3/2)
H = (a - b + c) / d

'gauss_curvatue'
Gaussian curvature K
K = DET / (1 + g_x * g_x + g_y * g_y) ** 2

'eigenvalue1'
First eigenvalue
a = (g_xx * g_yy) / 2
lambda1 = a + sqrt(a*a - (g_xx * g_yy - g_xy * g_xy))

'eigenvalue2'
Second eigenvalue
a = (g_xx * g_yy) / 2
lambda1 = a - sqrt(a*a - (g_xx * g_yy - g_xy * g_xy))

'main1_curvature'
First principal curvature
kappa1 = H + sqrt(H**2 - K)

'main2_curvature'
Second principal curvature
kappa2 = H - sqrt(H**2 - K)

'kitchen_rosenfeld'
Second derivative perpendicular to the gradient
k = (g_xx * g_y**2 + g_yy * g_x**2 - 2 * g_xy * g_x * g_y) /
     (g_x**2 + g_y**2)

'2nd_ddg'
Second derivative along the gradient
k = (g_xx * g_x**2 + 2 * g_y * g_y * g_xy + g_xy * g_y**2) /
     (g_x**2 + g_y**2)

'de_saint_venant'
Second derivative along and perpendicular to the gradient
k = (g_x * g_y * (g_xx - g_yy) - (g_x**2 - g_y**2) * g_xy) /
     (g_x**2 + g_y**2)


Parameters

Image (input_object)
image(-array) -> object : byte / int1 / int2 / int4 / real
Input image.

DerivGauss (output_object)
image(-array) -> object : real
Filtered result image.

Sigma (input_control)
real -> real
Sigma of the Gaussian.
Default value: 1.0
Suggested values: 0.7, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0
Range of values: 0.2 <= Sigma <= 50.0
Minimum increment: 0.01
Recommended increment: 0.1
Restriction: Sigma > 0.0

Component (input_control)
string -> string
Derivative or feature to be calculated.
Default value: 'x'
List of values: 'none', 'x', 'y', 'gradient', 'xx', 'yy', 'xy', 'xxx', 'yyy', 'xxy', 'xyy', 'det', 'mean_curvature', 'gauss_curvature', 'eigenvalue1', 'eigenvalue2', 'main1_curvature', 'main2_curvature', 'kitchen_rosenfeld', 'zuniga_haralick', ''2nd_ddg'', 'de_saint_venant', 'area', 'laplace', 'gradient_dir', 'eigenvec_dir'


Example
read_image(&Image,"mreut");
derivate_gauss(Image,&Gauss,3.0,"x");
zero_crossing2(Gauss,&ZeroCrossings);

Possible Successors

zero_crossing1, zero_crossing2


Alternatives

laplace__, laplace_of_gauss, gauss__, smooth__


See also

zero_crossing1, zero_crossing2


References

K. Voss H. Suse; ``Praktische Bildverarbeitung'' Hanser Verlag; Munchen, Wien; 1991; Seite 88.



Copyright © 1996-1997 MVTec Software GmbH