DTU Compute
2019Image Analysis1 DTU Compute, Technical University of DenmarkDTU Compute19. November 2019 02502 - Week 11
Tim B. Dyrby ([email protected])Associate Professor, DTU Compute
&Rasmus R. Paulsen ([email protected])Associate Professor, DTU Compute
02502Image AnalysisWeek 11 – Hough Transformation and Path Tracing
1
http://courses.compute.dtu.dk/02502/
Plenty of slides adapted from Thomas Moeslunds lectures
DTU Compute
2019Image Analysis2 DTU Compute, Technical University of Denmark
Lecture 11 – Hough Transformation and Path Tracing
Hough transform
q
r
-50 0 50
-400
-200
0
200
400
DTU Compute
2019Image Analysis3 DTU Compute, Technical University of Denmark
Breaking NEWS!One morning I was shopping in Amsterdam with my young fiancée, and
tired, we sat down on the café terrace to drink a cup of coffee and I was
just thinking about whether I could do this, and I then designed the
algorithm for the shortest path. As I said, it was a twenty-minute invention.
—Edsger Dijkstra, in an interview with Philip L. Frana, Communications of the ACM, 2001[3]
DTU Compute
2019Image Analysis4 DTU Compute, Technical University of Denmark
What can you do after today?n Use the Hough transform for line detectionn Describe the slope-intercept, the general form and the normalised
form of linesn Describe the connection between lines and the Hough spacen Use edge detection to enhance images for use with the Hough
transformn Use dynamic programming to trace paths in imagesn Describe how an image can be used as a graphn Describe the fundamental properties of a cost imagen Compute the cost of pathn Compute an accumulator image for path tracingn Compute a backtracing image for path tracingn Choose appropriate pre-processing steps for path tracingn Describe how circular structures can be located using path tracing
DTU Compute
2019Image Analysis5 DTU Compute, Technical University of Denmark
Line Detectionn Find the lines in an image
DTU Compute
2019Image Analysis6 DTU Compute, Technical University of Denmark
What is a line?
n It can be the entire object– Large scale
n Can also be the border between an object and the background– Small scale
n Normally only locally defined
DTU Compute
2019Image Analysis7 DTU Compute, Technical University of Denmark
Enhancing the linesn We want to locate the borders
– Enhance themn Filtering (Prewitt)n Edge detection
Original Prewitt Edge
Prewitt
DTU Compute
2019Image Analysis8 DTU Compute, Technical University of Denmark
What is a line II?n Result of the edge filter is a selection of
white pixelsn Some of them define a line
– Not a perfect straight line– “Linelike”
n How do we find the collection of points that define a line?
DTU Compute
2019Image Analysis9 DTU Compute, Technical University of Denmark
Mathematical line definitionn The classical definition (slope-intercept form)
-5 0 5-5
0
5
x axis
y ax
is
y=0.5 * x + 1
y = ax + bSlope Intercept
Can not represent lines that are vertical
DTU Compute
2019Image Analysis10 DTU Compute, Technical University of Denmark
-5 0 5-5
0
5
x axis
y ax
is
Ax + By = C
Mathematical line definitionn General definition
n With
Ax + By = C
A2 + B2 = 1
Line normal
DTU Compute
2019Image Analysis11 DTU Compute, Technical University of Denmark
Mathematical line definitionn Normal parameterisation
n where– is the distance from the
origin– is the angle
-5 0 5-5
0
5
x axis
y ax
is
Ax + Bx = C
A2 + B2 = 1
DTU Compute
2019Image Analysis12 DTU Compute, Technical University of Denmark
Mathematical line definitionn Normal parameterisation
n Therefore a line can be defined by two values––
n A line can therefore also be seen as a point in a ( , )-space
-5 0 5-5
0
5
x axis
y ax
is
Ax + Bx = C
½µ
DTU Compute
2019Image Analysis13 DTU Compute, Technical University of Denmark
Converting linesn From normal to slop-intercept form
𝑝 = 𝑥 cos 𝜃 + 𝑦 sin 𝜃The normal form:
y = 𝑎𝑥 + 𝑏The slope-intercept form:
Slope=a
intercept=b
−𝑥 ∗ 𝑐𝑜𝑡𝜃 + 𝑝 ∗ 𝑐𝑜𝑠𝑒𝑐𝜃 = 𝑦
𝑦 = 𝑥 ∗ −𝑐𝑜𝑡𝜃 + 𝑝(𝑐𝑜𝑠𝑒𝑐𝜃)
Slope=a
Intercept=b
-cos 𝜃 + 𝑝 = sin 𝜃
Start: 𝑝 = 𝑥 cos 𝜃 + 𝑦 sin 𝜃
DTU Compute
2019Image Analysis14 DTU Compute, Technical University of Denmark
Something about angles
In Matlab and in this presentation
In the course notes
DTU Compute
2019Image Analysis15 DTU Compute, Technical University of Denmark
Hough Space
-5 0 5-5
0
5
x axis
y ax
is
r = x cos q + y sin q
-50 0 50-5
0
5
qr
DTU Compute
2019Image Analysis16 DTU Compute, Technical University of Denmark
More about angles
-5 0 5-5
0
5
x axis
y ax
is
r = x cos q + y sin qWhy?
but Matlab only allows
look at the mirror-projection of the normal
is used to determine if it is the “upper” or “lower line”
DTU Compute
2019Image Analysis17 DTU Compute, Technical University of Denmark
Hough space: Let’s vote for general line …§ Basically a tool to find a line through points.
Hou
gh s
pace
Poin
ts
1) Point coordinates: (x,y)
3) Hough parameters space:(r,𝝷)
https://en.wikipedia.org/wiki/Hough_transform
2) Define origin
4) Map all possible lines through a point for different 𝝷5) “Vote” which line fit best through points
DTU Compute
2019Image Analysis18 DTU Compute, Technical University of Denmark
How do we use the Hough space?
-50 0 50-5
0
5
q
r
?
DTU Compute
2019Image Analysis19 DTU Compute, Technical University of Denmark
How do we use the Hough space?n What if every little “line-segment” was plotted in the Hough-
space?
-50 0 50-5
0
5
q
r
DTU Compute
2019Image Analysis20 DTU Compute, Technical University of Denmark
Filled Hough-Spacen All “line segments” in the image examinedn A “global line” can now be found as a cluster of points
-50 0 50-5
0
5
q
r
In practice it is difficult to identify clusters
DTU Compute
2019Image Analysis21 DTU Compute, Technical University of Denmark
Hough transform in practisen Hough Space is represented as an imagen It is quantisized – made into finite boxes
-50 0 50-5
0
5
q
r
Pixel
A line segment here
Belongs to this pixel
DTU Compute
2019Image Analysis22 DTU Compute, Technical University of Denmark
Hough transform as a voting schemen The pixels in the Hough space are used to vote for lines. n Each line segment votes by putting one vote in a pixeln The pixels are also called accumulator cells
-50 0 50-5
0
5
q
r
DTU Compute
2019Image Analysis23 DTU Compute, Technical University of Denmark
Hough transform per pixeln In practise we do not use line segmentsn Each pixel in the input image votes for all potential lines going
through it.
-50 0 50-5
0
5
q
r
DTU Compute
2019Image Analysis24 DTU Compute, Technical University of Denmark
Hough transform per pixel
-50 0 50-5
0
5
q
r
Go through all and calculate (x, y) are fixed
Sinusoid!
DTU Compute
2019Image Analysis25 DTU Compute, Technical University of Denmark
Real Hough Transform
Hough space
q
r
-50 0 50
-60
-40
-20
0
20
40
60
DTU Compute
2019Image Analysis26 DTU Compute, Technical University of Denmark
Real Hough Transform IIHough space
q
r
-50 0 50
-60
-40
-20
0
20
40
60
DTU Compute
2019Image Analysis27 DTU Compute, Technical University of Denmark
Real Hough Transform and lines
Hough space
q
r
-50 0 50
-60
-40
-20
0
20
40
60
Spot the line!
A maximum where Hough pixel has value 3
DTU Compute
2019Image Analysis28 DTU Compute, Technical University of Denmark
Finding the lines in Hough spacen The lines are found in Hough space where most
pixels have voted for there being a linen Can be found by searching for maxima in Hough
Space Hough transform
q
r
-50 0 50
-400
-200
0
200
400
DTU Compute
2019Image Analysis29 DTU Compute, Technical University of Denmark
The practical guide to the Hough Transformn Start with an input image
DTU Compute
2019Image Analysis30 DTU Compute, Technical University of Denmark
The practical guide to the Hough Transformn Detect edges and create a
binary image
DTU Compute
2019Image Analysis31 DTU Compute, Technical University of Denmark
The practical guide to the Hough Transformn Compute Hough transform
and locate the maxima
q
r
-50 0 50
-300-200-100
0100200300
DTU Compute
2019Image Analysis32 DTU Compute, Technical University of Denmark
The practical guide to the Hough Transformn Draw the lines corresponding
to the found maximan Here the cyan line is the
longest
DTU Compute
2019Image Analysis33 DTU Compute, Technical University of Denmark
Path Tracingn The diameter as
function of the distance to the optic cup tells something about the patients health
n We need to find the arteries and veins
n Path tracing is one solution
Fundus imageArteries and veins
DTU Compute
2019Image Analysis34 DTU Compute, Technical University of Denmark
Path tracingn A path is defined as a
curve in an image defined as something that is different from the background
n In this case it is a dark line
n Pre-processing can for example turn edges into dark lines.
DTU Compute
2019Image Analysis35 DTU Compute, Technical University of Denmark
Dynamic Programmingn Break up large problem into
many small sub-problemsn A classic algorithm:
– Dijkstra’s algorithm– One source to all nodes shortest path
n We will look at a simplifiedvariant
Dijkstra, E. W. (1959). "A note on two problems in connexion with graphs". Numerische Mathematik. 1: 269–271.
DTU Compute
2019Image Analysis36 DTU Compute, Technical University of Denmark
Path tracingn A GPS device uses path
tracingn Based on graph
algorithms– A city is a node– A road is an edge. The
weight of the edge is the fuel cost
n How do we come from Copenhagen to Aalborg using the least fuel?
n Dijkstra’s algorithm
Copenhagen
Aalborg
2.3 l
2.1 l
1.3 l
DTU Compute
2019Image Analysis37 DTU Compute, Technical University of Denmark
Images as graphsn Each pixel is a noden Pixel neighbours are
connected by edgesn The edge cost ( )is
the pixel value n Directed graphn Imagine a car driving on
the imagen Called a cost image
𝑐(𝑟, 𝑐)
DTU Compute
2019Image Analysis38 DTU Compute, Technical University of Denmark
Simplified problemn Track dark linesn Path going from top to
bottomn No sharp turns –
smoothn Problem:
– from the top to the bottom
– Sum of pixel values should be minimal
DTU Compute
2019Image Analysis39 DTU Compute, Technical University of Denmark
Simplified problemn Pixel value at (r,c)
equals the cost
n The path P consist of pixels
n The sum of pixel values in the path
𝐶(𝑟, 𝑐)
DTU Compute
2019Image Analysis40 DTU Compute, Technical University of Denmark
Path costn A path is defined as (r,c)
coordinates
P = [(1,3), (2,3), (3, 2), (4,3), (5,4)]
DTU Compute
2019Image Analysis41 DTU Compute, Technical University of Denmark
Quiz 1: Total cost – what is 𝐶<=<?A) 167B) 350C) 403D) 270E) 345
P = [(1,3), (2,3), (3, 2), (4,3), (5,4)]
DTU Compute
2019Image Analysis42 DTU Compute, Technical University of Denmark
Path costn This is NOT the optimal pathn How do we compute the path
P that has minimum 𝐶<=<?
n Test all possible paths?– No! Impossible amount of
posibilities
P = [(1,3), (2,3), (3, 2), (4,3), (5,4)]
DTU Compute
2019Image Analysis43 DTU Compute, Technical University of Denmark
Quiz 2: Path Cost
A path has been found in the image P=[(1,4),(2,4),(3,5),(4,5),(5,5),(6,4)]. A Matlab matrix coordinate system is used. What is the total cost of the path?
A) 196B) 154C) 201D) 185E) 132
DTU Compute
2019Image Analysis44 DTU Compute, Technical University of Denmark
Path restriction: The rulesn Path is only allowed to
– Go down– Move one pixel left or
right
n Longer jumps not allowed
DTU Compute
2019Image Analysis45 DTU Compute, Technical University of Denmark
Accumulator imagen Keeps track of the
accumulated cost for efficient paths finding
n Path ending here has cost 296
DTU Compute
2019Image Analysis46 DTU Compute, Technical University of Denmark
Computing the accumulator image
Step 1: Copy first row of input image
DTU Compute
2019Image Analysis47 DTU Compute, Technical University of Denmark
Computing the accumulator image
Step 2: Fill second row
DTU Compute
2019Image Analysis48 DTU Compute, Technical University of Denmark
Computing the accumulator image
Step 3: Fill all rows by looking at the previous row
DTU Compute
2019Image Analysis49 DTU Compute, Technical University of Denmark
Quiz 3: Accumulator ImageA) 57B) 167C) 301D) 241E) 145
An optimal path has been found in the image. What is the value of the accumulator image in the marked pixel?
DTU Compute
2019Image Analysis50 DTU Compute, Technical University of Denmark
Using the accumulator image
Step 4: The end of the optimal path can now be found
DTU Compute
2019Image Analysis51 DTU Compute, Technical University of Denmark
The backtracing image
• Keeps track of where the path came from
• Each pixel stores the column number
DTU Compute
2019Image Analysis52 DTU Compute, Technical University of Denmark
Using the backtracing image
Step 5: Trace the path in the backtracing image
DTU Compute
2019Image Analysis53 DTU Compute, Technical University of Denmark
Using the backtracing image
DTU Compute
2019Image Analysis54 DTU Compute, Technical University of Denmark
Quiz 4: BacktracingA) 1B) 2C) 3D) 4E) 5
An optimal path has been found in an image. The backtracing image is seen below and the optimal path ends in the marked pixel. A Matlab coordinate system is used. What is the optimal path?
DTU Compute
2019Image Analysis55 DTU Compute, Technical University of Denmark
Pre-processingn We would like to track
paths that are not dark curves
DTU Compute
2019Image Analysis56 DTU Compute, Technical University of Denmark
Quiz 5 : X-ray preprocessingA) Gaussian smoothingB) 255-IC) Gradient filterD) RegistrationE) Morphological operation
DTU Compute
2019Image Analysis57 DTU Compute, Technical University of Denmark
Pre-processing
Edge filtered image(Gaussian smoothing followed by Prewitt)
DTU Compute
2019Image Analysis58 DTU Compute, Technical University of Denmark
Path tracing on pre-processed image
Paths found on pre-processed image
Question from students:The prewitt filter (moving the filter from left to right) show an edge as highintensity when it is a image intensity change from low to high (red path).However, the “blue” path shown is from an edge coming from an imageintensity change from high to low, and therefore will appear as low intensityvalues (not easy to see).
DTU Compute
2019Image Analysis59 DTU Compute, Technical University of Denmark
Quiz 6: Optimal Path 2
A) 81B) 64C) 11D) 73E) 51
A 5 x 5 image is filled with values given the gray level run length encoding: 2, 180, 1, 15, 3, 112, 1, 8, 4, 177, 1, 20, 4, 195, 1, 12, 3, 242, 2, 25, 3, 9. After that the optimal path is found. What is the total cost?
15+8+20+12+9=64180 180 15 112 112112 8 177 177 177177 20 195 195 195195 12 242 242 24225 25 9 9 9
DTU Compute
2019Image Analysis60 DTU Compute, Technical University of Denmark
Locating Circular Structures
• Define origin inside structure
• Send out spokes
DTU Compute
2019Image Analysis61 DTU Compute, Technical University of Denmark
Locating Circular Structures
• Each spoke is a line in a new image (surface- layer detection)
• Prewitt• Dijkstra’s algorithm• Map back the spokes into image
DTU Compute
2019Image Analysis62 DTU Compute, Technical University of Denmark
Next week
n Statistical shape analysis
Top Related