/Src/Dependencies/Boost/libs/gil/example/histogram.cpp
http://hadesmem.googlecode.com/ · C++ · 53 lines · 28 code · 10 blank · 15 comment · 2 complexity · 3f2d78e1eb42dcf18476e00ed8d606dc MD5 · raw file
- /*
- 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 <algorithm>
- #include <fstream>
- #include <boost/gil/image.hpp>
- #include <boost/gil/typedefs.hpp>
- #include <boost/gil/color_convert.hpp>
- #include <boost/gil/extension/io/jpeg_io.hpp>
- using namespace boost::gil;
- template <typename GrayView, typename R>
- 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 <typename V, typename R>
- void get_hist(const V& img_view, R& hist) {
- gray_image_hist(color_converted_view<gray8_pixel_t>(img_view), hist);
- }
- int main() {
- rgb8_image_t img;
- jpeg_read_image("test.jpg",img);
- 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;
- }