kirsch_dirkirsch_dirKirschDirKirschDirkirsch_dir (Operator)

Name

kirsch_dirkirsch_dirKirschDirKirschDirkirsch_dir — 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)

void KirschDir(const HObject& Image, HObject* ImageEdgeAmp, HObject* ImageEdgeDir)

HImage HImage::KirschDir(HImage* ImageEdgeDir) const

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

HImage HImage.KirschDir(out HImage imageEdgeDir)

def kirsch_dir(image: HObject) -> Tuple[HObject, HObject]

Description

kirsch_dirkirsch_dirKirschDirKirschDirkirsch_dir 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 ImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDirimage_edge_dir, and are stored as x / 2. They correspond to the direction of the mask yielding the maximum response.

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

Parameters

ImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject (byte / int2 / uint2)

Input image.

ImageEdgeAmpImageEdgeAmpImageEdgeAmpimageEdgeAmpimage_edge_amp (output_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject * (byte / int2 / uint2)

Edge amplitude (gradient magnitude) image.

ImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDirimage_edge_dir (output_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject * (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)

Result

kirsch_dirkirsch_dirKirschDirKirschDirkirsch_dir 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>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>). If necessary, an exception is raised.

Possible Predecessors

binomial_filterbinomial_filterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFiltergauss_filter, sigma_imagesigma_imageSigmaImageSigmaImagesigma_image, median_imagemedian_imageMedianImageMedianImagemedian_image, smooth_imagesmooth_imageSmoothImageSmoothImagesmooth_image

Possible Successors

hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdhysteresis_threshold, thresholdthresholdThresholdThresholdthreshold, gray_skeletongray_skeletonGraySkeletonGraySkeletongray_skeleton, nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDirnonmax_suppression_dir, close_edgesclose_edgesCloseEdgesCloseEdgesclose_edges, close_edges_lengthclose_edges_lengthCloseEdgesLengthCloseEdgesLengthclose_edges_length

Alternatives

edges_imageedges_imageEdgesImageEdgesImageedges_image, sobel_dirsobel_dirSobelDirSobelDirsobel_dir, robinson_dirrobinson_dirRobinsonDirRobinsonDirrobinson_dir, prewitt_dirprewitt_dirPrewittDirPrewittDirprewitt_dir, frei_dirfrei_dirFreiDirFreiDirfrei_dir

See also

bandpass_imagebandpass_imageBandpassImageBandpassImagebandpass_image, laplace_of_gausslaplace_of_gaussLaplaceOfGaussLaplaceOfGausslaplace_of_gauss

Module

Foundation