info_edges ( : : Filter, Mode, Alpha : Size, Coeffs )

Estimate the width of a filter in edges_image.

info_edges returns an estimate of the width of any of the filters used in edges_image. To do so, the corresponding continuous impulse responses of the filters are sampled until the first filter coefficient is smaller than five percent of the largest coefficient. Alpha is the filter parameter (see edges_image). Seven edge operators are supported (parameter Filter):

'deriche1', 'lanser1', 'deriche2', 'lanser2', 'shen', 'mshen' und 'canny'.

The parameter Mode ('edge'/'smooth') is used to determine whether the corresponding edge or smoothing operator is to be sampled. The Canny operator (which uses the Gaussian for smoothing) is implemented using conventional filter masks, while all other filters are implemented recursively. Therefore, for the Canny filter the coefficients of the one-dimensional impulse responses f(n) with n >= 0 are returned in Coeffs in addition to the filter width.


Parameters

Filter (input_control)
string -> string
Name of the edge operator.
Default value: 'lanser2'
List of values: 'deriche1', 'lanser1', 'deriche2', 'lanser2', 'shen', 'mshen', 'canny'

Mode (input_control)
string -> string
1D edge filter ('edge') or 1D smoothing filter ('smooth').
Default value: 'edge'
List of values: 'edge', 'smooth'

Alpha (input_control)
real -> real
Filter parameter: small values result in strong smoothing, and thus less detail (opposite for 'canny').
Default value: 0.5
Typical range of values: 0.2 <= Alpha <= 50.0
Minimum increment: 0.01
Recommended increment: 0.1
Restriction: Alpha > 0.0

Size (output_control)
integer -> integer
Filter width in pixels.

Coeffs (output_control)
integer-array -> integer
For Canny filters: Coefficients of the ``positive'' half of the 1D impulse response.


Example
read_image(Image,'fabrik') 
info_edges('lanser2','edge',0.5,Size,Coeffs) 
edges_image(Image,Amp,Dir,'lanser2',0.5,'none',-1,-1) 
hysteresis_threshold(Amp,Margin,20,30,30).

Result

info_edges 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

info_edges is reentrant and processed without parallelization.


Possible Successors

edges_image, threshold, skeleton


See also

edges_image


Module

Foundation



Copyright © 1996-2008 MVTec Software GmbH