37from visp.core
import ImageGray, ImageRGBa, ImageRGBf, RGBa, RGBf
46 'instance': ImageGray(h, w, 0),
54 'instance': ImageRGBa(h, w, RGBa(0, 50, 75, 255)),
55 'base_value': RGBa(0, 50, 75, 255),
56 'value': RGBa(255, 128, 0, 100),
57 'np_value': np.asarray([255, 128, 0, 100], dtype=np.uint8),
62 'instance': ImageRGBf(h, w, RGBf(0.0, 0.0, 0.0)),
63 'base_value': RGBf(0.0, 0.0, 0.0),
64 'value': RGBf(255, 0, 0),
65 'np_value': np.asarray([255, 0, 0], dtype=np.float32),
94 Tests 2D pixel indexing and correspondance between visp pixel reps and numpy reps
97 vp_image = test_dict[
'instance']
98 np_array = np.array(vp_image, copy=
False)
99 np_array[::2, ::2] = test_dict[
'np_value']
100 for i
in range(vp_image.getHeight()):
101 for j
in range(vp_image.getWidth()):
102 if i % 2 == 0
and j % 2 == 0:
103 assert vp_image[i, j] == test_dict[
'value']
104 assert vp_image[-i, -j] == test_dict[
'value']
106 assert vp_image[i, j] == test_dict[
'base_value']
107 assert vp_image[-i, -j] == test_dict[
'base_value']
109 with pytest.raises(RuntimeError):
110 vp_image[vp_image.getHeight()]
111 with pytest.raises(RuntimeError):
112 vp_image[0, vp_image.getWidth()]
113 with pytest.raises(RuntimeError):
114 vp_image[-vp_image.getHeight() - 1]
115 with pytest.raises(RuntimeError):
116 vp_image[0, -vp_image.getWidth() - 1]
121 vp_image = test_dict[
'instance']
123 vp_image[0, 0] = test_dict[
'base_value']
124 assert vp_image[0, 0] == test_dict[
'base_value']
125 vp_image[0, 0] = test_dict[
'value']
126 assert vp_image[0, 0] == test_dict[
'value']
129 vp_image[1] = test_dict[
'value']
130 for i
in range(vp_image.getCols()):
131 assert vp_image[1, i] == test_dict[
'value']
135 vp_image[:] = test_dict[
'value']
136 for i
in range(vp_image.getRows()):
137 for j
in range(vp_image.getCols()):
138 assert vp_image[i, j] == test_dict[
'value']
141 vp_image[:] = test_dict[
'base_value']
142 vp_image[::2] = test_dict[
'value']
143 for i
in range(vp_image.getRows()):
144 v = test_dict[
'base_value']
if i % 2 == 1
else test_dict[
'value']
145 for j
in range(vp_image.getCols()):
146 assert vp_image[i, j] == v
148 vp_image[:] = test_dict[
'base_value']
149 vp_image[2:-2:2] = test_dict[
'value']
150 for i
in range(vp_image.getRows()):
151 v = test_dict[
'base_value']
if i % 2 == 1
or i >= vp_image.getRows() - 2
or i < 2
else test_dict[
'value']
152 for j
in range(vp_image.getCols()):
153 assert vp_image[i, j] == v
155 vp_image[:, :] = test_dict[
'base_value']
156 for i
in range(vp_image.getRows()):
157 for j
in range(vp_image.getCols()):
158 assert vp_image[i, j] == test_dict[
'base_value']
161 vp_image[2:-2:2, 3:-3] = test_dict[
'value']
162 for i
in range(vp_image.getRows()):
163 is_v = i >= 2
and i % 2 == 0
and i < vp_image.getRows() - 2
164 for j
in range(vp_image.getCols()):
165 is_vj = is_v
and j >= 3
and j < vp_image.getCols() - 3
166 v = test_dict[
'value']
if is_vj
else test_dict[
'base_value']
167 assert vp_image[i, j] == v
172 with pytest.raises(RuntimeError):
173 vp_image[::-1] = test_dict[
'value']
174 with pytest.raises(RuntimeError):
175 vp_image[:, ::-1] = test_dict[
'value']
178 with pytest.raises(RuntimeError):
179 vp_image[2:1] = test_dict[
'value']
180 with pytest.raises(RuntimeError):
181 vp_image[:, 3:2] = test_dict[
'value']
186 I = ImageGray(h, w, 0)
187 single_row = np.ones((w, ), dtype=np.uint8) * 255
190 assert not np.any(np.equal(I.numpy()[list(set(range(h)) - {2})], single_row))
191 assert np.all(np.equal(I.numpy()[2], single_row))
195 assert np.all(np.equal(I.numpy()[list(set(range(h)) - {0, h - 2, h - 1})], single_row))
196 assert np.all(np.equal(I.numpy()[[0, h - 2, h - 1]], 0))