kirsch_dirkirsch_dirKirschDirKirschDirkirsch_dir (Operator)
Name
kirsch_dirkirsch_dirKirschDirKirschDirkirsch_dir
— Detect edges (amplitude and direction) using the Kirsch operator.
Signature
def kirsch_dir(image: HObject) -> Tuple[HObject, HObject]
Description
kirsch_dirkirsch_dirKirschDirKirschDirKirschDirkirsch_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 ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDirimage_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
- 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
ImageImageImageImageimageimage
(input_object) (multichannel-)image(-array) →
objectHImageHObjectHImageHobject (byte / int2 / uint2)
Input image.
ImageEdgeAmpImageEdgeAmpImageEdgeAmpImageEdgeAmpimageEdgeAmpimage_edge_amp
(output_object) (multichannel-)image(-array) →
objectHImageHObjectHImageHobject * (byte / int2 / uint2)
Edge amplitude (gradient magnitude) image.
ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDirimage_edge_dir
(output_object) (multichannel-)image(-array) →
objectHImageHObjectHImageHobject * (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_dirKirschDirKirschDirKirschDirkirsch_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>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)
.
If necessary, an exception is raised.
Possible Predecessors
binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter
,
gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter
,
sigma_imagesigma_imageSigmaImageSigmaImageSigmaImagesigma_image
,
median_imagemedian_imageMedianImageMedianImageMedianImagemedian_image
,
smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImagesmooth_image
Possible Successors
hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdHysteresisThresholdhysteresis_threshold
,
thresholdthresholdThresholdThresholdThresholdthreshold
,
gray_skeletongray_skeletonGraySkeletonGraySkeletonGraySkeletongray_skeleton
,
nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDirNonmaxSuppressionDirnonmax_suppression_dir
,
close_edgesclose_edgesCloseEdgesCloseEdgesCloseEdgesclose_edges
,
close_edges_lengthclose_edges_lengthCloseEdgesLengthCloseEdgesLengthCloseEdgesLengthclose_edges_length
Alternatives
edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image
,
sobel_dirsobel_dirSobelDirSobelDirSobelDirsobel_dir
,
robinson_dirrobinson_dirRobinsonDirRobinsonDirRobinsonDirrobinson_dir
,
prewitt_dirprewitt_dirPrewittDirPrewittDirPrewittDirprewitt_dir
,
frei_dirfrei_dirFreiDirFreiDirFreiDirfrei_dir
See also
bandpass_imagebandpass_imageBandpassImageBandpassImageBandpassImagebandpass_image
,
laplace_of_gausslaplace_of_gaussLaplaceOfGaussLaplaceOfGaussLaplaceOfGausslaplace_of_gauss
Module
Foundation