HALCON Reference Manual 10.0.2
Table of Contents / Image / Features ClassesClassesClasses | | | Operators

fuzzy_perimeterfuzzy_perimeterfuzzy_perimeterFuzzyPerimeterFuzzyPerimeter (Operator)

Name

fuzzy_perimeterfuzzy_perimeterfuzzy_perimeterFuzzyPerimeterFuzzyPerimeter — Calculate the fuzzy perimeter of a region.

Signature

fuzzy_perimeter(Regions, Image : : Apar, Cpar : Perimeter)

Herror fuzzy_perimeter(const Hobject Regions, const Hobject Image, const Hlong Apar, const Hlong Cpar, double* Perimeter)

Herror T_fuzzy_perimeter(const Hobject Regions, const Hobject Image, const Htuple Apar, const Htuple Cpar, Htuple* Perimeter)

Herror fuzzy_perimeter(Hobject Regions, Hobject Image, const HTuple& Apar, const HTuple& Cpar, double* Perimeter)

Herror fuzzy_perimeter(Hobject Regions, Hobject Image, const HTuple& Apar, const HTuple& Cpar, HTuple* Perimeter)

double HRegion::FuzzyPerimeter(const HImage& Image, const HTuple& Apar, const HTuple& Cpar) const

HTuple HRegionArray::FuzzyPerimeter(const HImage& Image, const HTuple& Apar, const HTuple& Cpar) const

void HOperatorSetX.FuzzyPerimeter(
[in] IHUntypedObjectX* Regions, [in] IHUntypedObjectX* Image, [in] VARIANT Apar, [in] VARIANT Cpar, [out] VARIANT* Perimeter)

VARIANT HImageX.FuzzyPerimeter(
[in] IHRegionX* Regions, [in] Hlong Apar, [in] Hlong Cpar)

VARIANT HRegionX.FuzzyPerimeter(
[in] IHImageX* Image, [in] Hlong Apar, [in] Hlong Cpar)

static void HOperatorSet.FuzzyPerimeter(HObject regions, HObject image, HTuple apar, HTuple cpar, out HTuple perimeter)

HTuple HImage.FuzzyPerimeter(HRegion regions, int apar, int cpar)

HTuple HRegion.FuzzyPerimeter(HImage image, int apar, int cpar)

Description

The operator fuzzy_perimeterfuzzy_perimeterfuzzy_perimeterFuzzyPerimeterFuzzyPerimeter is used to determine the differences of fuzzy membership between an image point and its neighbor points. The right and lower neighbor are taken into account. The fuzzy perimeter is then defined as follows:

       M-1   N-1
       ----  ----
       \     \
p(x) = /     /    |u(x(m,n)) - u(x(m,n+1))|  +
       ----  ----
       m=1   n=1

       M-1   N-1
       ----  ----
       \     \
       /     /    |u(x(m,n)) - u(x(m+1,n))|
       ----  ----
       m=1   n=1

where MxN is the size of the image, and u(x(m,n)) is the fuzzy membership function (i.e., the input image). This implementation uses Zadeh's Standard-S function, which is defined as follows:

         / 0,                   x <= a
  u(x) = | 2((x-a)/(c-a))**2,   a < x <= b
         | 1-2((x-a)/(c-a))**2, b < x < c
         \ 1,                   c <= x.

The parameters a, b and c obey the following restrictions: b = (a+c)/2 is the inflection point of the function, Db = b - a = c - b is the bandwith, and for x = b u(x) = 0.5 holds. In fuzzy_perimeterfuzzy_perimeterfuzzy_perimeterFuzzyPerimeterFuzzyPerimeter, the parameters AparAparAparAparapar and CparCparCparCparcpar are defined as follows: b is (Apar + Cpar)/2.

Parallelization

Parameters

RegionsRegionsRegionsRegionsregions (input_object)  region(-array) objectHRegionHRegionHRegionXHobject

Regions for which the fuzzy perimeter is to be calculated.

ImageImageImageImageimage (input_object)  image objectHImageHImageHImageXHobject (byte)

Input image containing the fuzzy membership values.

AparAparAparAparapar (input_control)  integer HTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong)

Start of the fuzzy function.

Default value: 0

Suggested values: 0, 5, 10, 20, 50, 100

Typical range of values: 0 ≤ Apar Apar Apar Apar apar ≤ 255 (lin)

Minimum increment: 1

Recommended increment: 5

CparCparCparCparcpar (input_control)  integer HTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong)

End of the fuzzy function.

Default value: 255

Suggested values: 50, 100, 150, 200, 220, 255

Typical range of values: 0 ≤ Cpar Cpar Cpar Cpar cpar ≤ 255 (lin)

Minimum increment: 1

Recommended increment: 5

Restriction: Apar <= Cpar

PerimeterPerimeterPerimeterPerimeterperimeter (output_control)  real(-array) HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Fuzzy perimeter of a region.

Example (HDevelop)

* To find a Fuzzy Entropy from an Image
read_image(Image,'monkey')
fuzzy_perimeter(Trans,Trans,0,255,Per)

Example (C)

/* To find a Fuzzy Entropy from an Image */
read_image(&Image,"monkey");
fuzzy_perimeter(Trans,Trans,Apar,Bpar,&Per);

Example (HDevelop)

* To find a Fuzzy Entropy from an Image
read_image(Image,'monkey')
fuzzy_perimeter(Trans,Trans,0,255,Per)

Example (HDevelop)

* To find a Fuzzy Entropy from an Image
read_image(Image,'monkey')
fuzzy_perimeter(Trans,Trans,0,255,Per)

Example (HDevelop)

* To find a Fuzzy Entropy from an Image
read_image(Image,'monkey')
fuzzy_perimeter(Trans,Trans,0,255,Per)

Result

The operator fuzzy_perimeterfuzzy_perimeterfuzzy_perimeterFuzzyPerimeterFuzzyPerimeter returns the value 2 (H_MSG_TRUE) if the parameters are correct. Otherwise an exception is raised.

See also

fuzzy_entropyfuzzy_entropyfuzzy_entropyFuzzyEntropyFuzzyEntropy

References

M.K. Kundu, S.K. Pal: “Automatic selection of object enhancement operator with quantitative justification based on fuzzy set theoretic measures”; Pattern Recognition Letters 11; 1990; pp. 811-829.

Module

Foundation


Table of Contents / Image / Features ClassesClassesClasses | | | Operators
HALCON Reference Manual 10.0.2 Copyright © 1996-2011 MVTec Software GmbH