Digital Signal Processing Reference
In-Depth Information
1:
HarrisCorners(
I
(
u, v
))
8.3
Implementierung
Prefilter (smooth) the original image:
I
← I ∗ H
p
2:
Algorithmus 8.1
Harris-Detektor. Aus einem Inten-
sitatsbild
I
(
u, v
) wird eine sortierte
Liste von Eckpunkten berechnet. De-
tails zu den Parametern
H
p
,
H
dx
,
H
dy
,
H
b
,
α
,
t
H
und
d
min
finden sich
in Abb. 8.1.
3:
Step 1 - compute the corner response function:
4:
Compute the horizontal and vertical derivatives:
I
x
← I
∗ H
dx
,
y
← I
∗ H
dy
5:
Compute the components of the local structure matrix
M
=
`
A
CB
´
:
A ← I
x
,
B← I
y
,
C← I
x
I
y
Blur each components of the structure matrix:
M
=
`
A C
C
B
´
:
6:
A ← A ∗ H
b
,
B ← B ∗ H
b
,
C ← C ∗ H
b
7:
Compute the corner response function:
Q ←
(
A ·
B −
C
2
)
− α ·
(
A
+
B
)
2
8:
Step 2 - collect corner points:
9:
Create an empty list
Corners ←{}
10:
for
all image coordinates (
u, v
)
do
11:
if
Q
(
u, v
)
>t
H
and
IsLocalMax(
Q, u, v
)
then
12:
Create corner node
c
i
=(
u
i
,v
i
,q
i
)
←
(
u, v, Q
(
u, v
))
13:
Add
c
i
to
Corners
14:
Sort
Corners
by
q
i
in descending order.
15:
GoodCorners ←
CleanUpNeighbors(
Corners
)
16:
return
GoodCorners
.
17:
IsLocalMax(
Q, u, v
)
determine if
Q
(
u, v
) is a local maximum
18:
Let
q
c
← Q
(
u, v
)(centerpixel)
19:
Let
N←Neighbors
(
Q, u, v
)
values of all neighboring pixels
20:
if
q
c
>q
i
for all
q
i
∈N
then
21:
return
true
22:
else
23:
return
false
.
24:
CleanUpNeighbors(
Corners
)
Corners
is sorted by descending
q
25:
Create an empty list
GoodCorners ←{}
26:
while
Corners
is not empty
do
27:
c
i
=(
u
i
,v
i
,q
i
)
←
RemoveFirst(
Corners
)
28:
Add
c
i
to
GoodCorners
29:
Delete all nodes
c
j
from
Corners
if
Dist
(
c
i
,
c
j
)
<d
min
30:
return
GoodCorners
.
8.3.1 Schritt 1 - Berechnung der
corner response function
Um die positiven und negativen Werte der in diesem Schritt verwendeten
Filter handhaben zu konnen, werden fur die Zwischenergebnisse Gleit-
kommabilder verwendet, die auch die notwendige Dynamik und Prazi-
sion bei kleinen Werten sicherstellen. Die Kerne fur die benotigten Filter,
also das Filter fur die Vorglattung
H
p
, die Gradientenfilter
H
dx
,
H
dy
und
das Glattungsfilter fur die Komponenten der Strukturmatrix
H
b
, sind als
eindimensionale
float
-Arrays definiert: