mln::image3d< T > Struct Template Reference
[Basic types]

Basic 3D image class. More...

#include <image3d.hh>

Inheritance diagram for mln::image3d< T >:

Inheritance graph

List of all members.

Public Types

typedef box3d::bkd_piter bkd_piter
 Backward Site_Iterator associated type.
typedef Image< void > category
typedef S domain_t
 Site_Set associated type.
typedef dpoint3d dpoint
typedef E exact_t
typedef box3d::fwd_piter fwd_piter
 Forward Site_Iterator associated type.
typedef fwd_piter piter
 Site_Iterator associated type; default definition is fwd_piter.
typedef point3d point
typedef box3d pset
typedef point3d psite
 Point_Site associated type.
typedef S::site site
 Site associated type.
typedef mln::value::set< T > t_eligible_values_set
 Eligible-value-set associated type.
typedef mln::value::set
< typename
mln::value::super_value< T >
::ret
t_values_space
 Value space associated type.

Public Member Functions

void destroy ()
 Detach data from an image (free it if nobody else hold it).
bool has (const psite &p) const
 Test if p belongs to the image domain.
const util::tracked_ptr
< internal::data< E > > & 
hook_data_ () const
 Hook to the image data.
const void * id_ () const
 Give an identifier of this image.
template<typename P>
unsigned index_of_point (const P &p) const
 Give the offset of the site p.
bool is_valid () const
 Test if this image has been initialized; default impl.
std::size_t nsites () const
 Give the number of sites of the image domain.
const t_eligible_values_setvalues_eligible () const
const t_values_spacevalues_space () const
 Return the value space of the image.

Protected Attributes

util::tracked_ptr
< internal::data< E > > 
data_

Package Types

typedef T & lvalue
 Return type of read-write access.
typedef const T & rvalue
 Return type of read-only access.
typedef image3d< tag::value_< T > > skeleton
 Skeleton.
typedef T value
 Value associated type.

Package Functions

T & at_ (def::coord sli, def::coord row, def::coord col)
 Read-write access to the image value located at (sli, row, col).
const T & at_ (def::coord sli, def::coord row, def::coord col) const
 Read-only access to the image value located at (sli, row, col).
const box3dbbox () const
 Give the bounding box domain.
unsigned border () const
 Give the border thickness.
T * buffer ()
 Give a hook to the value buffer.
const T * buffer () const
 Give a hook to the value buffer.
int delta_index (const dpoint3d &dp) const
 Fast Image method.
const box3ddomain () const
 Give the definition domain.
T & element (unsigned i)
 Read-write access to the image value located at index i.
const T & element (unsigned i) const
 Read-only access to the image value located at index i.
bool has (const point3d &p) const
 Test if p is valid.
 image3d (int nslis, int nrows, int ncols, unsigned bdr=border::thickness)
 Constructor with the numbers of indexes and the border thickness.
 image3d (const box3d &b, unsigned bdr=border::thickness)
 Constructor with a box and the border thickness (default is 3).
 image3d ()
 Constructor without argument.
void init_ (const box3d &b, unsigned bdr=border::thickness)
 Initialize an empty image.
unsigned ncols () const
 Give the number of columns.
unsigned nelements () const
 Give the number of cells (points including border ones).
unsigned nrows () const
 Give the number of rows.
unsigned nslices () const
 Give the number of slices.
T & operator() (const point3d &p)
 Read-write access to the image value located at point p.
const T & operator() (const point3d &p) const
 Read-only access to the image value located at point p.
point3d point_at_index (unsigned o) const
 Give the point corresponding to the offset o.
void resize_ (unsigned new_border)
 Resize image border with new_border.

Package Attributes

 __pad0__:image_primary< T
 Super type.
 box3d
image3d< T > super_


Detailed Description

template<typename T>
struct mln::image3d< T >

Basic 3D image class.

The parameter T is the type of pixel values. This image class stores data in memory and has a virtual border with constant thickness around data.

Definition at line 129 of file core/image/image3d.hh.


Member Typedef Documentation

template<typename T>
typedef box3d ::bkd_piter mln::image3d< T >::bkd_piter

Backward Site_Iterator associated type.

Reimplemented from mln::internal::image_base< T, S, E >.

Definition at line 137 of file core/image/image3d.hh.

template<typename E>
typedef Image<void> mln::Image< E >::category [inherited]

Reimplemented from mln::Object< E >.

Definition at line 75 of file core/concept/image.hh.

template<typename T, typename S, typename E>
typedef S mln::internal::image_base< T, S, E >::domain_t [inherited]

Site_Set associated type.

Reimplemented in mln::value::stack_image< n, I >.

Definition at line 105 of file core/internal/image_base.hh.

template<typename T>
typedef dpoint3d mln::image3d< T >::dpoint

Definition at line 135 of file core/image/image3d.hh.

template<typename E>
typedef E mln::Object< E >::exact_t [inherited]

Definition at line 172 of file object.hh.

template<typename T>
typedef box3d ::fwd_piter mln::image3d< T >::fwd_piter

Forward Site_Iterator associated type.

Reimplemented from mln::internal::image_base< T, S, E >.

Definition at line 136 of file core/image/image3d.hh.

template<typename T>
typedef T& mln::image3d< T >::lvalue [package]

Return type of read-write access.

Definition at line 152 of file core/image/image3d.hh.

template<typename T, typename S, typename E>
typedef fwd_piter mln::internal::image_base< T, S, E >::piter [inherited]

Site_Iterator associated type; default definition is fwd_piter.

Reimplemented in mln::ch_piter_image< I, Fwd >.

Definition at line 123 of file core/internal/image_base.hh.

template<typename T>
typedef point3d mln::image3d< T >::point

Definition at line 134 of file core/image/image3d.hh.

template<typename T>
typedef box3d mln::image3d< T >::pset

Definition at line 132 of file core/image/image3d.hh.

template<typename T>
typedef point3d mln::image3d< T >::psite

Point_Site associated type.

Reimplemented from mln::internal::image_base< T, S, E >.

Definition at line 133 of file core/image/image3d.hh.

template<typename T>
typedef const T& mln::image3d< T >::rvalue [package]

Return type of read-only access.

Definition at line 149 of file core/image/image3d.hh.

template<typename T, typename S, typename E>
typedef S ::site mln::internal::image_base< T, S, E >::site [inherited]

Site associated type.

Reimplemented in mln::tr_image< S, I, T >.

Definition at line 111 of file core/internal/image_base.hh.

template<typename T>
typedef image3d< tag::value_<T> > mln::image3d< T >::skeleton [package]

Skeleton.

Definition at line 156 of file core/image/image3d.hh.

template<typename T, typename S, typename E>
typedef mln::value::set<T> mln::internal::image_base< T, S, E >::t_eligible_values_set [inherited]

Eligible-value-set associated type.

Definition at line 91 of file core/internal/image_base.hh.

template<typename T, typename S, typename E>
typedef mln::value::set< typename mln::value::super_value<T>::ret > mln::internal::image_base< T, S, E >::t_values_space [inherited]

Value space associated type.

Definition at line 98 of file core/internal/image_base.hh.

template<typename T>
typedef T mln::image3d< T >::value [package]

Value associated type.

Reimplemented from mln::internal::image_base< T, S, E >.

Definition at line 146 of file core/image/image3d.hh.


Constructor & Destructor Documentation

template<typename T>
mln::image3d< T >::image3d (  )  [inline, package]

Constructor without argument.

Definition at line 385 of file core/image/image3d.hh.

template<typename T>
mln::image3d< T >::image3d ( const box3d b,
unsigned  bdr = border::thickness 
) [inline, package]

Constructor with a box and the border thickness (default is 3).

Definition at line 391 of file core/image/image3d.hh.

References mln::image3d< T >::init_().

template<typename T>
mln::image3d< T >::image3d ( int  nslis,
int  nrows,
int  ncols,
unsigned  bdr = border::thickness 
) [inline, package]

Constructor with the numbers of indexes and the border thickness.

Definition at line 398 of file core/image/image3d.hh.

References mln::make::box3d(), and mln::image3d< T >::init_().


Member Function Documentation

template<typename T>
T & mln::image3d< T >::at_ ( def::coord  sli,
def::coord  row,
def::coord  col 
) [inline, package]

Read-write access to the image value located at (sli, row, col).

Definition at line 505 of file core/image/image3d.hh.

References mln::image3d< T >::has().

template<typename T>
const T & mln::image3d< T >::at_ ( def::coord  sli,
def::coord  row,
def::coord  col 
) const [inline, package]

Read-only access to the image value located at (sli, row, col).

Definition at line 496 of file core/image/image3d.hh.

References mln::image3d< T >::has().

template<typename T>
const box3d & mln::image3d< T >::bbox (  )  const [inline, package]

Give the bounding box domain.

Definition at line 424 of file core/image/image3d.hh.

References mln::internal::image_base< T, S, E >::is_valid().

template<typename T>
unsigned mln::image3d< T >::border (  )  const [inline, package]

Give the border thickness.

Definition at line 433 of file core/image/image3d.hh.

References mln::internal::image_base< T, S, E >::is_valid().

Referenced by mln::init_().

template<typename T>
T * mln::image3d< T >::buffer (  )  [inline, package]

Give a hook to the value buffer.

Definition at line 550 of file core/image/image3d.hh.

References mln::internal::image_base< T, S, E >::is_valid().

template<typename T>
const T * mln::image3d< T >::buffer (  )  const [inline, package]

Give a hook to the value buffer.

Definition at line 541 of file core/image/image3d.hh.

References mln::internal::image_base< T, S, E >::is_valid().

template<typename T>
int mln::image3d< T >::delta_index ( const dpoint3d dp  )  const [inline, package]

Fast Image method.

Give the offset corresponding to the delta-point dp.

Definition at line 559 of file core/image/image3d.hh.

References mln::internal::image_base< T, S, E >::is_valid().

template<typename T, typename S, typename E>
void mln::internal::image_base< T, S, E >::destroy (  )  [inline, inherited]

Detach data from an image (free it if nobody else hold it).

Definition at line 252 of file core/internal/image_base.hh.

template<typename T>
const box3d & mln::image3d< T >::domain (  )  const [inline, package]

Give the definition domain.

Definition at line 415 of file core/image/image3d.hh.

References mln::internal::image_base< T, S, E >::is_valid().

template<typename T>
T & mln::image3d< T >::element ( unsigned  i  )  [inline, package]

Read-write access to the image value located at index i.

Definition at line 487 of file core/image/image3d.hh.

References mln::image3d< T >::nelements().

template<typename T>
const T & mln::image3d< T >::element ( unsigned  i  )  const [inline, package]

Read-only access to the image value located at index i.

Definition at line 478 of file core/image/image3d.hh.

References mln::image3d< T >::nelements().

template<typename T, typename S, typename E>
bool mln::internal::image_base< T, S, E >::has ( const psite p  )  const [inline, inherited]

Test if p belongs to the image domain.

Definition at line 216 of file core/internal/image_base.hh.

References mln::exact(), and mln::internal::image_base< T, S, E >::is_valid().

Referenced by mln::make::attachment(), and mln::make::detachment().

template<typename T>
bool mln::image3d< T >::has ( const point3d p  )  const [inline, package]

Test if p is valid.

Definition at line 451 of file core/image/image3d.hh.

References mln::internal::image_base< T, S, E >::is_valid().

Referenced by mln::image3d< T >::at_(), and mln::image3d< T >::operator()().

template<typename T, typename S, typename E>
const util::tracked_ptr< internal::data< E > > & mln::internal::image_base< T, S, E >::hook_data_ (  )  const [inline, inherited]

Hook to the image data.

Definition at line 260 of file core/internal/image_base.hh.

template<typename T, typename S, typename E>
const void * mln::internal::image_base< T, S, E >::id_ (  )  const [inline, inherited]

Give an identifier of this image.

When several image variables designate the same image, they share the same identifier.

Definition at line 200 of file core/internal/image_base.hh.

References mln::util::tracked_ptr< T >::ptr_.

template<typename E, typename B>
template<typename P>
unsigned mln::internal::check::image_fastest_< E, B >::index_of_point ( const P &  p  )  const [inline, inherited]

Give the offset of the site p.

Parameters:
[in] p A site.
Warning:
This method is final.
Precondition:
The image has to be initialized and to own the point p.
Postcondition:
p == point_at_index(result)

Definition at line 133 of file internal/check/image_fastest.hh.

template<typename T>
void mln::image3d< T >::init_ ( const box3d b,
unsigned  bdr = border::thickness 
) [inline, package]

Initialize an empty image.

Definition at line 406 of file core/image/image3d.hh.

References mln::internal::image_base< T, S, E >::is_valid().

Referenced by mln::image3d< T >::image3d(), and mln::init_().

template<typename T, typename S, typename E>
bool mln::internal::image_base< T, S, E >::is_valid (  )  const [inline, inherited]

Test if this image has been initialized; default impl.

Reimplemented in mln::interpolated< I, F >, mln::tr_image< S, I, T >, mln::internal::image_morpher< I, T, S, E >, mln::value::stack_image< n, I >, mln::internal::image_morpher< I, I::value, I::domain_t, E >, mln::internal::image_morpher< I, I::value, I::domain_t, mln::safe_image< I > >, mln::internal::image_morpher< I, I::value, D, mln::unproject_image< I, D, F > >, mln::internal::image_morpher< I, I::value, I::domain_t, mln::extension_val< I > >, mln::internal::image_morpher< I, T, I::domain_t, E >, mln::internal::image_morpher< I, F::result, I::domain_t, mln::thru_image< I, F > >, mln::internal::image_morpher< I, I::value, I::domain_t, mln::labeled_image< I > >, mln::internal::image_morpher< I, I::value, I::domain_t, mln::interpolated< I, F > >, mln::internal::image_morpher< I, mln::algebra::vec< n, I::value >, I::domain_t, mln::value::stack_image< n, I > >, mln::internal::image_morpher< mln::image2d< V >, mln::image2d< V >::value, mln::box< P >, mln::hexa< mln::image2d< V > > >, mln::internal::image_morpher< I, F::result, I::domain_t, mln::fun_image< F, I > >, mln::internal::image_morpher< I, I::value, S, E >, mln::internal::image_morpher< I, I::value, I::domain_t, mln::extension_fun< I, F > >, mln::internal::image_morpher< I, I::value, mln::p_if< I::domain_t, F >, mln::image_if< I, F > >, mln::internal::image_morpher< I, I::value, I::domain_t, mln::extension_ima< I, J > >, mln::internal::image_morpher< I, I::value, mln::p_transformed< I::domain_t, F >, mln::transformed_image< I, F > >, mln::internal::image_morpher< I1, F::result, I1::domain_t, mln::thrubin_image< I1, I2, F > >, mln::internal::image_morpher< I, T, I::domain_t, mln::cast_image_< T, I > >, mln::internal::image_morpher< I, I::value, I::domain_t, mln::ch_piter_image< I, Fwd > >, mln::internal::image_morpher< I, I::value, mln::box< I::site >, mln::extended< I > >, mln::internal::image_morpher< I, T, I::domain_t, mln::violent_cast_image< T, I > >, mln::internal::image_morpher< I, I::value, S, mln::sub_image< I, S > >, mln::internal::image_morpher< I, I::value, S, mln::tr_image< S, I, T > >, mln::internal::image_morpher< mln::trait::ch_value< I, F::result >::ret, mln::trait::ch_value< I, F::result >::ret::value, I::domain_t, mln::lazy_image< I, F, B > >, mln::internal::image_morpher< I, I::value, mln::p_if< S, mln::fun::p2b::has< I > >, mln::sub_image_if< I, S > >, mln::internal::image_morpher< I, I::value, mln::box< P >, mln::hexa< I > >, mln::internal::image_morpher< I, I::value, I::domain_t, mln::p2p_image< I, F > >, mln::internal::image_morpher< I, I::value, mln::box< P >, mln::slice_image< I > >, mln::internal::image_morpher< I, I::value, I::domain_t, mln::decorated_image< I, D > >, and mln::internal::image_morpher< I, I::value, I::domain_t, mln::plain< I > >.

Definition at line 208 of file core/internal/image_base.hh.

Referenced by mln::util::internal::adjacency_matrix_impl_selector< V, Q >::add(), mln::util::internal::adjacency_matrix_impl_selector< V, Q >::are_adjacent(), mln::image3d< T >::bbox(), mln::image2d< T >::bbox(), mln::image1d< T >::bbox(), mln::image3d< T >::border(), mln::image2d< T >::border(), mln::image1d< T >::border(), mln::image3d< T >::buffer(), mln::image2d< T >::buffer(), mln::image1d< T >::buffer(), mln::util::internal::adjacency_matrix_impl_selector< V, Q >::clear(), mln::image3d< T >::delta_index(), mln::image2d< T >::delta_index(), mln::image1d< T >::delta_index(), mln::image3d< T >::domain(), mln::image2d< T >::domain(), mln::image1d< T >::domain(), mln::complex_image< D, G, V >::domain(), mln::world::binary_2d::impl::enlargex2(), mln::internal::image_base< T, S, E >::has(), mln::image3d< T >::has(), mln::image2d< T >::has(), mln::image1d< T >::has(), mln::internal::image_base< T, S, E >::image_base(), mln::image3d< T >::init_(), mln::image2d< T >::init_(), mln::image1d< T >::init_(), mln::flat_image< T, S >::init_(), mln::complex_image< D, G, V >::init_(), mln::morpho::line_gradient(), mln::image3d< T >::ncols(), mln::image2d< T >::ncols(), mln::image3d< T >::nelements(), mln::image2d< T >::nelements(), mln::image1d< T >::nelements(), mln::image1d< T >::ninds(), mln::image3d< T >::nrows(), mln::image2d< T >::nrows(), mln::internal::image_base< T, S, E >::nsites(), mln::image3d< T >::nslices(), mln::flat_image< T, S >::operator()(), mln::internal::image_base< T, S, E >::operator=(), mln::util::internal::adjacency_matrix_impl_selector< V, Q >::print_data_(), mln::util::internal::adjacency_matrix_impl_selector< V, Q >::remove(), mln::image2d< T >::resize_(), mln::io::txt::save(), mln::world::binary_2d::subsample(), and mln::flat_image< T, S >::value_().

template<typename T>
unsigned mln::image3d< T >::ncols (  )  const [inline, package]

Give the number of columns.

Definition at line 532 of file core/image/image3d.hh.

References mln::internal::image_base< T, S, E >::is_valid().

template<typename T>
unsigned mln::image3d< T >::nelements (  )  const [inline, package]

Give the number of cells (points including border ones).

Definition at line 442 of file core/image/image3d.hh.

References mln::internal::image_base< T, S, E >::is_valid().

Referenced by mln::image3d< T >::element(), and mln::image3d< T >::point_at_index().

template<typename T>
unsigned mln::image3d< T >::nrows (  )  const [inline, package]

Give the number of rows.

Definition at line 523 of file core/image/image3d.hh.

References mln::internal::image_base< T, S, E >::is_valid().

template<typename T, typename S, typename E>
std::size_t mln::internal::image_base< T, S, E >::nsites (  )  const [inline, inherited]

Give the number of sites of the image domain.

Definition at line 225 of file core/internal/image_base.hh.

References mln::exact(), and mln::internal::image_base< T, S, E >::is_valid().

template<typename T>
unsigned mln::image3d< T >::nslices (  )  const [inline, package]

Give the number of slices.

Definition at line 514 of file core/image/image3d.hh.

References mln::internal::image_base< T, S, E >::is_valid().

template<typename T>
T & mln::image3d< T >::operator() ( const point3d p  )  [inline, package]

Read-write access to the image value located at point p.

Definition at line 469 of file core/image/image3d.hh.

References mln::image3d< T >::has().

template<typename T>
const T & mln::image3d< T >::operator() ( const point3d p  )  const [inline, package]

Read-only access to the image value located at point p.

Definition at line 460 of file core/image/image3d.hh.

References mln::image3d< T >::has().

template<typename T>
point3d mln::image3d< T >::point_at_index ( unsigned  o  )  const [inline, package]

Give the point corresponding to the offset o.

Definition at line 570 of file core/image/image3d.hh.

References mln::image3d< T >::nelements().

template<typename T>
void mln::image3d< T >::resize_ ( unsigned  new_border  )  [inline, package]

Resize image border with new_border.

Definition at line 585 of file core/image/image3d.hh.

template<typename T, typename S, typename E>
const image_base< T, S, E >::t_eligible_values_set & mln::internal::image_base< T, S, E >::values_eligible (  )  const [inline, inherited]

Definition at line 236 of file core/internal/image_base.hh.

References mln::value::set< T >::the().

template<typename T, typename S, typename E>
const image_base< T, S, E >::t_values_space & mln::internal::image_base< T, S, E >::values_space (  )  const [inline, inherited]

Return the value space of the image.

Definition at line 244 of file core/internal/image_base.hh.

References mln::value::set< T >::the().


Member Data Documentation

template<typename T>
mln::image3d< T >::__pad0__ [package]

Super type.

Definition at line 143 of file core/image/image3d.hh.

template<typename T>
mln::image3d< T >::box3d [package]

Definition at line 143 of file core/image/image3d.hh.

template<typename T, typename S, typename E>
util::tracked_ptr< internal::data<E> > mln::internal::image_base< T, S, E >::data_ [protected, inherited]

Definition at line 163 of file core/internal/image_base.hh.

Referenced by mln::image2d< bool >::alt(), mln::image2d< T >::at_(), mln::image1d< T >::at_(), mln::image2d< T >::bbox(), mln::image1d< T >::bbox(), mln::image2d< T >::border(), mln::image1d< T >::border(), mln::image2d< T >::buffer(), mln::image1d< T >::buffer(), mln::internal::run_image_< T, P, E >::compression(), mln::internal::image_morpher< I, T, S, E >::delegatee_(), mln::image2d< T >::delta_index(), mln::image2d< T >::domain(), mln::image1d< T >::domain(), mln::flat_image< T, S >::domain(), mln::complex_image< D, G, V >::domain(), mln::image2d< T >::element(), mln::image1d< T >::element(), mln::image2d< T >::has(), mln::image1d< T >::has(), mln::internal::image_base< T, S, E >::image_base(), mln::image2d< T >::init_(), mln::image1d< T >::init_(), mln::flat_image< T, S >::init_(), mln::complex_image< D, G, V >::init_(), mln::internal::image_morpher< I, T, S, E >::is_valid(), mln::image2d< T >::ncols(), mln::image2d< T >::nelements(), mln::image1d< T >::nelements(), mln::image1d< T >::ninds(), mln::image2d< T >::nrows(), mln::image2d< T >::operator()(), mln::image1d< T >::operator()(), mln::flat_image< T, S >::operator()(), mln::complex_image< D, G, V >::operator()(), mln::internal::image_base< T, S, E >::operator=(), mln::image2d< T >::point_at_index(), mln::image1d< T >::point_at_index(), mln::image2d< T >::resize_(), mln::image1d< T >::resize_(), mln::flat_image< T, S >::value_(), and mln::complex_image< D, G, V >::values().

template<typename T>
image3d<T> mln::image3d< T >::super_ [package]

Definition at line 143 of file core/image/image3d.hh.


Generated on Sun Apr 25 01:55:35 2010 for Milena (Olena) by  doxygen 1.5.6