prewitt_dirprewitt_dirPrewittDirPrewittDir (Operator)

Name

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

Description

prewitt_dirprewitt_dirPrewittDirPrewittDirPrewittDir 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 ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDir, and are stored in 2-degree steps, i.e., an edge direction of x degrees mathematically positive sense and with respect to the horizontal axis is stored as x / 2 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 r/2: 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

Parameters

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

Input image.

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

Edge amplitude (gradient magnitude) image.

ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDir (output_object)  (multichannel-)image(-array) objectHImageHImageHobject * (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)

Example (HDevelop)

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

Result

prewitt_dirprewitt_dirPrewittDirPrewittDirPrewittDir 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>). If necessary, an exception is raised.

Possible Predecessors

binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFilter, sigma_imagesigma_imageSigmaImageSigmaImageSigmaImage, median_imagemedian_imageMedianImageMedianImageMedianImage, smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImage

Possible Successors

hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdHysteresisThreshold, thresholdthresholdThresholdThresholdThreshold, gray_skeletongray_skeletonGraySkeletonGraySkeletonGraySkeleton, nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDirNonmaxSuppressionDir, close_edgesclose_edgesCloseEdgesCloseEdgesCloseEdges, close_edges_lengthclose_edges_lengthCloseEdgesLengthCloseEdgesLengthCloseEdgesLength

Alternatives

edges_imageedges_imageEdgesImageEdgesImageEdgesImage, sobel_dirsobel_dirSobelDirSobelDirSobelDir, robinson_dirrobinson_dirRobinsonDirRobinsonDirRobinsonDir, frei_dirfrei_dirFreiDirFreiDirFreiDir, kirsch_dirkirsch_dirKirschDirKirschDirKirschDir

See also

bandpass_imagebandpass_imageBandpassImageBandpassImageBandpassImage, laplace_of_gausslaplace_of_gaussLaplaceOfGaussLaplaceOfGaussLaplaceOfGauss

Module

Foundation