Boost logo

Boost :

Subject: Re: [boost] [GIL] image rescale algorithms
From: Est (esteban_at_[hidden])
Date: 2009-09-09 06:26:21

Hi Nicolas,

I used your code in Ramen (
It works great. Thank you.

And now, some feedback...

I think filters should be a small separate GIL extension.
They are useful also for other image resampling algorithms.

In clamp_channel_fn I added an overload like this:

template <typename SrcChannel, typename T, typename S, typename U>
void operator()(const SrcChannel& src, scoped_channel_value<T,S,U>& dst)
typedef typename channel_traits<scoped_channel_value<T,S,U>>::value_type

             dst = dst_value_t( src);

to avoid clamping floating point channels. Another option would be to
clamp only negative values.

I think

template <typename PixelType>
struct create_accum_pixel_type : public
create_accum_pixel_type<PixelType> {};

can be replaced with

template <typename PixelType>
struct create_accum_pixel_type {};

I had to add some typenames in front of accum_pixel_t in rescale_rows,
rescale_cols and rescale to build with gcc.

and I made a parallel version using Intel TBB. It's here:


Boost list run by bdawes at, gregod at, cpdaniel at, john at