Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
198 views20 pages

Hough Transform

The document describes the Hough transform algorithm for detecting lines in images. It begins with an introduction to the Hough transform and how it can be used to detect lines, circles, and other parametric curves. It then discusses representing lines using the a,b-representation and the ρ,θ-representation. The rest of the document provides details on the Hough transform algorithm, including quantizing the parameter space, accumulating votes in an accumulator array, and detecting lines from peaks in the accumulator. Examples of applying the Hough transform to images are also presented.

Uploaded by

r10aldinho
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
198 views20 pages

Hough Transform

The document describes the Hough transform algorithm for detecting lines in images. It begins with an introduction to the Hough transform and how it can be used to detect lines, circles, and other parametric curves. It then discusses representing lines using the a,b-representation and the ρ,θ-representation. The rest of the document provides details on the Hough transform algorithm, including quantizing the parameter space, accumulating votes in an accumulator array, and detecting lines from peaks in the accumulator. Examples of applying the Hough transform to images are also presented.

Uploaded by

r10aldinho
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

INF 4300 Hough transform

Anne Solberg ([email protected])

This
Thi lecture
l t
goes more in
i d
detail
t il than
th Gonzales
G
l and
d
Woods 10.2.
Introduction to Hough transform
Using gradient information to detect lines
Representing
R
ti a line
li

The [a,b]-representation

The [,]-representation

Algorithm for detection of lines


Detecting circles
F1 21.10.09

INF 4300

Introduction to Hough transform


The Hough transform (HT) can be used to detect lines
lines, circles or
other parametric curves.
It was introduced in 1962 (Hough 1962) and first used to find
lines in images a decade later (Duda 1972).
The goal is to find the location of lines in images.
This problem could be solved by e.g.
e g Morphology and a linear
structuring element, or by correlation.
Then we would need to handle rotation, zoom, distortions etc.

Hough transform can detect lines, circles and other structures if


their parametric equation is known.
It can give robust detection under noise and partial occlusion.
occlusion

INF 4300

An image with linear structures


Borders between the regions are
straight lines.
These lines separate regions
with different grey levels.
Edge detection is often used as
preprocessing to Hough
transform.

INF 4300

Remember edge types?

Step edge

Ramp edge

INF 4300

Roof edge

Hough transform the input


Hough-transform
The input image must be a thresholded edge image
image.
The magnitude results computed by the Sobel
operator can be thresholded and used as input
input.

INF 4300

Repetition - Basic edge detection


A thresholded edge image is the starting point for
Hough transform.
What does a Sobel filter produce?
Approximation to the image gradient:

which
which is a vector quantity given by:

INF 4300

Repetition Edge magnitude


The gradient is a measure of how the function f(x
f(x,y)
y)
changes as a function of changes in the arguments x
and y.
The gradient vector points in the direction of
g
maximum change.
The length of this vector indicates the size of the
gradient:

INF 4300

Gx, Gy and the gradient


operator
Horisontal edges:
Compute gx(x,y)=Hx*f(x,y)
Convolve with the horisontal filter kernel Hx

Vertical edges:
Compute
p
gt((x,y)=H
,y) y*f(x,y)
( ,y)

Compute the gradient operator as:


g ( x, y ) = g x2 ( x, y ) + g y2 ( x, y ) Gradient-magnitude (kant-styrke)
g y ( x, y )

g
(
x
,
y
)
x

( x, y ) = tan 1

Gradient retning
Gradient-retning

INF 4300

Repetition Edge direction


The direction of this vector is also an important
quantity.
( ,y) is the direction of f in the point
p
(x,y)
( ,y) then:
If (x,y)

Remember that (x,y) will be the angle with respect


to the x-axis
Remember
R
b also
l that
h the
h direction
di
i off an edge
d will
ill be
b
perpendicular to the gradient in any given point

INF 4300

Input to Hough thresholded edge image


Prior to applying Hough transform:
Compute edge magnitude from input
image.
As always with edge detection
detection, simple
lowpass filtering can be applied first.
Threshold the gradient magnitude
g
image.

INF 4300

10

Hough transform
Hough-transform
Assume that we have performed some edge
detection, and a thresholding of the edge magnitude
image.
Thus, we have n pixels that may partially describe
j
the boundaryy of some objects.
We wish to find sets of pixels that make up straight
lines.
Regard a point (xi; yi)
and a straight
g line yi = axi + b
There are many lines passing through the point (xi,yi).
Common to them is that they satisfy the equation for some
set of parameters (a,b
a b).
)
INF 4300

11

Hough transform basic idea

INF 4300

12

Hough transform basic idea


This equation can obviously be rewritten as follows:
W
We now consider
id x and
d y as parameters
t
and
d a and
db
as variables.
This is a line in (a,b
a b) space parameterized by x and y.
So: a single point in xy-space gives a line in (a,b) space.

Another point (x,y


x y) will give rise to another line in
(a,b) space.

INF 4300

13

Hough transform basic idea


One point in (x,y) gives a line
in the (a,b)-plane

(x,y)-space

(a,b)-space

INF 4300

14

Hough transform basic idea


Two points (x
(x,y)
y) and(z
and(z,k)
k) define a line in the (x,y)
(x y)
plane.
ese two
o po
pointss g
give
e rise
se to
o two
od
different
e e lines
es in
These
(a,b) space.
In (a,b) space these lines will intersect in a point
( b) where
(a,b)
h
a is
i the
th rise
i and
d b the
th intersect
i t
t off the
th
line defined by (x,y) and (z,k) in (x,y) space.
The fact is that all points on the line defined by (x,y)
(x y)
and (z,k) in (x,y) space will parameterize lines that
intersect in (a,b) in (a,b) space.
Points that lie on a line will form a cluster of
crossings in the (a,b) space.
INF 4300

15

Hough transform algorithm


Quantize the parameter space (a
(a,b),
b) that is
is, divide it into cells
cells.
This quantized space is often referred to as the accumulator
cells.
In the figure in the next slide amin is the minimal value of a etc.
Count the number of times a line intersects a given cell.
F
For each
h point
i t ((x,y)) with
ith value
l 1 in
i the
th binary
bi
image,
i
find
fi d the
th
values of (a,b) in the range [[amin,amax],[bmin,bmax]] defining the line
corresponding to this point.
Increase
I
th
the value
l off th
the accumulator
l t ffor th
these [[a,b]
b] point.
i t
Then proceed with the next point in the image.

Cells receiving a minimum number of votes are assumed to


correspond to lines in (x,y) space.
Lines
Li
can be
b found
f
d as peaks
k in
i this
thi accumulator
l t space.
INF 4300

16

Hough transform - algorithm

Hough accumulator cells

INF 4300

17

Example images and accumulator space


Thresholded
edge images

Note how noise


effects the
accumulator. Still
with noise, the largest
peaks correspond to
the major lines.
lines

Visualizingg the
accumulator space
The height of the
peak will be defined
by the number of
pixels in the line.
Thresholding the
accumulator space
and superimposing
this onto the edge
image
INF 4300

18

Hough transform polar


representation
i off lines
li
In practical life we do not use the equation
in order to represent lines (why?)

Rather,
Rather we use the polar representation of lines:

INF 4300

19

Hough transform polar


representation of lines

Polar representation of lines


INF 4300

20

Hough transform and the polar


representation
t ti
The polar (also called normal) representation of straight lines is
x cos + y sin =

Each point (xi,yi) in the xy-plane gives a sinusoid in the plane.


M colinear
li
point
i t lying
l i on the
th line
li
xi cos + yi sin =

will give M curves that intersect at (i,j) in the parameter


plane.
Local maxima give significant lines.

INF 4300

Each curve in the figure represents


the familiy of lines that pass
through a particular point (xi,yi) in
th xy-plane.
the
l
The intersection point (,)
corresponds
p
to the lines that
passes through two points (xi,yi)
and (xj,yi)
A horizontal line will have =0 and
equal to the intercept with the yaxis.
A vertical line will have =90 and
equal to the intercept with the xaxis.
INF 4300

21

22

Matlab demo
From (x
(x,y)
y) to (
( i,
j)

INF 4300

23

Hough transform - algorithm using polar


representation
t ti off lilines
Partition the -plane
plane into accumulator cells A[,],
A[ ]
[min, max]; [min, max]
The range of is 90
Horizontal lines have =0,,
0
Vertical lines have =90, 0

The range of is N2 if the image is of size NxN


The discretization of and must happen with
values and giving acceptable precision and
sizes of the paramter space.
INF 4300

24

Algorithm continued
The cell (i
(i,j)
j) corresponds to the square associated
with parameter values (j, i).
a ea
all cells
e s with value
a ue 0
0.
Initialize
For each foreground point (xk,yk) in the thresholded
edge image
Let j equal all the possible -values

Solve for using =x cos j +ysin j


Round to the closest cell value,, q
Increment A(i,q) if the j results in q

After this procedure, A(i,j)=P means that P points in


the xy
xy-space
space lie on the line j=x cos j +ysin j
Find line candiates where A(i,j) is above a suitable
threshold value.
INF 4300

25

Hough transform example 1


Example 1: 11x11 image and its Hough transform:

INF 4300

26

Hough transform example 2


Example 2: 11x11 image and its Hough transform:

INF 4300

27

Hough transform example 3


Example 3: Natural scene and result of Sobel edge
detection:

INF 4300

28

Hough transform example 3


Example 3: Natural scene and result of Sobel edge
detection followed by thresholding:

INF 4300

29

Hough transform example 3


Example 3: Accumulator matrix:

INF 4300

30

Hough transform example 3


Example 3: Original image and 20 most prominent
lines:

INF 4300

31

Hough transform - advantages


Advantages:

Conceptually simple.
Easy implementation
implementation.
Handles missing and occluded data very gracefully.
Can be adapted to many types of forms, not just lines.

INF 4300

32

Hough transform - disadvantages


Disadvantages:

Computationally complex for objects with many parameters.


Looks for only one single type of object
object.
Can be fooled by apparent lines.
The length and the position of a line segment cannot be
determined.
Co-linear line segments cannot be separated.

INF 4300

33

Hough-transform using the full gradient


information a variant
Given a gradient magnitude image g(x,y)
g(x y) containing a line.
line
Simple algorithm:
for all g(xi,yi)>T do

ffor allll do
d
= xi cos + yi sin
find corresponding indexes (m,n) and increment A(m,n)

Better
Bette algorithm
algo ithm if we
e ha
have
e both
The gradient magnitude g(x,y)
The gradient components gx and gy and can compute

Algorithm:

gx

gy

g ( x, y ) = arctan

for all g(
g(xi,yi))>T do

for all do
= xi cos(g(x,y)) + yi sin(g(x,y))
find index m corresponding to and increment A(m, g(x,y))
INF 4300

34

Hough transform and edge linking

1.
2
2.
3.

How can we look for lines with a certain orientation?


Obtain a thresholded edge image
S
Specify
if subdivisions
bdi i i
i the
in
th -plane.
l
Examine the counts of the accumulator cells for high
pixel concentrations.
concentrations
4. Examine the relationship (principally for continuity)
between pixels in a chosen cell.
cell

Continuity here normally means distance between


disconnected pixels. A gap in the line can be bridged if the
length of the gap is less than a certain threshold.

INF 4300

35

Using edge linking

INF 4300

36

Hough transform for circles


A circle in the xy-plane
xy plane is given by

( x a )2 + ( y b) = c 2
parameter space.
p
So we have a 3D p
Simple procedure:
set all A[a,b,c]=0
for every (x,y) where g(x,y)>T
for all a and b
c=sqrt((x a)^2+(y b)^2);
c=sqrt((x-a)^2+(y-b)^2);
A[a,b,c] = A[a,b,c]+1;
2

INF 4300

37

Hough transform exercise 1


Familiarize with Matlab function for line detection:
Functions hough(), houghpeaks(), and houghlines()

Next exercise:
Test Hough transform for equal size circles on the coins
g
image.

INF 4300

38

Hough transform exercise 2


Next exercise: The randomized Hough transform
transform.

Simple idea (line case): From the edge image, pick two points.
Find the and corresponding to this set of points.
I
Increment
t th
the iindicated
di t d (,)
( ) cell.
ll
Once a cell reaches a certain (low) count, assume that an edge is
present in the image.
Verify this
this.
If truly present, erase this line from the image
Continue until no more points or until the number of iterations
between two detections is to high
high.
Orders of magnitude faster than the ordinary transform.

INF 4300

39

You might also like