Example Use Case – Hough Transform - 2024.1 English

Versal Adaptive SoC System and Solution Planning Methodology Guide (UG1504)

Document ID
Release Date
2024.1 English

Hough transform is a feature extraction algorithm used in computer vision and image processing. The technique allows identification of objects and shapes by using a parametric representation of the image and then collects voting statistics through an accumulator.

The most popular use case of Hough transform is to detect lines in an image using polar representation of the pixel edges in an image. The [x, y] coordinates of each pixel can be mapped into (ρ, θ) representation using ρ = xcos(θ) - ysin(θ). Whenever an edge exists in a pixel, the accumulator value of a 2D histogram (H) is incremented at the corresponding (ρ, θ) → H(ρ, θ) + = 1. The values of ρ and θ that maximize H correspond to a line in the original (x, y) domain.

Figure 1. Hough Transform Flow

The number of bins in the histogram is determined by the size of the image "R" x "C" as well as the resolution of θ. This, along with frame rate, are the driving factors in compute, bandwidth, and storage → cost. Note that cos(θ) and sin(θ) for -π/2 < θ < π/2 can be pre-computed and stored in look-up tables.

For more information, see the Hough transform Wikipedia page.