/* Copyright 2005-2007 Adobe Systems Incorporated Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt). See http://opensource.adobe.com/gil for most recent version including documentation. */ /*************************************************************************************************/ /// \file /// \brief Example file to demonstrate a way to compute histogram /// \author Lubomir Bourdev and Hailin Jin /// \date February 27, 2007 #include #include #include #include using namespace boost::gil; template void gray_image_hist(const GrayView& img_view, R& hist) { // for_each_pixel(img_view,++lambda::var(hist)[lambda::_1]); for (typename GrayView::iterator it=img_view.begin(); it!=img_view.end(); ++it) ++hist[*it]; } template void get_hist(const V& img_view, R& hist) { gray_image_hist(color_converted_view(img_view), hist); } int main() { rgb8_image_t img; read_image("test.jpg", img, jpeg_tag()); int histogram[256]; std::fill(histogram,histogram + 256, 0); get_hist(const_view(img), histogram); std::fstream histo_file("out-histogram.txt", std::ios::out); for(std::size_t ii = 0; ii < 256; ++ii) histo_file << histogram[ii] << std::endl; histo_file.close(); return 0; }