robertsrobertsRobertsRobertsroberts (Operator)
Name
robertsrobertsRobertsRobertsroberts
— 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) →
objectHImageHObjectHObjectHobject (byte / int2 / uint2)
Input image.
ImageRobertsImageRobertsImageRobertsimageRobertsimage_roberts
(output_object) (multichannel-)image(-array) →
objectHImageHObjectHObjectHobject * (byte / int2 / uint2)
Roberts-filtered result images.
FilterTypeFilterTypeFilterTypefilterTypefilter_type
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Filter type.
Default:
'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)
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>)set_system("no_object_result",<Result>)
. If
necessary, an exception is raised.
Possible Predecessors
binomial_filterbinomial_filterBinomialFilterBinomialFilterbinomial_filter
,
gauss_filtergauss_filterGaussFilterGaussFiltergauss_filter
Possible Successors
thresholdthresholdThresholdThresholdthreshold
,
skeletonskeletonSkeletonSkeletonskeleton
Alternatives
edges_imageedges_imageEdgesImageEdgesImageedges_image
,
sobel_ampsobel_ampSobelAmpSobelAmpsobel_amp
,
frei_ampfrei_ampFreiAmpFreiAmpfrei_amp
,
kirsch_ampkirsch_ampKirschAmpKirschAmpkirsch_amp
,
prewitt_ampprewitt_ampPrewittAmpPrewittAmpprewitt_amp
See also
laplacelaplaceLaplaceLaplacelaplace
,
highpass_imagehighpass_imageHighpassImageHighpassImagehighpass_image
,
bandpass_imagebandpass_imageBandpassImageBandpassImagebandpass_image
Module
Foundation