oln::topo::inter_pixel::interpixel< I > Class Template Reference

#include <inter-pixel.hh>

Collaboration diagram for oln::topo::inter_pixel::interpixel< I >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef mlc::exact< I >::ret::dpoint_type dpoint_type
typedef mlc::exact< I >::ret::point_type point_type
typedef oln::topo::inter_pixel::node<
I > 
node_type
typedef oln::topo::inter_pixel::fwd_dir_iter<
I::dim > 
fwd_dir_iter_type
typedef oln::topo::inter_pixel::bkd_dir_iter<
I::dim > 
bkd_dir_iter_type
typedef oln::topo::inter_pixel::internal::dir_traits<
I::dim >::ret 
dir_type
typedef oln::topo::inter_pixel::internal::dir_traits<
I::dim > 
dir_traits_type
typedef std::pair< typename
mlc::exact< I >::ret::point_type,
typename oln::topo::inter_pixel::internal::dir_traits<
I::dim >::ret > 
head_type
typedef oln::mute< I, oln::topo::inter_pixel::node<
I > >::ret 
inter_pixel_type

Public Member Functions

 interpixel (const I &img)
 Construct an inter pixel map of the image img.
const node_type operator[] (const point_type &p) const
head_type folw (const head_type &in) const
std::ostream & print (std::ostream &ostr) const
 Print the inter pixel map.

Static Public Attributes

static const dpoint_type neighb_ [4]
static const dpoint_type inter_neighb_ [4]

Detailed Description

template<class I>
class oln::topo::inter_pixel::interpixel< I >

Inter pixel class.

This example give the node of the black connected component (bottom left).

 #include <ntg/int.hh>
 #include <oln/basics2d.hh>
 #include <oln/topo/inter-pixel/inter-pixel.hh>
 #include <iostream>
 using namespace oln::topo::inter_pixel;

 int main()
 {
   typedef oln::image2d<ntg::int_u8> img_type;
   img_type in = oln::load(IMG_IN "test-cmap.pgm");
   interpixel<oln::image2d<ntg::int_u8> > ip(in);
   std::cout << ip << std::endl;
   // Print:
   //  (5,0): east north south
   //  (5,5): north west south
   //  (7,5): east north west
   //  (10,9): east north west
   //  (10,11): north west south
   //  (11,14): north west south
 }
Todo:
FIXME: Test the output values in the tests.

Definition at line 75 of file inter-pixel.hh.


Member Function Documentation

template<class I>
const node_type oln::topo::inter_pixel::interpixel< I >::operator[] ( const point_type p  )  const [inline]

Todo:
FIXME: add doc.

Definition at line 110 of file inter-pixel.hh.

00111         {
00112           return data_[p];
00113         }

template<class I>
head_type oln::topo::inter_pixel::interpixel< I >::folw ( const head_type in  )  const [inline]

Todo:
FIXME: add doc.
Precondition:
precondition(data_[in.first].get(in.second) == true)

Definition at line 120 of file inter-pixel.hh.

References oln::topo::inter_pixel::interpixel< I >::inter_neighb_.

00121         {
00122           precondition(data_[in.first].get(in.second) == true);
00123 
00124           head_type out = in;
00125 
00126           do
00127             {
00128               out.first += inter_neighb_[out.second];
00129 
00130               if (out.first == in.first || data_[out.first].rank() > 2)
00131                 {
00132                   out.second = dir_traits_type::opposite(out.second);
00133                   break;
00134                 }
00135 
00136               dir_type next = dir_traits_type::next(out.second);
00137               dir_type prev = dir_traits_type::prev(out.second);
00138 
00139               out.second = data_[out.first].get(next) ? next :
00140                 data_[out.first].get(prev) ? prev : out.second;
00141             }
00142           while (out.first != in.first);
00143 
00144           return out;
00145         }


The documentation for this class was generated from the following file:
Generated on Tue Feb 20 20:29:26 2007 for Olena by  doxygen 1.5.1