void drawLine( ipl_image_wrapper& ipl_image , point_t start , point_t end , PIXEL color , std::size_t line_width ) { cvLine( ipl_image.get() , make_cvPoint( start ) , make_cvPoint( end ) , make_cvScalar( color ) , line_width ); }
void drawRectangle( ipl_image_wrapper& ipl_image , point_t start , point_t end , PIXEL pixel , std::size_t line_width ) { cvRectangle( ipl_image.get() , make_cvPoint( start ) , make_cvPoint( end ) , make_cvScalar( pixel ) , line_width ); }
void drawCircle( ipl_image_wrapper& ipl_image , point_t center , std::size_t radius , PIXEL color , std::size_t line_width ) { cvCircle( ipl_image.get() , make_cvPoint( center ) , radius , make_cvScalar( color ) , line_width ); }
inline cvpoint_array_t make_cvPoint_array( const curve_t& curve ) { std::size_t curve_size = curve.size(); cvpoint_array_t cvpoint_array( new CvPoint[ curve.size() ] ); for( std::size_t i = 0; i < curve_size ; ++i ) { cvpoint_array[i] = make_cvPoint( curve[i] ); } return cvpoint_array; }
/// circle template< typename Color , typename Line_Type > inline void drawCircle( ipl_image_wrapper& ipl_image , const point_t& center , std::size_t radius , const Color& color , std::size_t thickness , const Line_Type& ) { cvCircle( ipl_image.get() , make_cvPoint( center ) , radius , make_cvScalar( color ) , thickness , typename Line_Type::type::value ); } template< typename View , typename Line_Type > inline void drawCircle( View view , point_t center , std::size_t radius , typename View::value_type color