roberts ( Image : ImageRoberts : FilterType : )

Detect edges using the Roberts filter.

roberts 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".


Parameters

Image (input_object)
(multichannel-)image(-array) -> object : byte / int2 / uint2
Input image.

ImageRoberts (output_object)
(multichannel-)image(-array) -> object : byte / int2 / uint2
Roberts-filtered result images.

FilterType (input_control)
string -> string
Filter type.
Default value: 'gradient_sum'
List of values: 'roberts_max', 'gradient_max', 'gradient_sum'


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

Result

roberts returns 2 (H_MSG_TRUE) if all parameters are correct. If the input is empty the behaviour can be set via set_system('no_object_result',<Result>). If necessary, an exception handling is raised.


Parallelization Information

roberts is reentrant and automatically parallelized (on tuple level, channel level, domain level).


Possible Predecessors

gauss_image


Possible Successors

threshold, skeleton


Alternatives

edges_image, sobel_amp, frei_amp, kirsch_amp, prewitt_amp


See also

laplace, highpass_image, bandpass_image


Module

Foundation



Copyright © 1996-2008 MVTec Software GmbH