close_edges1 ( Edges, EdgeImage : RegionResult : MinAmplitude : )

Close edge gaps using the edge amplitude image.

close_edges1 closes gaps in the output of an edge detector, and thus tries to produce complete object contours. This is done by examining the neighbors of each edge point to determine the point with maximum amplitude (i.e., maximum gradient), and adding the point to the edge if its amplitude is larger than the minimum amplitude passed in MinAmplitude. This operator expects as input the edges (Edges) and amplitude image (EdgeImage) returned by typical edge operators, such as edges__ or sobel_amp. close_edges1 does not take into account the edge directions that may be returned by an edge operator. Thus, in areas where the gradient is almost constant the edges may become rather ``wiggly.''


Parameters

Edges (input_object)
region(-array) -> object
Region containing one pixel thick edges.

EdgeImage (input_object)
image -> object : byte
Edge amplitude (gradient) image.

RegionResult (output_object)
region(-array) -> object
Region containing closed edges.

MinAmplitude (input_control)
integer -> integer
Minimum edge amplitude.
Default value: 16
Suggested values: 5, 8, 10, 12, 16, 20, 25, 30, 40, 50
Range of values: 1 <= MinAmplitude <= 255
Minimum increment: 1
Recommended increment: 1
Restriction: MinAmplitude >= 0


Example
sobel_amp(Image,&EdgeAmp,"sum_abs",5);
threshold__(EdgeAmp,&EdgeRegion,40.0,255.0);
skeleton(EdgeRegion,&ThinEdge);
close_edge1(ThinEdge,EdgeAmp,&CloseEdges,15);
skeleton(CloseEdges,&ThinCloseEdges);

Result

close_edges1 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 Predecessors

edges__, sobel_amp, threshold__, skeleton


Possible Successors

skeleton


Alternatives

close_edges2, dilation1, closing


See also

grey_skeleton__



Copyright © 1996-1997 MVTec Software GmbH