-
Notifications
You must be signed in to change notification settings - Fork 1
/
test_likelihood.py
128 lines (97 loc) · 3.53 KB
/
test_likelihood.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
from nose.tools import *
import numpy as np
import likelihood
from matplotlib import pylab
import util2 as util
import template
def test_render_source_coords():
W = 320
H = 240
eo = likelihood.EvaluateObj(H, W)
eo.set_params(14, 5, 3)
for x in range(0, W, 20):
for y in range(0, H, 20):
for phi in np.arange(0, 4*np.pi, 4):
for theta in np.arange(0, np.pi, 4):
i1 = eo.render_source(x, y, phi, theta)
def test_render_at_all():
W = 320
H = 240
eo = likelihood.EvaluateObj(H, W)
eo.set_params(14, 5, 3)
i1 = eo.render_source(100, 100, np.pi /2., np.pi/2)
pylab.imshow(i1, interpolation='nearest', origin='lower',
vmin=0, vmax=1.0, cmap=pylab.cm.gray)
#pylab.show()
def test_interval():
rr = likelihood.RenderRegion(100, 200)
rr.add_x(0, 0)
rr.add_y(0, 0)
assert_equal(rr.get_x_bounded(), (0, 0))
assert_equal(rr.get_y_bounded(), (0, 0))
rr.add_x(4, 10)
rr.add_y(8, 12)
assert_equal(rr.get_x_bounded(), (4, 10))
assert_equal(rr.get_y_bounded(), (8, 12))
rr.add_x(10, 14)
rr.add_y(12, 18)
assert_equal(rr.get_x_bounded(), (4, 14))
assert_equal(rr.get_y_bounded(), (8, 18))
rr.add_x(-7, 14)
rr.add_y(-5, 18)
assert_equal(rr.get_x_bounded(), (0, 14))
assert_equal(rr.get_y_bounded(), (0, 18))
rr.add_x(-7, 150)
rr.add_y(-5, 250)
assert_equal(rr.get_x_bounded(), (0, 100))
assert_equal(rr.get_y_bounded(), (0, 200))
def test_likelihood_evaluator2():
tr = template.TemplateRenderCircleBorder()
tr.set_params(14, 6, 4)
t1 = tr.render(0, np.pi/2)
img = np.zeros((240, 320), dtype=np.uint8)
env = util.Environmentz((1.5, 2.0), (240, 320))
le2 = likelihood.LikelihoodEvaluator2(env, tr, similarity='normcc')
img[(120-t1.shape[0]/2):(120+t1.shape[0]/2),
(160-t1.shape[1]/2):(160+t1.shape[1]/2)] += t1 *255
pylab.subplot(1, 2, 1)
pylab.imshow(img, interpolation='nearest', cmap=pylab.cm.gray)
state = np.zeros(1, dtype=util.DTYPE_STATE)
xvals = np.linspace(0, 2., 200)
yvals = np.linspace(0, 1.5, 200)
res = np.zeros((len(yvals), len(xvals)), dtype=np.float32)
for yi, y in enumerate(yvals):
for xi, x in enumerate(xvals):
state[0]['x'] = x
state[0]['y'] = y
state[0]['theta'] = np.pi / 2.
res[yi, xi] = le2.score_state(state, img)
pylab.subplot(1, 2, 2)
pylab.imshow(res)
pylab.colorbar()
pylab.show()
def test_likelihood_evaluator3():
tr = template.TemplateRenderCircleBorder()
tr.set_params(14, 6, 4)
t1 = tr.render(0, np.pi/2)
img = np.zeros((240, 320), dtype=np.uint8)
env = util.Environmentz((1.5, 2.0), (240, 320))
le2 = likelihood.LikelihoodEvaluator3(env, tr)
img[(120-t1.shape[0]/2):(120+t1.shape[0]/2),
(160-t1.shape[1]/2):(160+t1.shape[1]/2)] += t1 *255
pylab.subplot(1, 2, 1)
pylab.imshow(img, interpolation='nearest', cmap=pylab.cm.gray)
state = np.zeros(1, dtype=util.DTYPE_STATE)
xvals = np.linspace(0, 2., 100)
yvals = np.linspace(0, 1.5, 100)
res = np.zeros((len(yvals), len(xvals)), dtype=np.float32)
for yi, y in enumerate(yvals):
for xi, x in enumerate(xvals):
state[0]['x'] = x
state[0]['y'] = y
state[0]['theta'] = np.pi / 2.
res[yi, xi] = le2.score_state(state, img)
pylab.subplot(1, 2, 2)
pylab.imshow(res)
pylab.colorbar()
pylab.show()