Ok, I tried to change typedefs to make things more clear, but I guess I have had a mess. I will try to explain it again:
I am trying to use the class CpuPreprocessor publicly available here:
https://bitbucket.org/rodrigob/doppia/src/8b784ff23eeab329d02ebe2eb1bc4775e277444e/src/video_input/preprocessing/CpuPreprocessor.hpp?at=default
To do so, I create a shared pointer pointing to an object of the class:
shared_ptr<CpuPreprocessor> homography_rectifier_p;
homography_rectifier_p.reset(new CpuPreprocessor(video_input_p->get_left_image().dimensions(),
video_input_p->get_stereo_calibration(),
options));
Then, I try to execute the `run` method of the class CpuPreprocessor, which has the prototype:
void run(const AbstractPreprocessor::input_image_view_t& input, const int camera_index,
const AbstractPreprocessor::output_image_view_t &output);
// I get the input images
AbstractStereoMatcher::input_image_view_t
input_left_view(video_input_p->get_left_image()),
input_right_view(video_input_p->get_right_image());
// The ouput of the compiler is the following:
/home/nestor/Dropbox/KULeuven/projects/doppia/src/applications/stixel_world_improved/StixelWorldApplication.cpp:296:102: required from here
/home/nestor/Dropbox/KULeuven/projects/doppia/libs/boost/gil/image_view.hpp:101:143: error: ‘const class boost::gil::any_image_view<boost::mpl::v_item<boost::gil::image_view<boost::gil::memory_based_2d_locator<boost::gil::memory_based_step_iterator<const boost::gil::pixel<unsigned char, boost::gil::layout<boost::mpl::vector3<boost::gil::red_t, boost::gil::green_t, boost::gil::blue_t> > >*> > >, boost::mpl::v_item<boost::gil::image_view<boost::gil::memory_based_2d_locator<boost::gil::memory_based_step_iterator<const boost::gil::pixel<unsigned char, boost::gil::layout<boost::mpl::vector1<boost::gil::gray_color_t> > >*> > >, boost::mpl::vector0<mpl_::na>, 0>, 0> >’ has no member named ‘pixels’
make[2]: *** [CMakeFiles/stixel_world.dir/StixelWorldApplication.cpp.o] Error 1
// Finally, the typedefs for the types of the variables used in this post are the following:
typedef AbstractVideoInput::input_image_view_t input_image_view_t;
typedef AbstractVideoInput::input_image_t::view_t output_image_view_t;
typedef AbstractVideoInput::input_image_view_t::point_t dimensions_t;
/// input image are either rgb8 or gray8
typedef boost::mpl::vector<boost::gil::gray8_image_t, boost::gil::rgb8_image_t> input_images_t;
// FIXME some applications may need float instead of bits8
typedef boost::gil::gray8_image_t disparity_map_t;
typedef boost::gil::rgb8_image_t input_image_t;
typedef boost::gil::rgb8c_view_t input_image_view_t;
typedef input_image_view_t::point_t dimensions_t;
I hope somebody can help me with that. As I said, I'm new on using Boost Generic Image Library and it is driving me crazy.
Thank you in advance, best regards.
Néstor