TuttleOFX  1
main.cpp
Go to the documentation of this file.
00001 #include <tuttle/common/utils/global.hpp>
00002         
00003 #include <boost/gil/gil_all.hpp>
00004 
00005 #define png_infopp_NULL (png_infopp)NULL
00006 #define int_p_NULL (int*)NULL
00007 
00008 #include <boost/gil/extension/io/png_io.hpp>
00009 
00010 #include <boost/preprocessor/stringize.hpp>
00011 #include <boost/lexical_cast.hpp>
00012 #include <boost/exception/all.hpp>
00013 
00014 #include <boost/timer.hpp>
00015 #include <boost/date_time/posix_time/posix_time.hpp>
00016 
00017 #include <iostream>
00018 
00019 #include <terry/filter/canny.hpp>
00020 
00021 
00022 int main( int argc, char** argv )
00023 {
00024         boost::shared_ptr<tuttle::common::formatters::Formatter> formatter( tuttle::common::formatters::Formatter::get() );
00025         boost::shared_ptr<tuttle::common::Color>                 color( tuttle::common::Color::get() );
00026         formatter->init_logging();
00027         color->disable();
00028         
00029         try
00030         {
00031                 using namespace boost::gil;
00032 
00033                 boost::gil::rgb32f_image_t img;
00034                 boost::gil::png_read_and_convert_image( "data/input.png", img );
00035                 boost::gil::rgb32f_view_t imgView( view(img) );
00036                 
00037                 TUTTLE_LOG_INFO( "input - x:" << imgView.width() << ", y:" << imgView.height() );
00038                 TUTTLE_LOG_INFO( "input - size:" << imgView.size() );
00039                 
00040                 boost::gil::gray32f_image_t imgCanny( imgView.width(), imgView.height() );
00041                 boost::gil::rgb32f_image_t tmpImgRgb( imgView.width(), imgView.height() );
00042                 boost::gil::gray32f_image_t tmpImgGray( imgView.width(), imgView.height() );
00043                 
00044                 boost::timer t;
00045                 terry::filter::canny<std::allocator>(
00046                         imgView,
00047                         view(tmpImgRgb), view(tmpImgGray),
00048                         view(imgCanny),
00049                         point2<double>(1, 1),
00050                         terry::filter::convolve_option_extend_zero,
00051                         0.025, 0.1
00052                         );
00053                 TUTTLE_LOG_INFO( "full canny time: " << t.elapsed() );
00054                 
00055                 boost::gil::png_write_view( "data/terry/output_canny_terry.png", color_converted_view<rgb8_pixel_t>( view(imgCanny) ) );
00056         }
00057         catch(... )
00058         {
00059                 TUTTLE_LOG_ERROR( "Exception ... : main de sam." );
00060                 TUTTLE_LOG_ERROR( boost::current_exception_diagnostic_information() );
00061 
00062         }
00063 
00064         return 0;
00065 }
00066