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)
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' |
read_image(&Image,"mreut"); derivate_gauss(Image,&Gauss,3.0,"x"); zero_crossing2(Gauss,&ZeroCrossings);
zero_crossing1, zero_crossing2
laplace__, laplace_of_gauss, gauss__, smooth__
zero_crossing1, zero_crossing2
K. Voss H. Suse; ``Praktische Bildverarbeitung'' Hanser Verlag; Munchen, Wien; 1991; Seite 88.