hough_line_trans_dirhough_line_trans_dirHoughLineTransDirHoughLineTransDirhough_line_trans_dir (算子)

名称

hough_line_trans_dirhough_line_trans_dirHoughLineTransDirHoughLineTransDirhough_line_trans_dir — 使用局部梯度方向计算直线的霍夫变换。

签名

hough_line_trans_dir(ImageDir : HoughImage : DirectionUncertainty, AngleResolution : )

Herror hough_line_trans_dir(const Hobject ImageDir, Hobject* HoughImage, const Hlong DirectionUncertainty, const Hlong AngleResolution)

Herror T_hough_line_trans_dir(const Hobject ImageDir, Hobject* HoughImage, const Htuple DirectionUncertainty, const Htuple AngleResolution)

void HoughLineTransDir(const HObject& ImageDir, HObject* HoughImage, const HTuple& DirectionUncertainty, const HTuple& AngleResolution)

HImage HImage::HoughLineTransDir(Hlong DirectionUncertainty, Hlong AngleResolution) const

static void HOperatorSet.HoughLineTransDir(HObject imageDir, out HObject houghImage, HTuple directionUncertainty, HTuple angleResolution)

HImage HImage.HoughLineTransDir(int directionUncertainty, int angleResolution)

def hough_line_trans_dir(image_dir: HObject, direction_uncertainty: int, angle_resolution: int) -> HObject

描述

算子 hough_line_trans_dirhough_line_trans_dirHoughLineTransDirHoughLineTransDirHoughLineTransDirhough_line_trans_dir calculates the Hough transform for lines in those regions passed in the domain of ImageDirImageDirImageDirImageDirimageDirimage_dir. To do so, the angles and the lengths of the lines' normal vectors are registered in the parameter space (the so-called Hough or accumulator space).

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

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

The result is stored in a newly generated UINT2-Image (HoughImageHoughImageHoughImageHoughImagehoughImagehough_image), where the x-axis (i.e., columns) represents the angle between the normal vector and the x-axis of the original image, and the y-axis (i.e., rows) represents the distance of the line from the origin.

The angle ranges from -90 to 180 degrees and will be stored with a resolution of 1 / AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolutionangle_resolution, which means that one pixel in x-direction is equivalent to 1 / AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolutionangle_resolution degrees and that the HoughImageHoughImageHoughImageHoughImagehoughImagehough_image has a width of 270 * AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolutionangle_resolution + 1 pixels. The height of the HoughImageHoughImageHoughImageHoughImagehoughImagehough_image corresponds to the distance between the lower right corner of the surrounding rectangle of the input region and the origin.

The local maxima in the result image are equivalent to the parameter values of the lines in the original image.

执行信息

参数

ImageDirImageDirImageDirImageDirimageDirimage_dir (输入对象)  singlechannelimage objectHImageHObjectHImageHobject (direction)

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

HoughImageHoughImageHoughImageHoughImagehoughImagehough_image (输出对象)  image objectHImageHObjectHImageHobject * (uint2)

Hough transform.

DirectionUncertaintyDirectionUncertaintyDirectionUncertaintyDirectionUncertaintydirectionUncertaintydirection_uncertainty (输入控制)  angle.deg HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Uncertainty of the edge direction (in degrees).

默认值: 2

值范围: 2 ≤ DirectionUncertainty DirectionUncertainty DirectionUncertainty DirectionUncertainty directionUncertainty direction_uncertainty ≤ 180

最小增量: 2

AngleResolutionAngleResolutionAngleResolutionAngleResolutionangleResolutionangle_resolution (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

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

默认值: 4

值列表: 1, 2, 4, 8

结果

算子 hough_line_trans_dirhough_line_trans_dirHoughLineTransDirHoughLineTransDirHoughLineTransDirhough_line_trans_dir 在输入不为空时返回值 2 ( H_MSG_TRUE )。The behavior in case of empty input 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>)set_system("no_object_result",<Result>)。如有必要,则抛出异常。

可能的前趋

edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image, sobel_dirsobel_dirSobelDirSobelDirSobelDirsobel_dir, thresholdthresholdThresholdThresholdThresholdthreshold, hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdHysteresisThresholdhysteresis_threshold, nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDirNonmaxSuppressionDirnonmax_suppression_dir, reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain

可能的后继

binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter, thresholdthresholdThresholdThresholdThresholdthreshold, local_maxlocal_maxLocalMaxLocalMaxLocalMaxlocal_max, plateaus_centerplateaus_centerPlateausCenterPlateausCenterPlateausCenterplateaus_center

另见

hough_line_transhough_line_transHoughLineTransHoughLineTransHoughLineTranshough_line_trans, hough_lineshough_linesHoughLinesHoughLinesHoughLineshough_lines, hough_lines_dirhough_lines_dirHoughLinesDirHoughLinesDirHoughLinesDirhough_lines_dir

模块

基础