ClassesClassesClassesClasses | | | | Operators

robinson_dirrobinson_dirRobinsonDirrobinson_dirRobinsonDirRobinsonDir (Operator)

Name

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

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

HImage HImage::RobinsonDir(HImage* ImageEdgeDir) const

HImageArray HImageArray::RobinsonDir(HImageArray* ImageEdgeDir) const

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

HImage HImage::RobinsonDir(HImage* ImageEdgeDir) const

void HOperatorSetX.RobinsonDir(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*ImageEdgeAmp, [out] IHUntypedObjectX*ImageEdgeDir)

IHImageX* HImageX.RobinsonDir([out] IHImageX*ImageEdgeDir)

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

HImage HImage.RobinsonDir(out HImage imageEdgeDir)

Description

robinson_dirrobinson_dirRobinsonDirrobinson_dirRobinsonDirRobinsonDir calculates an approximation of the first derivative of the image data and is used as an edge detector. In robinson_amprobinson_ampRobinsonAmprobinson_ampRobinsonAmpRobinsonAmp 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 ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDir, and are stored as x / 2. They correspond to the direction of the mask yielding the maximum response.

Parallelization

Parameters

ImageImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject (byte / int2 / uint2)

Input image.

ImageEdgeAmpImageEdgeAmpImageEdgeAmpImageEdgeAmpImageEdgeAmpimageEdgeAmp (output_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject * (byte / int2 / uint2)

Edge amplitude (gradient magnitude) image.

ImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirImageEdgeDirimageEdgeDir (output_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject * (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)

Example (HDevelop)

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

Result

robinson_dirrobinson_dirRobinsonDirrobinson_dirRobinsonDirRobinsonDir always returns 2 (H_MSG_TRUE). If the input is empty the behaviour can be set via set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>). If necessary, an exception is raised.

Possible Predecessors

binomial_filterbinomial_filterBinomialFilterbinomial_filterBinomialFilterBinomialFilter, gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage, sigma_imagesigma_imageSigmaImagesigma_imageSigmaImageSigmaImage, median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage, smooth_imagesmooth_imageSmoothImagesmooth_imageSmoothImageSmoothImage

Possible Successors

hysteresis_thresholdhysteresis_thresholdHysteresisThresholdhysteresis_thresholdHysteresisThresholdHysteresisThreshold, thresholdthresholdThresholdthresholdThresholdThreshold, gray_skeletongray_skeletonGraySkeletongray_skeletonGraySkeletonGraySkeleton, nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDir, close_edgesclose_edgesCloseEdgesclose_edgesCloseEdgesCloseEdges, close_edges_lengthclose_edges_lengthCloseEdgesLengthclose_edges_lengthCloseEdgesLengthCloseEdgesLength

Alternatives

edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage, sobel_dirsobel_dirSobelDirsobel_dirSobelDirSobelDir, kirsch_dirkirsch_dirKirschDirkirsch_dirKirschDirKirschDir, prewitt_dirprewitt_dirPrewittDirprewitt_dirPrewittDirPrewittDir, frei_dirfrei_dirFreiDirfrei_dirFreiDirFreiDir

See also

bandpass_imagebandpass_imageBandpassImagebandpass_imageBandpassImageBandpassImage, laplace_of_gausslaplace_of_gaussLaplaceOfGausslaplace_of_gaussLaplaceOfGaussLaplaceOfGauss

Module

Foundation


ClassesClassesClassesClasses | | | | Operators