info_edgesT_info_edgesInfoEdgesInfoEdgesinfo_edges (Operator)

Name

info_edgesT_info_edgesInfoEdgesInfoEdgesinfo_edges — Return the filter coefficients of a filter in edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image.

Signature

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

Herror T_info_edges(const Htuple Filter, const Htuple Mode, const Htuple Alpha, Htuple* Size, Htuple* Coeffs)

void InfoEdges(const HTuple& Filter, const HTuple& Mode, const HTuple& Alpha, HTuple* Size, HTuple* Coeffs)

static Hlong HMisc::InfoEdges(const HString& Filter, const HString& Mode, double Alpha, HTuple* Coeffs)

static Hlong HMisc::InfoEdges(const char* Filter, const char* Mode, double Alpha, HTuple* Coeffs)

static Hlong HMisc::InfoEdges(const wchar_t* Filter, const wchar_t* Mode, double Alpha, HTuple* Coeffs)   (Windows only)

static void HOperatorSet.InfoEdges(HTuple filter, HTuple mode, HTuple alpha, out HTuple size, out HTuple coeffs)

static int HMisc.InfoEdges(string filter, string mode, double alpha, out HTuple coeffs)

def info_edges(filter: str, mode: str, alpha: float) -> Tuple[int, Sequence[int]]

Description

info_edgesinfo_edgesInfoEdgesInfoEdgesInfoEdgesinfo_edges returns the coefficients CoeffsCoeffsCoeffsCoeffscoeffscoeffs and an estimate of the width SizeSizeSizeSizesizesize of any of the filters used in edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_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. AlphaAlphaAlphaAlphaalphaalpha is the filter parameter (see edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image). Seven edge operators are supported (parameter FilterFilterFilterFilterfilterfilter):

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

The parameter ModeModeModeModemodemode ('edge'/'smooth') is used to determine whether the corresponding edge or smoothing operator is to be sampled.

The Canny operator (which uses Gaussian smoothing) is implemented using conventional filter masks. Therefore, for the Canny filter, the coefficients CoeffsCoeffsCoeffsCoeffscoeffscoeffs of the one-dimensional impulse responses are returned as . All other filters are implemented recursively; here, the CoeffsCoeffsCoeffsCoeffscoeffscoeffs are coefficients of a corresponding non-recursive filter.

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

Parameters

FilterFilterFilterFilterfilterfilter (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Name of the edge operator.

Default value: 'lanser2' "lanser2" "lanser2" "lanser2" "lanser2" "lanser2"

List of values: 'canny'"canny""canny""canny""canny""canny", 'deriche1'"deriche1""deriche1""deriche1""deriche1""deriche1", 'deriche2'"deriche2""deriche2""deriche2""deriche2""deriche2", 'lanser1'"lanser1""lanser1""lanser1""lanser1""lanser1", 'lanser2'"lanser2""lanser2""lanser2""lanser2""lanser2", 'mshen'"mshen""mshen""mshen""mshen""mshen", 'shen'"shen""shen""shen""shen""shen"

ModeModeModeModemodemode (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

1D edge filter ('edge') or 1D smoothing filter ('smooth').

Default value: 'edge' "edge" "edge" "edge" "edge" "edge"

List of values: 'edge'"edge""edge""edge""edge""edge", 'smooth'"smooth""smooth""smooth""smooth""smooth"

AlphaAlphaAlphaAlphaalphaalpha (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

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 Alpha Alpha Alpha alpha alpha ≤ 50.0

Minimum increment: 0.01

Recommended increment: 0.1

Restriction: Alpha > 0.0

SizeSizeSizeSizesizesize (output_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Filter width in pixels.

CoeffsCoeffsCoeffsCoeffscoeffscoeffs (output_control)  integer-array HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

For Canny filters: Coefficients of the “positive” half of the 1D impulse response. All others: Coefficients of a corresponding non-recursive filter.

Example (HDevelop)

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)

Example (C)

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);

Example (HDevelop)

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)

Example (HDevelop)

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)

Example (HDevelop)

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_edgesinfo_edgesInfoEdgesInfoEdgesInfoEdgesinfo_edges 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>)set_system("no_object_result",<Result>). If necessary, an exception is raised.

Possible Successors

edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image, thresholdthresholdThresholdThresholdThresholdthreshold, skeletonskeletonSkeletonSkeletonSkeletonskeleton

See also

edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image

Module

Foundation