Operator Reference

hough_linesT_hough_linesHoughLinesHoughLineshough_lines (Operator)

hough_linesT_hough_linesHoughLinesHoughLineshough_lines — Detect lines in edge images with the help of the Hough transform and returns it in HNF.

Signature

Herror T_hough_lines(const Hobject RegionIn, const Htuple AngleResolution, const Htuple Threshold, const Htuple AngleGap, const Htuple DistGap, Htuple* Angle, Htuple* Dist)

void HoughLines(const HObject& RegionIn, const HTuple& AngleResolution, const HTuple& Threshold, const HTuple& AngleGap, const HTuple& DistGap, HTuple* Angle, HTuple* Dist)

HTuple HRegion::HoughLines(Hlong AngleResolution, Hlong Threshold, Hlong AngleGap, Hlong DistGap, HTuple* Dist) const

def hough_lines(region_in: HObject, angle_resolution: int, threshold: int, angle_gap: int, dist_gap: int) -> Tuple[Sequence[float], Sequence[float]]

Description

The operator hough_lineshough_linesHoughLinesHoughLineshough_lines allows the selection of linelike structures in a region, whereby it is not necessary that the individual points of a line are connected. This process is based on the Hough transform.

The parameter AngleResolutionAngleResolutionAngleResolutionangleResolutionangle_resolution defines the degree of exactness concerning the determination of the angles. It amounts to 1 / AngleResolutionAngleResolutionAngleResolutionangleResolutionangle_resolution degree. The parameter ThresholdThresholdThresholdthresholdthreshold determines by how many points of the original region a line's hypothesis must at least be supported in order to be selected into the output. The parameters AngleGapAngleGapAngleGapangleGapangle_gap and DistGapDistGapDistGapdistGapdist_gap define a neighborhood of the points in the Hough image in order to determine the local maxima: AngleGapAngleGapAngleGapangleGapangle_gap describes the minimum distance of two maxima in the Hough image in angle direction and DistGapDistGapDistGapdistGapdist_gap in distance direction, respectively. Thus, maxima exceeding ThresholdThresholdThresholdthresholdthreshold but lying close to an even higher maximum are eliminated. If multiple maxima in this neighborhood are equally high, all of them are returned. This elimination can particularly be helpful when searching for short and long lines simultaneously. The lines are returned in Hessian Normal Form (HNF), that is by the direction AngleAngleAngleangleangle and length DistDistDistdistdist of their normal vectors.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Processed without parallelization.

Parameters

RegionInRegionInRegionInregionInregion_in (input_object)  region objectHRegionHObjectHObjectHobject

Binary edge image in which the lines are to be detected.

AngleResolutionAngleResolutionAngleResolutionangleResolutionangle_resolution (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Adjusting the resolution in the angle area.

Default: 4

List of values: 1, 2, 4, 8

ThresholdThresholdThresholdthresholdthreshold (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Threshold value in the Hough image.

Default: 100

Value range: 2 ≤ Threshold Threshold Threshold threshold threshold

AngleGapAngleGapAngleGapangleGapangle_gap (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Minimal distance of two maxima in the Hough image (direction: angle).

Default: 5

Value range: 0 ≤ AngleGap AngleGap AngleGap angleGap angle_gap

DistGapDistGapDistGapdistGapdist_gap (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Minimal distance of two maxima in the Hough image (direction: distance).

Default: 5

Value range: 0 ≤ DistGap DistGap DistGap distGap dist_gap

AngleAngleAngleangleangle (output_control)  hesseline.angle.rad-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Angles (in radians) of the detected lines' normal vectors.

Value range: -1.5707963 ≤ Angle Angle Angle angle angle ≤ 3.1415927

DistDistDistdistdist (output_control)  hesseline.distance-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Distance of the detected lines from the origin.

Number of elements: Dist == Angle

Value range: 0 ≤ Dist Dist Dist dist dist

Result

The operator hough_lineshough_linesHoughLinesHoughLineshough_lines returns the value 2 ( H_MSG_TRUE) if the input is not empty. The behavior in case of empty input (no input regions available) is set via the operator set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>), the behavior in case of empty region is set via set_system('empty_region_result',<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)set_system("empty_region_result",<Result>). If necessary an exception is raised.

Possible Predecessors

thresholdthresholdThresholdThresholdthreshold, skeletonskeletonSkeletonSkeletonskeleton

Possible Successors

select_matching_linesselect_matching_linesSelectMatchingLinesSelectMatchingLinesselect_matching_lines

See also

hough_line_transhough_line_transHoughLineTransHoughLineTranshough_line_trans, gen_region_hlinegen_region_hlineGenRegionHlineGenRegionHlinegen_region_hline, hough_circleshough_circlesHoughCirclesHoughCircleshough_circles

Module

Foundation