hough_linesT_hough_linesHoughLinesHoughLines (Operator)


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


hough_lines(RegionIn : : AngleResolution, Threshold, AngleGap, DistGap : Angle, Dist)

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

static void HOperatorSet.HoughLines(HObject regionIn, HTuple angleResolution, HTuple threshold, HTuple angleGap, HTuple distGap, out HTuple angle, out HTuple dist)

HTuple HRegion.HoughLines(int angleResolution, int threshold, int angleGap, int distGap, out HTuple dist)


The operator hough_lineshough_linesHoughLinesHoughLinesHoughLines 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 lines are returned in HNF, that is by the direction and length of their normal vector.

The parameter AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolution defines the degree of exactness concerning the determination of the angles. It amounts to 1 / AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolution degree. The parameter ThresholdThresholdThresholdThresholdthreshold determines by how many points of the original region a line's hypothesis has to be supported at least in order to be taken over into the output. The parameters AngleGapAngleGapAngleGapAngleGapangleGap and DistGapDistGapDistGapDistGapdistGap define a neighborhood of the points in the Hough image in order to determine the local maxima. The lines are returned in HNF.

Execution Information


RegionInRegionInRegionInRegionInregionIn (input_object)  region objectHRegionHRegionHobject

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

AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolution (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Adjusting the resolution in the angle area.

Default value: 4

List of values: 1, 2, 4, 8

ThresholdThresholdThresholdThresholdthreshold (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Threshold value in the Hough image.

Default value: 100

Typical range of values: 2 ≤ Threshold Threshold Threshold Threshold threshold

AngleGapAngleGapAngleGapAngleGapangleGap (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

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

Default value: 5

Typical range of values: 0 ≤ AngleGap AngleGap AngleGap AngleGap angleGap

DistGapDistGapDistGapDistGapdistGap (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

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

Default value: 5

Typical range of values: 0 ≤ DistGap DistGap DistGap DistGap distGap

AngleAngleAngleAngleangle (output_control)  hesseline.angle.rad-array HTupleHTupleHtuple (real) (double) (double) (double)

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

Typical range of values: -1.5707963 ≤ Angle Angle Angle Angle angle ≤ 3.1415927

DistDistDistDistdist (output_control)  hesseline.distance-array HTupleHTupleHtuple (real) (double) (double) (double)

Distance of the detected lines from the origin.

Number of elements: Dist == Angle

Typical range of values: 0 ≤ Dist Dist Dist Dist dist


The operator hough_lineshough_linesHoughLinesHoughLinesHoughLines 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>)SetSystem("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>)SetSystem("empty_region_result",<Result>). If necessary an exception is raised.

Possible Predecessors

thresholdthresholdThresholdThresholdThreshold, skeletonskeletonSkeletonSkeletonSkeleton

Possible Successors


See also

hough_line_transhough_line_transHoughLineTransHoughLineTransHoughLineTrans, gen_region_hlinegen_region_hlineGenRegionHlineGenRegionHlineGenRegionHline, hough_circleshough_circlesHoughCirclesHoughCirclesHoughCircles