Calculate the fuzzy perimeter of a region.
The operator fuzzy_perimeter 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_perimeter, the parameters
Apar and Cpar are defined as follows: b is
(Apar + Cpar)/2.
|
Regions (input_object) |
region(-array) -> object |
| Regions for which the fuzzy perimeter is to be calculated. | |
|
Image (input_object) |
image -> object : byte |
| Input image containing the fuzzy membership values. | |
|
Apar (input_control) |
integer -> integer |
| Start of the fuzzy function. | |
| Default value: 0 | |
| Suggested values: 0, 5, 10, 20, 50, 100 | |
| Typical range of values: 0 <= Apar <= 255 (lin) | |
| Minimum increment: 1 | |
|
Recommended increment: 5 | |
|
Cpar (input_control) |
integer -> integer |
| End of the fuzzy function. | |
| Default value: 255 | |
| Suggested values: 50, 100, 150, 200, 220, 255 | |
| Typical range of values: 0 <= Cpar <= 255 (lin) | |
| Minimum increment: 1 | |
|
Recommended increment: 5 | |
| Restriction: Apar <= Cpar | |
|
Perimeter (output_control) |
real(-array) -> real |
| Fuzzy perimeter of a region. | |
/* To find a Fuzzy Entropy from an Image */ read_image(Image,'affe') fuzzy_perimeter(Trans,Trans,0,255,Per).
The operator fuzzy_perimeter returns the value 2 (H_MSG_TRUE) if the parameters are correct. Otherwise an exception is raised.
fuzzy_perimeter is reentrant and automatically parallelized (on tuple level).
M.K. Kundu, S.K. Pal: `Äutomatic selection of object enhancement operator with quantitative justification based on fuzzy set theoretic measures''; Pattern Recognition Letters 11; 1990; pp. 811-829.
Foundation