lvmoredge(3)

LIBRARY ROUTINE
lvmoredge - Morphological edge extraction for binary byte xvimage structures.

LIBRARY CALL
#include "vinclude.h"
int
lvmoredge(image,kernel)
struct xvimage *image, *kernel;

INPUT

    image - an xvimage structure (binary byte data structure)
    kernel - an xvimage morphological-kernel structure.

OUTPUT
image - holds the result (Edge Map Image)

MODIFICATIONS
Ghosted by Pascal ADAM Mon Jun 4 16:25:26 MDT 1990

DESCRIPTION
lvmoredge Computes an edge extraction in an xvimage structure by applying morphological operations with an xvimage morphological kernel.

From a general scientific perspective, the word MORPHOLOGY refers to the study of form and structure.

The morphological approach is generally based upon the analysis of a two valued image in terms of some predetermined geometric shape known as a structuring element. Essentially, the manner in which the structuring element fits into the image is studied.

The morphological operations can be employed for many purposes, including edge detection, segmentation, and enhancement of images.

Most morphological operations can be defined in terms of two basic operations, the EROSION (i.e. vmerode) and the DILATION (i.e. vmdilate)

MORPHOLOGICAL METHOD FOR EDGES DETECTION:

    In image processing, the term edge is not as well defined as the term boundary. It has the intuitive meaning of boundary, but an edge need not be rigorously specified. Indeed an image can have numerous "edges", each one being defined by the methodology by which it has been derived.

    The purpose of an edge-detection methodology is to compress the image, more than giving a specific mathematical entity.

    The method used to extract an approximation of the true Euclidean boundary of a set A, is to apply the morphological fundamental operations:

    MOREDGE(A,B) = D(A,B) - A

    The thickness of that approximation results from the thickness of the structuring element B.

    This edge can be called external edge.

    It is advisable to use a kernel whose center is located on (0,0) and is not on the border of the kernel itself. If it is not located on the border, the extracted edges will not be continuous. If we take, for example, the square kernel 2x2, with all values set to one and the origin or center located at (0,0), the resulting edge will not be desirable. If (0,0) is on the border of the kernel, the dilation operation will not dilate the region in all directions. When the morphological subtraction is processed the upper border of the regions will not be detected.
    A 3x3 square kernel with all values set to one and the center located at (0,0) will give a correct edge map image. The extracted edges will have a thickness of one.

The structuring element must be a morphological kernel (created by vmcustom). This kernel is nothing but an image file with two variables, ispare1 and ispare2 that define the origin of the structuring element (refer to vmcustom and lvmcustom).

This algorithm was obtained from:

    "Morphological Methods in Image and Signal Processing"
    Charles R. Giardina
    Edward R. Dougherty
    Prentice Hall, Englewood Cliffs, New Jersey 07632

SEE ALSO
vmoredge(1), intro(3), vipl(3), verror(3), vutils(3) vmcustom(1), lvmcustom(3), lvmdilate(3), vmdilate(1)

RESTRICTIONS
vmoredge accepts only Two Valued BYTE images, therefore it is advisable to use lvthresh to binarize the image before using lvmoredge.

The structuring element is an xvimage structure, nevertheless, it should always be created by vmcustom.

AUTHOR
Pascal ADAM

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