Documentation Center

  • Trial Software
  • Product Updates

vision.HoughTransform System object

Package: vision

Find lines in images via Hough transform

Description

The HoughTransform object finds lines in images via Hough transform. The Hough transform maps points in the Cartesian image space to curves in the Hough parameter space using the following equation:

Here, denotes the distance from the origin to the line along a vector perpendicular to the line, and denotes the angle between the x-axis and this vector. This object computes the parameter space matrix, whose rows and columns correspond to the rho and theta values respectively. Peak values in this matrix represent potential straight lines in the input image.

Construction

H = vision.HoughTransform returns a Hough transform System object, H, that implements the Hough transform to detect lines in images.

H = vision.HoughTransform(Name,Value) returns a Hough transform object, H, with each specified property set to the specified value. You can specify additional name-value pair arguments in any order as (Name1, Value1,...,NameN,ValueN).

H = vision.HoughTransform(THETARES, RHORES,'Name',Value,...) returns a Hough transform object, H, with the ThetaResolution property set to THETARES, the RhoResolution property set to RHORES, and other specified properties set to the specified values.

Code Generation Support
Supports MATLAB® Function block: Yes
System Objects in MATLAB Code Generation.
Code Generation Support, Usage Notes, and Limitations.

Properties

ThetaResolution

Theta resolution in radians

Specify the spacing of the Hough transform bins along the theta-axis in radians, as a scalar numeric value between 0 and pi/2. The default is pi/180.

RhoResolution

Rho resolution

Specify the spacing of the Hough transform bins along the rho-axis as a scalar numeric value greater than 0. The default is 1.

ThetaRhoOutputPort

Enable theta and rho outputs

Set this property to true for the object to output theta and rho values. The default is false.

OutputDataType

Data type of output

Specify the data type of the output signal as double, single, or Fixed point. The default is double.

 Fixed-Point Properties

Methods

cloneCreate Hough transform object with same property values
getNumInputsNumber of expected inputs to step method
getNumOutputsNumber of outputs from step method
isLockedLocked status for input attributes and nontunable properties
release Allow property value and input characteristics changes
stepOutput parameter space matrix for binary input image matrix

Examples

expand all

Detect Longest Line In An Image

Read the intensity image.

    I = imread('circuit.tif');

Create an edge detector, Hough transform, local maxima finder, and Hough lines objects.

    hedge = vision.EdgeDetector;
    hhoughtrans = vision.HoughTransform(pi/360,'ThetaRhoOutputPort', true);
    hfindmax = vision.LocalMaximaFinder(1,	'HoughMatrixInput', true);
    hhoughlines = vision.HoughLines('SineComputation','Trigonometric function');

Find the edges in the intensity image

 	BW = step(hedge, I);

Run the edge output through the transform

	[ht, theta, rho] = step(hhoughtrans, BW);

Find the location of the max value in the Hough matrix.

 	idx = step(hfindmax, ht);

Find the longest line.

 	linepts = step(hhoughlines, theta(idx(1)-1), rho(idx(2)-1), I);

View the image superimposed with the longest line.

   imshow(I); hold on;
   line(linepts([1 3])-1, linepts([2 4])-1,'color',[1 1 0]);

Algorithms

This object implements the algorithm, inputs, and outputs described on the Hough Transform block reference page. The object properties correspond to the block parameters.

See Also

| | |

Was this topic helpful?