Thank you Steven for your reply. It works great.
Here is what I finally did:

// struct histogram_functor

    typename boost::enable_if< boost::mpl::contains< boost::mpl::transform<gray_image_types,add_view_type<boost::mpl::_1> >::type,
                                                     ViewType>,
                               result_type>::type operator()(const ViewType& v) const
    {
         // ...
    }

    template<class ViewType>
    typename boost::enable_if< boost::mpl::or_< boost::mpl::contains< boost::mpl::transform< rgb_image_types,
                                                                                             add_view_type<boost::mpl::_1 > >::type,
                                                                      ViewType>,
                                                boost::mpl::contains< boost::mpl::transform< rgba_image_types,
                                                                                             add_view_type<boost::mpl::_1 > >::type,
                                                                      ViewType>
                                              >,
                               result_type>::type operator()(const ViewType& v) const
    {
         // ...
    }

// ...
template <typename ImageType>
struct add_view_type
{
    typedef typename ImageType::view_t type;
};


However, I have one other need: type reduction. For instance, all rgb image types have the same overload operator(). I do not know if the solution I came up instantiate the operator for all types, but if it is the case, it is a valid but not a good solution. What I need is to have the same operator() for all rgb types. I have read in a paper from L .Bourdev (www.lubomir.org/academic/MinimizingCodeBloat.pdf) that I could use type reduction, but I need some help. Can you help ?
Here is the definition of rgb_image_types:
#define RGB_IMAGE_TYPES (boost::gil::rgb8_image_t)(boost::gil::rgb16_image_t)(boost::gil::rgb32_image_t)
typedef boost::mpl::vector< BOOST_PP_SEQ_ENUM( RGB_IMAGE_TYPES ) > rgb_image_types;

Best regards,

Olivier