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

Estimate the width of a filter in edges__.

info_edges returns an estimate of the width of any of the filters used in edges__. 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__). Seven edge operators are supported (parameter Filter):

'deriche1', 'mderiche1', 'deriche2', 'mderiche2', '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: 'mderiche2'
List of values: 'deriche1', 'mderiche1', 'deriche2', 'mderiche2', '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
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('mderiche2','edge',0.5,Size,Coeffs) >
edges__(Image:Amp,Dir:'mderiche2',0.5,'none',-1,-1:) >
hysteresis_threshold__(Amp:Margin:20,30,30:).

Result

info_edges returns 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 is raised.


Possible Successors

edges__, threshold__, skeleton


See also

edges__



Copyright © 1996-1997 MVTec Software GmbH