Name
frei_dirfrei_dirFreiDirfrei_dirFreiDirFreiDir — Detect edges (amplitude and direction) using the Frei-Chen operator.
frei_dirfrei_dirFreiDirfrei_dirFreiDirFreiDir calculates an approximation of the first
derivative of the image data and is used as an edge detector. The
filter is based on the following filter masks:
A =
1 sqrt(2) 1
0 0 0
-1 -sqrt(2) -1
B =
1 0 -1
sqrt(2) 0 -sqrt(2)
1 0 -1
The result image contains the maximum response of the masks A and
B. The edge directions are returned in ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDir,
and are stored in 2-degree steps, i.e., an edge direction of
x degrees in mathematically positive sense and
with respect to the horizontal axis is stored as
x / 2 in the edge direction image. Furthermore, the
direction of the change of intensity is taken into account. Let
[Ex,Ey] denote the image gradient. Then the
following edge directions are returned as r/2:
intensity increase Ex / Ey edge direction r
from bottom to top 0 / + 0
from lower right to upper left - / + ]0,90[
from right to left - / 0 90
from upper right to lower left - / - ]90,180[
from top to bottom 0 / - 180
from upper left to lower right + / - ]180,270[
from left to right + / 0 270
from lower left to upper right + / + ]270,360[.
Points with edge amplitude 0 are assigned the edge direction 255
(undefined direction).
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on tuple level.
- Automatically parallelized on channel level.
- Automatically parallelized on domain level.
Edge amplitude (gradient magnitude) image.
read_image(Image,'fabrik')
frei_dir(Image,Frei_dirA,Frei_dirD)
threshold(Frei_dirA,Res,128,255)
read_image(&Image,"fabrik");
frei_dir(Image,&Frei_dirA,&Frei_dirD);
threshold(Frei_dirA,&Res,128,255);
read_image(Image,'fabrik')
frei_dir(Image,Frei_dirA,Frei_dirD)
threshold(Frei_dirA,Res,128,255)
read_image(Image,'fabrik')
frei_dir(Image,Frei_dirA,Frei_dirD)
threshold(Frei_dirA,Res,128,255)
read_image(Image,'fabrik')
frei_dir(Image,Frei_dirA,Frei_dirD)
threshold(Frei_dirA,Res,128,255)
read_image(Image,'fabrik')
frei_dir(Image,Frei_dirA,Frei_dirD)
threshold(Frei_dirA,Res,128,255)
frei_dirfrei_dirFreiDirfrei_dirFreiDirFreiDir always returns 2 (H_MSG_TRUE). If the input is empty
the behaviour can be set via
set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>).
If necessary, an exception is raised.
binomial_filterbinomial_filterBinomialFilterbinomial_filterBinomialFilterBinomialFilter,
gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage,
sigma_imagesigma_imageSigmaImagesigma_imageSigmaImageSigmaImage,
median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage,
smooth_imagesmooth_imageSmoothImagesmooth_imageSmoothImageSmoothImage
hysteresis_thresholdhysteresis_thresholdHysteresisThresholdhysteresis_thresholdHysteresisThresholdHysteresisThreshold,
thresholdthresholdThresholdthresholdThresholdThreshold,
gray_skeletongray_skeletonGraySkeletongray_skeletonGraySkeletonGraySkeleton,
nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDir,
close_edgesclose_edgesCloseEdgesclose_edgesCloseEdgesCloseEdges,
close_edges_lengthclose_edges_lengthCloseEdgesLengthclose_edges_lengthCloseEdgesLengthCloseEdgesLength
edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage,
sobel_dirsobel_dirSobelDirsobel_dirSobelDirSobelDir,
robinson_dirrobinson_dirRobinsonDirrobinson_dirRobinsonDirRobinsonDir,
prewitt_dirprewitt_dirPrewittDirprewitt_dirPrewittDirPrewittDir,
kirsch_dirkirsch_dirKirschDirkirsch_dirKirschDirKirschDir
bandpass_imagebandpass_imageBandpassImagebandpass_imageBandpassImageBandpassImage,
laplace_of_gausslaplace_of_gaussLaplaceOfGausslaplace_of_gaussLaplaceOfGaussLaplaceOfGauss
Foundation