Boost logo

Boost :

From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2019-06-26 10:42:28

Hi Miral,

Looking briefly at your,
since it's not yet PR-ed, commenting here.

Two immediate issues related to compilation failure:

1. `SrcView temp_conv(src_view);` is copy of `const_view(img)`, in

`const_view`-ed can not be a destination/output as it is used, in

See FIX 1 part in code pasted below.

2 The detail::adaptive_impl in turn expects `const_view`-ed

See FIX 2 part below.

Summary, `SrcView` is used in dual-nature way:
as `view_t` and `const_view_t`, that causes ambiguity.


Below is a combined modification of this part
which should help to illustrate what view types are expected and where:

//SrcView temp_conv(src_view); // BUG: src_view comes from
const_view(img), can not be a destination

// FIX 1
// tmp_img is a shortcut for illustration, you need to consider if such image as
// temporary buffer or in-place convolution is a valid idea - to be
honest, I have not looked
// into details of the numeric extension w.r.t to the in-place
convolution and its limitations.
image<typename SrcView::value_type> tmp_img;
image<typename SrcView::value_type>::view_t tmp_view = view(tmp_img);
// end of FIX 1
kernel_1d<short> kernel(mean, kernel_size, kernel_size / 2);
convolve_rows<pixel<float, SrcView::value_type::layout_t>>(src_view,
kernel, tmp_view);
convolve_cols<pixel<float, SrcView::value_type::layout_t>>(src_view,
kernel, tmp_view);

// FIX 2
SrcView temp_conv(tmp_view);
// end of FIX 2

Let's discuss if anything is still unclear.
I hope it helps.

Best regards,

Mateusz Łoskot,

Boost list run by Boost-Gil-Owners