inline ipl_image_wrapper create_ipl_image( View view ) { typedef typename channel_type< View >::type channel_t; IplImage* img; if(( img = cvCreateImageHeader( make_cvSize( view.dimensions() ) , ipl_channel_type<channel_t>::type::value , num_channels<View>::value )) == NULL ) { throw std::runtime_error( "Cannot create IPL image." ); } cvSetData( img , const_cast<void *>( static_cast<const void *>(&view.begin()[0]) ) , num_channels<View>::value * view.width() * sizeof( channel_t ) ); return ipl_image_wrapper( img ); }
inline ipl_image_wrapper create_ipl_image( View view ) { typedef typename channel_type< View >::type channel_t; IplImage* img; if(( img = cvCreateImageHeader( make_cvSize( view.dimensions() ) , ipl_channel_type<channel_t>::type::value , num_channels<View>::value )) == NULL ) { throw std::runtime_error( "Cannot create IPL image." ); } cvSetData( img , interleaved_view_get_raw_data( view ) , num_channels<View>::value * view.width() * sizeof( channel_t ) ); return ipl_image_wrapper( img ); }