robinson_dirrobinson_dirRobinsonDirRobinsonDirrobinson_dir (Operator)

Name

robinson_dirrobinson_dirRobinsonDirRobinsonDirrobinson_dir — Detect edges (amplitude and direction) using the Robinson operator.

Signature

robinson_dir(Image : ImageEdgeAmp, ImageEdgeDir : : )

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

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

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

HImage HImage::RobinsonDir(HImage* ImageEdgeDir) const

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

HImage HImage.RobinsonDir(out HImage imageEdgeDir)

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

Description

robinson_dirrobinson_dirRobinsonDirRobinsonDirRobinsonDirrobinson_dir calculates an approximation of the first derivative of the image data and is used as an edge detector. In robinson_amprobinson_ampRobinsonAmpRobinsonAmpRobinsonAmprobinson_amp the following four of the originally proposed eight 3x3 filter masks are convolved with the image. The other four masks are obtained by a multiplication by -1. All masks contain only the values 0,1,-1,2,-2. -1 0 1 2 1 0 -2 0 2 1 0 -1 -1 0 1 0 -1 -2 0 1 2 1 2 1 -1 0 1 0 0 0 -2 -1 0 -1 -2 -1 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

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')
robinson_dir(Image,Robinson_dirA,Robinson_dirD)
threshold(Robinson_dirA,Res,128,255)

Example (C)

read_image(&Image,"fabrik");
robinson_dir(Image,&Robinson_dirA,&Robinson_dirD);
threshold(Robinson_dirA,&Res,128,255);

Example (HDevelop)

read_image(Image,'fabrik')
robinson_dir(Image,Robinson_dirA,Robinson_dirD)
threshold(Robinson_dirA,Res,128,255)

Example (HDevelop)

read_image(Image,'fabrik')
robinson_dir(Image,Robinson_dirA,Robinson_dirD)
threshold(Robinson_dirA,Res,128,255)

Example (HDevelop)

read_image(Image,'fabrik')
robinson_dir(Image,Robinson_dirA,Robinson_dirD)
threshold(Robinson_dirA,Res,128,255)

Result

robinson_dirrobinson_dirRobinsonDirRobinsonDirRobinsonDirrobinson_dir always returns 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, kirsch_dirkirsch_dirKirschDirKirschDirKirschDirkirsch_dir, prewitt_dirprewitt_dirPrewittDirPrewittDirPrewittDirprewitt_dir, frei_dirfrei_dirFreiDirFreiDirFreiDirfrei_dir

See also

bandpass_imagebandpass_imageBandpassImageBandpassImageBandpassImagebandpass_image, laplace_of_gausslaplace_of_gaussLaplaceOfGaussLaplaceOfGaussLaplaceOfGausslaplace_of_gauss

Module

Foundation