ClassesClassesClassesClasses | | | | Operators

hough_lines_dirT_hough_lines_dirHoughLinesDirhough_lines_dirHoughLinesDirHoughLinesDir (Operator)

Name

hough_lines_dirT_hough_lines_dirHoughLinesDirhough_lines_dirHoughLinesDirHoughLinesDir — Detect lines in edge images with the help of the Hough transform using local gradient direction and return them in normal form.

Signature

hough_lines_dir(ImageDir : HoughImage, Lines : DirectionUncertainty, AngleResolution, Smoothing, FilterSize, Threshold, AngleGap, DistGap, GenLines : Angle, Dist)

Herror T_hough_lines_dir(const Hobject ImageDir, Hobject* HoughImage, Hobject* Lines, const Htuple DirectionUncertainty, const Htuple AngleResolution, const Htuple Smoothing, const Htuple FilterSize, const Htuple Threshold, const Htuple AngleGap, const Htuple DistGap, const Htuple GenLines, Htuple* Angle, Htuple* Dist)

Herror hough_lines_dir(Hobject ImageDir, Hobject* HoughImage, Hobject* Lines, const HTuple& DirectionUncertainty, const HTuple& AngleResolution, const HTuple& Smoothing, const HTuple& FilterSize, const HTuple& Threshold, const HTuple& AngleGap, const HTuple& DistGap, const HTuple& GenLines, HTuple* Angle, HTuple* Dist)

HImage HImage::HoughLinesDir(HRegionArray* Lines, const HTuple& DirectionUncertainty, const HTuple& AngleResolution, const HTuple& Smoothing, const HTuple& FilterSize, const HTuple& Threshold, const HTuple& AngleGap, const HTuple& DistGap, const HTuple& GenLines, HTuple* Angle, HTuple* Dist) const

void HoughLinesDir(const HObject& ImageDir, HObject* HoughImage, HObject* Lines, const HTuple& DirectionUncertainty, const HTuple& AngleResolution, const HTuple& Smoothing, const HTuple& FilterSize, const HTuple& Threshold, const HTuple& AngleGap, const HTuple& DistGap, const HTuple& GenLines, HTuple* Angle, HTuple* Dist)

HImage HImage::HoughLinesDir(HRegion* Lines, Hlong DirectionUncertainty, Hlong AngleResolution, const HString& Smoothing, Hlong FilterSize, Hlong Threshold, Hlong AngleGap, Hlong DistGap, const HString& GenLines, HTuple* Angle, HTuple* Dist) const

HImage HImage::HoughLinesDir(HRegion* Lines, Hlong DirectionUncertainty, Hlong AngleResolution, const char* Smoothing, Hlong FilterSize, Hlong Threshold, Hlong AngleGap, Hlong DistGap, const char* GenLines, HTuple* Angle, HTuple* Dist) const

void HOperatorSetX.HoughLinesDir(
[in] IHUntypedObjectX* ImageDir, [out] IHUntypedObjectX*HoughImage, [out] IHUntypedObjectX*Lines, [in] VARIANT DirectionUncertainty, [in] VARIANT AngleResolution, [in] VARIANT Smoothing, [in] VARIANT FilterSize, [in] VARIANT Threshold, [in] VARIANT AngleGap, [in] VARIANT DistGap, [in] VARIANT GenLines, [out] VARIANT* Angle, [out] VARIANT* Dist)

IHImageX* HImageX.HoughLinesDir(
[out] IHRegionX*Lines, [in] Hlong DirectionUncertainty, [in] Hlong AngleResolution, [in] BSTR Smoothing, [in] Hlong FilterSize, [in] Hlong Threshold, [in] Hlong AngleGap, [in] Hlong DistGap, [in] BSTR GenLines, [out] VARIANT* Angle, [out] VARIANT* Dist)

static void HOperatorSet.HoughLinesDir(HObject imageDir, out HObject houghImage, out HObject lines, HTuple directionUncertainty, HTuple angleResolution, HTuple smoothing, HTuple filterSize, HTuple threshold, HTuple angleGap, HTuple distGap, HTuple genLines, out HTuple angle, out HTuple dist)

HImage HImage.HoughLinesDir(out HRegion lines, int directionUncertainty, int angleResolution, string smoothing, int filterSize, int threshold, int angleGap, int distGap, string genLines, out HTuple angle, out HTuple dist)

Description

The operator hough_lines_dirhough_lines_dirHoughLinesDirhough_lines_dirHoughLinesDirHoughLinesDir selects line-like structures in a region based on the Hough transform. The individual points of a line can be unconnected. The region is given by the domain of ImageDirImageDirImageDirImageDirImageDirimageDir. The lines are returned in Hessian normal form (HNF), that is by the direction and length of their normal vector.

In contrast to hough_lineshough_linesHoughLineshough_linesHoughLinesHoughLines, additionally the edge direction in ImageDirImageDirImageDirImageDirImageDirimageDir (e.g., returned by sobel_dirsobel_dirSobelDirsobel_dirSobelDirSobelDir or edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage) is taken into account. This results in a more efficient computation and in a reduction of the noise in the Hough space.

The parameter DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty describes how much the edge direction of the individual points within a line is allowed to vary. For example, with DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty = 10 a horizontal line (i.e., edge direction = 0 degrees) may contain points with an edge direction between -10 and +10 degrees. The higher DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty is chosen, the higher the computation time will be. For DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty = 180 hough_lines_dirhough_lines_dirHoughLinesDirhough_lines_dirHoughLinesDirHoughLinesDir shows the same behavior as hough_lineshough_linesHoughLineshough_linesHoughLinesHoughLines, i.e., the edge direction is ignored. DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty should be chosen at least as high as the step width of the edge direction stored in ImageDirImageDirImageDirImageDirImageDirimageDir. The minimum step width is 2 degrees (defined by the image type 'direction').

The parameter AngleResolutionAngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolution defines how accurately the angles are determined. The accuracy amounts to 1 / AngleResolutionAngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolution degrees. A subsequent smoothing of the Hough space results in an increased stability. The smoothing filter can be selected by SmoothingSmoothingSmoothingSmoothingSmoothingsmoothing, the degree of smoothing by the parameter FilterSizeFilterSizeFilterSizeFilterSizeFilterSizefilterSize (see mean_imagemean_imageMeanImagemean_imageMeanImageMeanImage or gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage for details). The parameter ThresholdThresholdThresholdThresholdThresholdthreshold 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 AngleGapAngleGapAngleGapAngleGapAngleGapangleGap and DistGapDistGapDistGapDistGapDistGapdistGap define a neighborhood of the points in the Hough image in order to determine the local maxima: AngleGapAngleGapAngleGapAngleGapAngleGapangleGap describes the minimum distance of two maxima in the Hough image in angle direction and DistGapDistGapDistGapDistGapDistGapdistGap in distance direction, respectively. Thus, maxima exceeding ThresholdThresholdThresholdThresholdThresholdthreshold but lying close to an even higher maximum are eliminated. This can particularly be helpful when searching for short and long lines simultaneously. Besides the unsmoothed Hough image HoughImageHoughImageHoughImageHoughImageHoughImagehoughImage, the lines are returned in HNF (AngleAngleAngleAngleAngleangle, DistDistDistDistDistdist). If the parameter GenLinesGenLinesGenLinesGenLinesGenLinesgenLines is set to 'true'"true""true""true""true""true", additionally those regions in ImageDirImageDirImageDirImageDirImageDirimageDir are returned that contributed to the local maxima in Hough space. They are stored in the parameter LinesLinesLinesLinesLineslines.

Parallelization

Parameters

ImageDirImageDirImageDirImageDirImageDirimageDir (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (direction)

Image containing the edge direction. The edges are described by the image domain.

HoughImageHoughImageHoughImageHoughImageHoughImagehoughImage (output_object)  image objectHImageHImageHImageHImageXHobject * (uint2)

Hough transform.

LinesLinesLinesLinesLineslines (output_object)  region-array objectHRegionHRegionHRegionArrayHRegionXHobject *

Regions of the input image that contributed to the local maxima.

DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertainty (input_control)  angle.deg HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Uncertainty of edge direction (in degrees).

Default value: 2

Typical range of values: 2 ≤ DirectionUncertainty DirectionUncertainty DirectionUncertainty DirectionUncertainty DirectionUncertainty directionUncertainty ≤ 180

Minimum increment: 2

AngleResolutionAngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolution (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Resolution in the angle area (in 1/degrees).

Default value: 4

List of values: 1, 2, 4, 8

SmoothingSmoothingSmoothingSmoothingSmoothingsmoothing (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Smoothing filter for hough image.

Default value: 'mean' "mean" "mean" "mean" "mean" "mean"

List of values: 'gauss'"gauss""gauss""gauss""gauss""gauss", 'mean'"mean""mean""mean""mean""mean", 'none'"none""none""none""none""none"

FilterSizeFilterSizeFilterSizeFilterSizeFilterSizefilterSize (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Required smoothing filter size.

Default value: 5

List of values: 3, 5, 7, 9, 11

ThresholdThresholdThresholdThresholdThresholdthreshold (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Threshold value in the Hough image.

Default value: 100

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

AngleGapAngleGapAngleGapAngleGapAngleGapangleGap (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

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

Default value: 5

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

DistGapDistGapDistGapDistGapDistGapdistGap (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

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

Default value: 5

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

GenLinesGenLinesGenLinesGenLinesGenLinesgenLines (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Create line regions if 'true'"true""true""true""true""true".

Default value: 'true' "true" "true" "true" "true" "true"

List of values: 'false'"false""false""false""false""false", 'true'"true""true""true""true""true"

AngleAngleAngleAngleAngleangle (output_control)  hesseline.angle.rad-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

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

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

DistDistDistDistDistdist (output_control)  hesseline.distance-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (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 dist

Result

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

Possible Predecessors

edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage, sobel_dirsobel_dirSobelDirsobel_dirSobelDirSobelDir, thresholdthresholdThresholdthresholdThresholdThreshold, nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDir, reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain, skeletonskeletonSkeletonskeletonSkeletonSkeleton

Possible Successors

gen_region_hlinegen_region_hlineGenRegionHlinegen_region_hlineGenRegionHlineGenRegionHline, select_matching_linesselect_matching_linesSelectMatchingLinesselect_matching_linesSelectMatchingLinesSelectMatchingLines

See also

hough_line_trans_dirhough_line_trans_dirHoughLineTransDirhough_line_trans_dirHoughLineTransDirHoughLineTransDir, hough_line_transhough_line_transHoughLineTranshough_line_transHoughLineTransHoughLineTrans, gen_region_hlinegen_region_hlineGenRegionHlinegen_region_hlineGenRegionHlineGenRegionHline, hough_circleshough_circlesHoughCircleshough_circlesHoughCirclesHoughCircles

Module

Foundation


ClassesClassesClassesClasses | | | | Operators