robertsrobertsRobertsRoberts (Operator)

Name

robertsrobertsRobertsRoberts — Detect edges using the Roberts filter.

Signature

roberts(Image : ImageRoberts : FilterType : )

Herror roberts(const Hobject Image, Hobject* ImageRoberts, const char* FilterType)

Herror T_roberts(const Hobject Image, Hobject* ImageRoberts, const Htuple FilterType)

void Roberts(const HObject& Image, HObject* ImageRoberts, const HTuple& FilterType)

HImage HImage::Roberts(const HString& FilterType) const

HImage HImage::Roberts(const char* FilterType) const

HImage HImage::Roberts(const wchar_t* FilterType) const   (Windows only)

static void HOperatorSet.Roberts(HObject image, out HObject imageRoberts, HTuple filterType)

HImage HImage.Roberts(string filterType)

Description

robertsrobertsRobertsRobertsRoberts calculates the first derivative of an image and is used as an edge operator. If the following mask describes a part of the image, A B C D the different filter types are defined as follows: 'roberts_max' max(| A - D |,| B - C |) 'gradient_max' max(| A + B - (C + D)|,| A + C - (B + D)|) 'gradient_sum' |A + B - (C + D)| + |A + C - (B + D)| If an overflow occurs the result is clipped. The result of the operator is stored at the pixel with the coordinates of "D".

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.

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

Roberts-filtered result images.

FilterTypeFilterTypeFilterTypeFilterTypefilterType (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Filter type.

Default value: 'gradient_sum' "gradient_sum" "gradient_sum" "gradient_sum" "gradient_sum"

List of values: 'gradient_max'"gradient_max""gradient_max""gradient_max""gradient_max", 'gradient_sum'"gradient_sum""gradient_sum""gradient_sum""gradient_sum", 'roberts_max'"roberts_max""roberts_max""roberts_max""roberts_max"

Example (HDevelop)

read_image(Image,'fabrik')
roberts(Image,Roberts,'roberts_max')
threshold(Roberts,Margin,128,255)

Example (C)

read_image(&Image,"fabrik");
roberts(Image,&Roberts,"roberts_max");
threshold(Roberts,&Margin,128.0,255.0);

Example (HDevelop)

read_image(Image,'fabrik')
roberts(Image,Roberts,'roberts_max')
threshold(Roberts,Margin,128,255)

Example (HDevelop)

read_image(Image,'fabrik')
roberts(Image,Roberts,'roberts_max')
threshold(Roberts,Margin,128,255)

Example (HDevelop)

read_image(Image,'fabrik')
roberts(Image,Roberts,'roberts_max')
threshold(Roberts,Margin,128,255)

Result

robertsrobertsRobertsRobertsRoberts returns 2 (H_MSG_TRUE) if all parameters are correct. 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

Possible Successors

thresholdthresholdThresholdThresholdThreshold, skeletonskeletonSkeletonSkeletonSkeleton

Alternatives

edges_imageedges_imageEdgesImageEdgesImageEdgesImage, sobel_ampsobel_ampSobelAmpSobelAmpSobelAmp, frei_ampfrei_ampFreiAmpFreiAmpFreiAmp, kirsch_ampkirsch_ampKirschAmpKirschAmpKirschAmp, prewitt_ampprewitt_ampPrewittAmpPrewittAmpPrewittAmp

See also

laplacelaplaceLaplaceLaplaceLaplace, highpass_imagehighpass_imageHighpassImageHighpassImageHighpassImage, bandpass_imagebandpass_imageBandpassImageBandpassImageBandpassImage

Module

Foundation