ClassesClassesClassesClasses | | | | Operators

frei_ampfrei_ampFreiAmpfrei_ampFreiAmpFreiAmp (Operator)

Name

frei_ampfrei_ampFreiAmpfrei_ampFreiAmpFreiAmp — Detect edges (amplitude) using the Frei-Chen operator.

Signature

frei_amp(Image : ImageEdgeAmp : : )

Herror frei_amp(const Hobject Image, Hobject* ImageEdgeAmp)

Herror T_frei_amp(const Hobject Image, Hobject* ImageEdgeAmp)

Herror frei_amp(Hobject Image, Hobject* ImageEdgeAmp)

HImage HImage::FreiAmp() const

HImageArray HImageArray::FreiAmp() const

void FreiAmp(const HObject& Image, HObject* ImageEdgeAmp)

HImage HImage::FreiAmp() const

void HOperatorSetX.FreiAmp(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*ImageEdgeAmp)

IHImageX* HImageX.FreiAmp()

static void HOperatorSet.FreiAmp(HObject image, out HObject imageEdgeAmp)

HImage HImage.FreiAmp()

Description

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

Attention

Note that filter operators may return unexpected results if an image with a reduced domain is used as input. Please refer to the chapter Filters.

Parallelization

Parameters

ImageImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject (byte / int2 / uint2)

Input image.

ImageEdgeAmpImageEdgeAmpImageEdgeAmpImageEdgeAmpImageEdgeAmpimageEdgeAmp (output_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject * (byte / int2 / uint2)

Edge amplitude (gradient magnitude) image.

Example (HDevelop)

read_image(Image,'fabrik')
frei_amp(Image,Frei_amp)
threshold(Frei_amp,Edges,128,255)

Example (C)

read_image(&Image,"fabrik");
frei_amp(Image,&Frei_amp);
threshold(Frei_amp,&Edges,128,255);

Example (HDevelop)

read_image(Image,'fabrik')
frei_amp(Image,Frei_amp)
threshold(Frei_amp,Edges,128,255)

Example (HDevelop)

read_image(Image,'fabrik')
frei_amp(Image,Frei_amp)
threshold(Frei_amp,Edges,128,255)

Example (HDevelop)

read_image(Image,'fabrik')
frei_amp(Image,Frei_amp)
threshold(Frei_amp,Edges,128,255)

Example (HDevelop)

read_image(Image,'fabrik')
frei_amp(Image,Frei_amp)
threshold(Frei_amp,Edges,128,255)

Result

frei_ampfrei_ampFreiAmpfrei_ampFreiAmpFreiAmp always returns 2 (H_MSG_TRUE). If the input is empty the behavior 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.

Possible Predecessors

binomial_filterbinomial_filterBinomialFilterbinomial_filterBinomialFilterBinomialFilter, gauss_filtergauss_filterGaussFiltergauss_filterGaussFilterGaussFilter, sigma_imagesigma_imageSigmaImagesigma_imageSigmaImageSigmaImage, median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage, smooth_imagesmooth_imageSmoothImagesmooth_imageSmoothImageSmoothImage

Alternatives

sobel_ampsobel_ampSobelAmpsobel_ampSobelAmpSobelAmp, kirsch_ampkirsch_ampKirschAmpkirsch_ampKirschAmpKirschAmp, prewitt_ampprewitt_ampPrewittAmpprewitt_ampPrewittAmpPrewittAmp, robinson_amprobinson_ampRobinsonAmprobinson_ampRobinsonAmpRobinsonAmp, robertsrobertsRobertsrobertsRobertsRoberts

See also

bandpass_imagebandpass_imageBandpassImagebandpass_imageBandpassImageBandpassImage, laplace_of_gausslaplace_of_gaussLaplaceOfGausslaplace_of_gaussLaplaceOfGaussLaplaceOfGauss

Module

Foundation


ClassesClassesClassesClasses | | | | Operators