Skip to content

kirsch_ampKirschAmpKirschAmpkirsch_ampkirsch_amp🔗

Short description🔗

kirsch_ampKirschAmpKirschAmpkirsch_ampkirsch_amp — Detect edges (amplitude) using the Kirsch operator.

Signature🔗

kirsch_amp( image Image, out image ImageEdgeAmp )void KirschAmp( const HObject& Image, HObject* ImageEdgeAmp )static void HOperatorSet.KirschAmp( HObject image, out HObject imageEdgeAmp )def kirsch_amp( image: HObject ) -> HObject

Herror kirsch_amp( const Hobject Image, Hobject* ImageEdgeAmp )

Herror T_kirsch_amp( const Hobject Image, Hobject* ImageEdgeAmp )

HImage HImage::KirschAmp( ) const

HImage HImage.KirschAmp( )

Description🔗

kirsch_ampKirschAmp 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:

       -3  -3   5       -3   5   5      5   5   5       5   5  -3
       -3   0   5       -3   0   5     -3   0  -3       5   0  -3
       -3  -3   5       -3  -3  -3     -3  -3  -3      -3  -3  -3

        5  -3  -3       -3  -3  -3     -3  -3  -3      -3  -3  -3
        5   0  -3        5   0  -3     -3   0  -3      -3   0   5
        5  -3  -3        5   5  -3      5   5   5      -3   5   5

The result image contains the maximum response of all masks.

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.

Execution information🔗

Execution information
  • 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.

Parameters🔗

Imageimageimage (input_object) (multichannel-)image(-array) → object (byte / int2 / uint2)HObject (byte / int2 / uint2)HImage (byte / int2 / uint2)HObject (byte / int2 / uint2)Hobject (byte / int2 / uint2)

Input image.

ImageEdgeAmpimageEdgeAmpimage_edge_amp (output_object) image(-array) → object (byte / int2 / uint2)HObject (byte / int2 / uint2)HImage (byte / int2 / uint2)HObject (byte / int2 / uint2)Hobject * (byte / int2 / uint2)

Edge amplitude (gradient magnitude) image.

Example🔗

(HDevelop)

read_image(Image,'fabrik')
kirsch_amp(Image,Kirsch_amp)
threshold(Kirsch_amp,Edges,128,255)
(C)
read_image(&Image,"fabrik")\;
kirsch_amp(Image,&Kirsch_amp)\;
threshold(Kirsch_amp,&Edges,128,255)\;

Result🔗

kirsch_ampKirschAmp always returns 2 (H_MSG_TRUE). If the input is empty the behavior can be set via set_system('no_object_result',<Result>). If necessary, an exception is raised.

Combinations with other operators🔗

Combinations

Possible predecessors

binomial_filterBinomialFilter, gauss_filterGaussFilter, sigma_imageSigmaImage, median_imageMedianImage, smooth_imageSmoothImage

Alternatives

sobel_ampSobelAmp, frei_ampFreiAmp, prewitt_ampPrewittAmp, robinson_ampRobinsonAmp, robertsRoberts

See also

bandpass_imageBandpassImage, laplace_of_gaussLaplaceOfGauss

Module🔗

Foundation