lvmopen(3)

LIBRARY ROUTINE
lvmopen - computes the opening of an image by a structuring element

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

INPUT

    1. image - pointer to xvimage structure
    2. kernel- pointer to ximage structure (morhological kernel)

OUTPUT

    1. image - hold the opening of the input image by the input kernel

MODIFICATIONS
Ghosted by Pascal ADAM Fri May 25 11:19:18 MDT 1990

DESCRIPTION
vmopen computes the opening of an image by a structuring element B

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.

BASIC OPERATIONS:

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

Besides the two fundamental operations of EROSION and DILATION, two other operations play a central role in image analysis.

These two secondary operations, called OPENING and CLOSING are defined by a combination of erosion and dilation.

Notation:
    erode(A,B) = E(A,B)
    dilate(A,B) = D(A,B)
    open(A,B) = O(A,B)
    close(A,B) = C(A,B)
    complement(A) = Ac

DEFINITION OF THE OPENING
    O(A,B) = D(E(A,B),B)
    For information, C(A,B) = E(D(A,-B),-B) with
    -B = rotation(B,180 degrees) = vm180(B).

PROPERTIES of the OPENING:

1. O(A,B) = { B + x : B + x is included in A }

2. duality between the opening & closing
    O(A,B) = C(complement(A),B)
    Complement [O(A,B)] = C(complement(A),B)
    O(complement(A),B) = complement [ C(A,B) ]
    complement [O(complement(A),B) ] = C(A,B)

3. Antiextensivity
    O(A,B) is a subimage of A

3. Increasing monotonicity
    If A1 is a subimage of A2, the O(A1,B) is a subimage of O(A2,B)

4. Idempotence
    O[O(A,B),B] = O(A,B)

These properties play an important role in the use of opening for the construction of morphological filters. The opening by a disk can have a smoothing effect (from the inside); it acts as a filter, with the exact result being dependent upon the shape of the structuring template.

SET OF MORPHOLOGICAL FUNCTIONS:

vmopen is one of the morphological functions available.

vmcustom:
    Customizes a structuring element

vm180:
    180 degrees rotation of a structuring element

vmerode:
    erosion

vmdilate:
    dilation

vmclose:
    closing

vmoredge:
    edge extractor

vmskeleton:
    skeleton extractor

ADVICE:

    For this binary opening function, all grey levels different from 0 are considered "white" or equivalent to 255.

    Therefore, the image is not required to be binary, however, it is strongly advisable to use vthresh on grey level images before using any morphological function.

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).

These algorithms were obtained from:

    "Morphological Methods in Image and Signal Processing"

    Charles R. Giardina

    Edward R. Dougherty

    Prentice Hall, Englewood Cliffs, New Jersey 07632

SEE ALSO
vmopen(1), intro(3), vipl(3), verror(3), vutils(3) vmopen(1), vmerode(1), vmdilate(1), lvmerode(3), lvmdilate(3)

RESTRICTIONS
vmopen accepts only BYTE images, therefore it is strongly advisable to use vthresh to binarize the image before eroding it.

The structuring element is an image file, nevertheless, it should always be created by vmcustom.

AUTHOR
Pascal ADAM

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