Hugintrunk  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Public Attributes | List of all members
vigra_ext::SplitVector2Accessor< Iter1, Acc1, Iter2, Acc2 > Class Template Reference

define a write only accessor for a virtual Image<TinyVector<Acc1::value_type>, 2> image, which actually consists of two Images. More...

#include <FunctorAccessor.h>

Public Types

typedef vigra::TinyVector
< typename Acc1::value_type, 2 > 
value_type
 the vector's value_type More...
 
typedef value_type::value_type component_type
 

Public Member Functions

 SplitVector2Accessor (Iter1 i1, Acc1 a1, Iter2 i2, Acc2 a2)
 Construct from two image iterators and associated accessors. More...
 
template<class V , class ITERATOR >
void setComponent (V const &value, ITERATOR const &i, int idx) const
 scalar & scalar image More...
 
template<class ITERATOR >
unsigned int size (ITERATOR const &i) const
 return the size (Number of Bands) More...
 

Public Attributes

Iter1 i1_
 
Acc1 a1_
 
Iter2 i2_
 
Acc2 a2_
 

Detailed Description

template<class Iter1, class Acc1, class Iter2, class Acc2>
class vigra_ext::SplitVector2Accessor< Iter1, Acc1, Iter2, Acc2 >

define a write only accessor for a virtual Image<TinyVector<Acc1::value_type>, 2> image, which actually consists of two Images.

Useful to split an image into gray and alpha images while loading, like it is shown in the following example:

vigra::ImageImportInfo info(argv[1]);
if(info.numBands() == 2 && info.numExtraBands() == 1)
{
vigra::BImage image;
vigra::BImage mask;
image.resize(info.width(), info.height());
mask.resize(info.width(), info.height());
// construct special reading accessor, to split
// the image into two images while reading
BImage::Accessor,
BImage::Iterator,
BImage::Accessor>
splitA(image.upperLeft(), image.accessor(),
mask.upperLeft(), mask.accessor());
importImage(info, Diff2D(), splitA );

Definition at line 146 of file FunctorAccessor.h.

Member Typedef Documentation

template<class Iter1 , class Acc1 , class Iter2 , class Acc2 >
typedef value_type::value_type vigra_ext::SplitVector2Accessor< Iter1, Acc1, Iter2, Acc2 >::component_type

Definition at line 152 of file FunctorAccessor.h.

template<class Iter1 , class Acc1 , class Iter2 , class Acc2 >
typedef vigra::TinyVector<typename Acc1::value_type, 2> vigra_ext::SplitVector2Accessor< Iter1, Acc1, Iter2, Acc2 >::value_type

the vector's value_type

Definition at line 151 of file FunctorAccessor.h.

Constructor & Destructor Documentation

template<class Iter1 , class Acc1 , class Iter2 , class Acc2 >
vigra_ext::SplitVector2Accessor< Iter1, Acc1, Iter2, Acc2 >::SplitVector2Accessor ( Iter1  i1,
Acc1  a1,
Iter2  i2,
Acc2  a2 
)
inline

Construct from two image iterators and associated accessors.

Definition at line 156 of file FunctorAccessor.h.

Member Function Documentation

template<class Iter1 , class Acc1 , class Iter2 , class Acc2 >
template<class V , class ITERATOR >
void vigra_ext::SplitVector2Accessor< Iter1, Acc1, Iter2, Acc2 >::setComponent ( V const &  value,
ITERATOR const &  i,
int  idx 
) const
inline
template<class Iter1 , class Acc1 , class Iter2 , class Acc2 >
template<class ITERATOR >
unsigned int vigra_ext::SplitVector2Accessor< Iter1, Acc1, Iter2, Acc2 >::size ( ITERATOR const &  i) const
inline

return the size (Number of Bands)

Definition at line 178 of file FunctorAccessor.h.

Member Data Documentation

template<class Iter1 , class Acc1 , class Iter2 , class Acc2 >
Acc1 vigra_ext::SplitVector2Accessor< Iter1, Acc1, Iter2, Acc2 >::a1_
template<class Iter1 , class Acc1 , class Iter2 , class Acc2 >
Acc2 vigra_ext::SplitVector2Accessor< Iter1, Acc1, Iter2, Acc2 >::a2_
template<class Iter1 , class Acc1 , class Iter2 , class Acc2 >
Iter1 vigra_ext::SplitVector2Accessor< Iter1, Acc1, Iter2, Acc2 >::i1_
template<class Iter1 , class Acc1 , class Iter2 , class Acc2 >
Iter2 vigra_ext::SplitVector2Accessor< Iter1, Acc1, Iter2, Acc2 >::i2_

The documentation for this class was generated from the following file: