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

Hough2 PDF

The Hough transform can be used to detect lines in an image. It works by transforming each point in image space to a line in parameter space. The intersection points of these lines indicate line parameters that are present in the original image. The algorithm quantizes parameter space and counts the number of points that fall into each bin, with more popular bins indicating detected lines.

Uploaded by

saiankita anand
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)
110 views20 pages

Hough2 PDF

The Hough transform can be used to detect lines in an image. It works by transforming each point in image space to a line in parameter space. The intersection points of these lines indicate line parameters that are present in the original image. The algorithm quantizes parameter space and counts the number of points that fall into each bin, with more popular bins indicating detected lines.

Uploaded by

saiankita anand
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 ddetail
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 1

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 2
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 3

Remember edge types?

Step edge Ramp edge Roof edge

INF 4300 4
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 5

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 6
Repetition – Edge magnitude
• The gradient is a measure of how the function f(xf(x,y)
y)
changes as a function of changes in the arguments x
and y.
• The gradient vector points in the direction of
maximum change.g
• The length of this vector indicates the size of the
gradient:

INF 4300 7

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 ) ⎞
θ ( x, y ) = tan −1 ⎜⎜ ⎟⎟ Gradient retning
Gradient-retning
⎝ x
g ( x , y ) ⎠

INF 4300 8
Repetition – Edge direction
• The direction of this vector is also an important
quantity.
• If α(x,y)
( ,y) is the direction of f in the point
p (x,y)
( ,y) then:

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


to the x-axis
• Remember
R b alsol that
h theh direction
di i off an edge
d willill be
b
perpendicular to the gradient in any given point

INF 4300 9

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
the boundaryy of some objects.
j
• We wish to find sets of pixels that make up straight
lines.
• Regard a point (xi; yi)
g line yi = axi + b
and a straight
– 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 considerid x and d y as parameters
t d a and
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.
• These
ese twoo po
pointss g give
e rise
se to
o two
od different
e e lines
es in
(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 valuel 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


Visualizingg the effects the
accumulator space accumulator. Still
The height of the with noise, the largest
peak will be defined peaks correspond to
by the number of the major lines.
lines
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 21

x
• Each curve in the figure represents
the familiy of lines that pass
through a particular point (xi,yi) in
th xy-plane.
the l
y

• 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 y-
axis.
• A vertical line will have θ=90 and ρ
equal to the intercept with the x-
axis.

INF 4300 22
Matlab demo
• From (x
(x,y)
y) to (ρ θj)
( i,θ

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 ±N√2 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
• Initialize all cells
e s with value
a ue 0
0.
• 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 space lie on the line ρj=x cos θj +ysin θj
xy-space
• 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
⎛ gx ⎞
φg ( x, y ) = arctan ⎜⎜ ⎟

• Algorithm: ⎝ gy ⎠
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
• How can we look for lines with a certain orientation?
1. Obtain a thresholded edge image
2
2. S
Specify
if subdivisions
bdi i i th ρθ-plane.
i the
in θ l
3. 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
2

• So we have a 3D p parameter space.


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;

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 ( θ) cell.
di t d (ρ,θ) 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