HALCON Reference Manual 10.0.2
Table of Contents / Filters / Edges ClassesClassesClasses | | | Operators

kirsch_dirkirsch_dirkirsch_dirKirschDirKirschDir (Operator)

Name

kirsch_dirkirsch_dirkirsch_dirKirschDirKirschDir — Detect edges (amplitude and direction) using the Kirsch operator.

Signature

kirsch_dir(Image : ImageEdgeAmp, ImageEdgeDir : : )

Herror kirsch_dir(const Hobject Image, Hobject* ImageEdgeAmp, Hobject* ImageEdgeDir)

Herror T_kirsch_dir(const Hobject Image, Hobject* ImageEdgeAmp, Hobject* ImageEdgeDir)

Herror kirsch_dir(Hobject Image, Hobject* ImageEdgeAmp, Hobject* ImageEdgeDir)

HImage HImage::KirschDir(HImage* ImageEdgeDir) const

HImageArray HImageArray::KirschDir(HImageArray* ImageEdgeDir) const

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

IHImageX* HImageX.KirschDir([out] IHImageX*ImageEdgeDir)

static void HOperatorSet.KirschDir(HObject image, out HObject imageEdgeAmp, out HObject imageEdgeDir)

HImage HImage.KirschDir(out HImage imageEdgeDir)

Description

kirsch_dirkirsch_dirkirsch_dirKirschDirKirschDir 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. The edge directions are returned in ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDir, and are stored as x / 2. They correspond to the direction of the mask yielding the maximum response.

Parallelization

Parameters

ImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHImageXHobject (byte / int2 / uint2)

Input image.

ImageEdgeAmpImageEdgeAmpImageEdgeAmpImageEdgeAmpimageEdgeAmp (output_object)  (multichannel-)image(-array) objectHImageHImageHImageXHobject * (byte / int2 / uint2)

Edge amplitude (gradient magnitude) image.

ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDir (output_object)  (multichannel-)image(-array) objectHImageHImageHImageXHobject * (direction)

Edge direction image.

Example (HDevelop)

read_image(Image,'fabrik')
kirsch_dir(Image,Kirsch_dirA,Kirsch_dirD)
threshold(Kirsch_dirA,Res,128,255)

Example (C)

read_image(&Image,"fabrik");
kirsch_dir(Image,&Kirsch_dirA,&Kirsch_dirD);
threshold(Kirsch_dirA,&Res,128,255);

Example (HDevelop)

read_image(Image,'fabrik')
kirsch_dir(Image,Kirsch_dirA,Kirsch_dirD)
threshold(Kirsch_dirA,Res,128,255)

Example (HDevelop)

read_image(Image,'fabrik')
kirsch_dir(Image,Kirsch_dirA,Kirsch_dirD)
threshold(Kirsch_dirA,Res,128,255)

Example (HDevelop)

read_image(Image,'fabrik')
kirsch_dir(Image,Kirsch_dirA,Kirsch_dirD)
threshold(Kirsch_dirA,Res,128,255)

Result

kirsch_dirkirsch_dirkirsch_dirKirschDirKirschDir 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>)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_filterbinomial_filterBinomialFilterBinomialFilter, gauss_imagegauss_imagegauss_imageGaussImageGaussImage, sigma_imagesigma_imagesigma_imageSigmaImageSigmaImage, median_imagemedian_imagemedian_imageMedianImageMedianImage, smooth_imagesmooth_imagesmooth_imageSmoothImageSmoothImage

Possible Successors

hysteresis_thresholdhysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThreshold, thresholdthresholdthresholdThresholdThreshold, gray_skeletongray_skeletongray_skeletonGraySkeletonGraySkeleton, nonmax_suppression_dirnonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDir, close_edgesclose_edgesclose_edgesCloseEdgesCloseEdges, close_edges_lengthclose_edges_lengthclose_edges_lengthCloseEdgesLengthCloseEdgesLength

Alternatives

edges_imageedges_imageedges_imageEdgesImageEdgesImage, sobel_dirsobel_dirsobel_dirSobelDirSobelDir, robinson_dirrobinson_dirrobinson_dirRobinsonDirRobinsonDir, prewitt_dirprewitt_dirprewitt_dirPrewittDirPrewittDir, frei_dirfrei_dirfrei_dirFreiDirFreiDir

See also

bandpass_imagebandpass_imagebandpass_imageBandpassImageBandpassImage, laplace_of_gausslaplace_of_gausslaplace_of_gaussLaplaceOfGaussLaplaceOfGauss

Module

Foundation


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