@@ -131,20 +131,10 @@ struct test_image_5x5_kernel_1x9_boundary_extend_zero
131
131
image_t img_expected_col (img_view.width (), img_view.height ());
132
132
unsigned int const kernel_shift_offset = 2 ;
133
133
134
- for (std::ptrdiff_t y = 0 ; y < img_view.height (); ++y)
135
- {
136
- auto img_it = img_view.row_begin (y);
137
- auto img_expected_row_it = gil::view (img_expected_row).row_begin (y);
138
- for (std::ptrdiff_t x = kernel_shift_offset; x < img_view.width (); ++x)
139
- img_expected_row_it[x] = img_it[x - 2 ];
140
- }
141
- for (std::ptrdiff_t x = 0 ; x < img_view.width (); ++x)
142
- {
143
- auto img_expected_row_it = gil::view (img_expected_row).col_begin (x);
144
- auto img_expected_col_it = gil::view (img_expected_col).col_begin (x);
145
- for (std::ptrdiff_t y = kernel_shift_offset; y < img_view.height (); ++y)
146
- img_expected_col_it[y] = img_expected_row_it[y - 2 ];
147
- }
134
+ fixture::row_conv1D_offset_img_generator (img_view, gil::view (img_expected_row),
135
+ kernel_shift_offset);
136
+ fixture::col_conv1D_offset_img_generator (gil::view (img_expected_row),
137
+ gil::view (img_expected_col), kernel_shift_offset);
148
138
149
139
auto const kernel_shift_by_two = fixture::create_kernel<channel_t >(
150
140
{0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 });
@@ -173,23 +163,17 @@ struct test_image_5x5_kernel_1x9_boundary_extend_constant
173
163
image_t img_out (img), img_expected_row (img);
174
164
unsigned int const kernel_shift_offset = 2 ;
175
165
176
- for (std::ptrdiff_t y = 0 ; y < img_view.height (); ++y)
177
- {
178
- auto img_it = img_view.row_begin (y);
179
- auto img_expected_row_it = gil::view (img_expected_row).row_begin (y);
180
- for (std::ptrdiff_t x = kernel_shift_offset; x < img_view.width (); ++x)
181
- img_expected_row_it[x] = img_it[x - 2 ];
182
- img_expected_row_it[1 ] = img_it[0 ];
183
- }
166
+ fixture::row_conv1D_offset_img_generator (img_view, gil::view (img_expected_row),
167
+ kernel_shift_offset);
168
+ fixture::row_conv1D_offset_img_generator (img_view, gil::view (img_expected_row),
169
+ 1 , 0 , 0 , img_view.height (), 2 );
170
+
184
171
image_t img_expected_col (img_expected_row);
185
- for (std::ptrdiff_t x = 0 ; x < img_view.width (); ++x)
186
- {
187
- auto img_expected_row_it = gil::view (img_expected_row).col_begin (x);
188
- auto img_expected_col_it = gil::view (img_expected_col).col_begin (x);
189
- for (std::ptrdiff_t y = kernel_shift_offset; y < img_view.height (); ++y)
190
- img_expected_col_it[y] = img_expected_row_it[y - 2 ];
191
- img_expected_col_it[1 ] = img_expected_row_it[0 ];
192
- }
172
+
173
+ fixture::col_conv1D_offset_img_generator (gil::view (img_expected_row),
174
+ gil::view (img_expected_col), kernel_shift_offset);
175
+ fixture::col_conv1D_offset_img_generator (gil::view (img_expected_row),
176
+ gil::view (img_expected_col), 1 , 0 , 0 , 2 , img_view.width ());
193
177
194
178
auto const kernel_shift_by_two = fixture::create_kernel<channel_t >({0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 });
195
179
gil::detail::convolve_1d<pixel_t >(gil::const_view (img_out), kernel_shift_by_two,
@@ -218,20 +202,11 @@ struct test_image_5x5_kernel_1x3_boundary_output_zero
218
202
image_t img_expected_col (img_view.width (), img_view.height ());
219
203
unsigned int const kernel_shift_offset = 1 ;
220
204
221
- for (std::ptrdiff_t y = 0 ; y < img_view.height (); ++y)
222
- {
223
- auto img_it = img_view.row_begin (y);
224
- auto img_expected_row_it = gil::view (img_expected_row).row_begin (y);
225
- for (std::ptrdiff_t x = kernel_shift_offset; x < img_view.width () - 1 ; ++x)
226
- img_expected_row_it[x] = img_it[x - 1 ];
227
- }
228
- for (std::ptrdiff_t x = 0 ; x < img_view.width (); ++x)
229
- {
230
- auto img_expected_row_it = gil::view (img_expected_row).col_begin (x);
231
- auto img_expected_col_it = gil::view (img_expected_col).col_begin (x);
232
- for (std::ptrdiff_t y = kernel_shift_offset; y < img_view.height () - 1 ; ++y)
233
- img_expected_col_it[y] = img_expected_row_it[y - 1 ];
234
- }
205
+ fixture::row_conv1D_offset_img_generator (img_view, gil::view (img_expected_row),
206
+ kernel_shift_offset, 0 , 0 , img_view.height (), img_view.width () - 1 );
207
+ fixture::col_conv1D_offset_img_generator (gil::view (img_expected_row),
208
+ gil::view (img_expected_col), kernel_shift_offset, 0 , 0 , img_view.height () - 1 ,
209
+ img_view.width ());
235
210
236
211
auto const kernel_shift_by_one = fixture::create_kernel<channel_t >({0 , 0 , 1 });
237
212
gil::detail::convolve_1d<pixel_t >(gil::const_view (img_out), kernel_shift_by_one,
@@ -259,21 +234,14 @@ struct test_image_5x5_kernel_1x3_boundary_output_ignore
259
234
image_t img_out (img), img_expected_row (img);
260
235
unsigned int const kernel_shift_offset = 1 ;
261
236
262
- for (std::ptrdiff_t y = 0 ; y < img_view.height (); ++y)
263
- {
264
- auto img_it = img_view.row_begin (y);
265
- auto img_expected_row_it = gil::view (img_expected_row).row_begin (y);
266
- for (std::ptrdiff_t x = kernel_shift_offset; x < img_view.width () - 1 ; ++x)
267
- img_expected_row_it[x] = img_it[x - 1 ];
268
- }
237
+ fixture::row_conv1D_offset_img_generator (img_view, gil::view (img_expected_row),
238
+ kernel_shift_offset, 0 , 0 , img_view.height (), img_view.width () - 1 );
239
+
269
240
image_t img_expected_col (img_expected_row);
270
- for (std::ptrdiff_t x = 0 ; x < img_view.width (); ++x)
271
- {
272
- auto img_expected_row_it = gil::view (img_expected_row).col_begin (x);
273
- auto img_expected_col_it = gil::view (img_expected_col).col_begin (x);
274
- for (std::ptrdiff_t y = kernel_shift_offset; y < img_view.height () - 1 ; ++y)
275
- img_expected_col_it[y] = img_expected_row_it[y - 1 ];
276
- }
241
+
242
+ fixture::col_conv1D_offset_img_generator (gil::view (img_expected_row),
243
+ gil::view (img_expected_col), kernel_shift_offset, 0 , 0 , img_view.height () - 1 ,
244
+ img_view.width ());
277
245
278
246
auto const kernel_shift_by_one = fixture::create_kernel<channel_t >({0 , 0 , 1 });
279
247
gil::detail::convolve_1d<pixel_t >(gil::const_view (img_out), kernel_shift_by_one,
@@ -301,21 +269,13 @@ struct test_image_5x5_kernel_1x3_boundary_extend_padded
301
269
image_t img_out (img), img_expected_row (img);
302
270
unsigned int const kernel_shift_offset = 1 ;
303
271
304
- for (std::ptrdiff_t y = 0 ; y < img_view.height (); ++y)
305
- {
306
- auto img_it = img_view.row_begin (y);
307
- auto img_expected_row_it = gil::view (img_expected_row).row_begin (y);
308
- for (std::ptrdiff_t x = kernel_shift_offset; x < img_view.width (); ++x)
309
- img_expected_row_it[x] = img_it[x - 1 ];
310
- }
272
+ fixture::row_conv1D_offset_img_generator (img_view, gil::view (img_expected_row),
273
+ kernel_shift_offset);
274
+
311
275
image_t img_expected_col (img_expected_row);
312
- for (std::ptrdiff_t x = 0 ; x < img_view.width (); ++x)
313
- {
314
- auto img_expected_row_it = gil::view (img_expected_row).col_begin (x);
315
- auto img_expected_col_it = gil::view (img_expected_col).col_begin (x);
316
- for (std::ptrdiff_t y = kernel_shift_offset; y < img_view.width (); ++y)
317
- img_expected_col_it[y] = img_expected_row_it[y - 1 ];
318
- }
276
+
277
+ fixture::col_conv1D_offset_img_generator (gil::view (img_expected_row),
278
+ gil::view (img_expected_col), kernel_shift_offset);
319
279
320
280
auto const kernel_shift_by_one = fixture::create_kernel<channel_t >({0 , 0 , 1 });
321
281
gil::detail::convolve_1d<pixel_t >(gil::const_view (img_out), kernel_shift_by_one,
0 commit comments