robertsrobertsRobertsRoberts (Operator)
Name
robertsrobertsRobertsRoberts
— Detect edges using the Roberts filter.
Signature
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
- 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) →
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