lvmarr(3)

LIBRARY ROUTINE
lvmarr - Create a Marr type edge detection filter kernel.

LIBRARY CALL
#include "vinclude.h"
int
lvmarr ( image, rows, cols, var)
struct xvimage **image;
float var;
int rows, cols;

INPUT

image
    pointer to VIFF structure containing image data to be processed.

rows
    number of rows in kernel.

cols
    number of columns in kernel.

var the variance of the Gaussian

OUTPUT

image
    pointer to VIFF structure containing image data after processing.

Return Value:
    1 on success, 0 on failure.

MODIFICATIONS

John Rasure, Marcelo Teran, Ramiro Jordan, Tom Sauer 7/12/89
    changed the Laplacian of a Gaussian operator. The new operator was taken from IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol 11 No. 4, April 1989.

Jeremy Worley 7/02/90
    minor modifications to code so that it conforms to Khoros conventions. Added error check on kernel dimensions. No functional changes.

Robert Estes 4/25/90
    changed the code to implement a true LoG.

DESCRIPTION
creates a convolution filter kernel using the following equation. pixel = [-1/(PI*var*var)]*[1-r*r/(2*var)]*exp[-r*r/(2*var)], where r is the calculated distance from the center of the kernel.

A Marr filter is the Laplacian of a Gaussian, and is intended for high lighting image edges and at the same time smooth out the noise. vmarr creates image data of type float.

SEE ALSO
vmarr(1), intro(3), vipl(3), verror(3), vutils(3) lvcustom(3)

RESTRICTIONS
only generates float kernels, vconvert can change the image to other data types.

AUTHOR
Richard Krukar, John Rasure, Robert Estes

COPYRIGHT
Copyright 1991, University of New Mexico. All rights reserved.