Operator Reference

prewitt_dirprewitt_dirPrewittDirPrewittDirprewitt_dir (Operator)

prewitt_dirprewitt_dirPrewittDirPrewittDirprewitt_dir — Detect edges (amplitude and direction) using the Prewitt operator.

Signature

prewitt_dir(Image : ImageEdgeAmp, ImageEdgeDir : : )

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

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

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

HImage HImage::PrewittDir(HImage* ImageEdgeDir) const

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

HImage HImage.PrewittDir(out HImage imageEdgeDir)

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

Description

prewitt_dirprewitt_dirPrewittDirPrewittDirprewitt_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: A = 1 1 1 0 0 0 -1 -1 -1 B = 1 0 -1 1 0 -1 1 0 -1 The result image contains the maximum response of the masks A and B. The edge directions are returned in ImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDirimage_edge_dir, and are stored in 2-degree steps, i.e., an edge direction of degrees mathematically positive sense and with respect to the horizontal axis is stored as in the edge direction image. Furthermore, the direction of the change of intensity is taken into account. Let denote the image gradient. Then the following edge directions are returned as : Points with edge amplitude 0 are assigned the edge direction 255 (undefined direction).

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

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')
prewitt_dir(Image,PrewittA,PrewittD)
threshold(PrewittA,Edges,128,255)

Example (C)

read_image(&Image,"fabrik");
prewitt_dir(Image,&PrewittA,&PrewittD);
threshold(PrewittA,&Edges,128,255);

Example (HDevelop)

read_image(Image,'fabrik')
prewitt_dir(Image,PrewittA,PrewittD)
threshold(PrewittA,Edges,128,255)

Example (HDevelop)

read_image(Image,'fabrik')
prewitt_dir(Image,PrewittA,PrewittD)
threshold(PrewittA,Edges,128,255)

Result

prewitt_dirprewitt_dirPrewittDirPrewittDirprewitt_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, frei_dirfrei_dirFreiDirFreiDirfrei_dir, kirsch_dirkirsch_dirKirschDirKirschDirkirsch_dir

See also

bandpass_imagebandpass_imageBandpassImageBandpassImagebandpass_image, laplace_of_gausslaplace_of_gaussLaplaceOfGaussLaplaceOfGausslaplace_of_gauss

Module

Foundation