SLAMflex SE  0.1.0
SLAMflex provides detection and tracking of dominant planes for smartphone devices. This plane can then be used to show AR content relative to the plane orientation. The detection of plane is performed in the field of view of the smartphone camera. In subsequent frames it is tracked. The interface returns the plane position and orientation.
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
CVD::SubImage< T > Class Template Reference

#include <image.h>

Inheritance diagram for CVD::SubImage< T >:
CVD::BasicImage< T > CVD::Image< T >

Public Types

typedef SubImageIterator< T > iterator
 
typedef ConstSubImageIterator< T > const_iterator
 

Public Member Functions

 SubImage (T *data, const ImageRef &size, int stride)
 
bool in_image (const ImageRef &ir) const
 
bool in_image_with_border (const ImageRef &ir, int border) const
 
 ~SubImage ()
 The image data is not destroyed when a BasicImage is destroyed. More...
 
T & operator[] (const ImageRef &pos)
 
const T & operator[] (const ImageRef &pos) const
 
T * operator[] (int row)
 
const T * operator[] (int row) const
 
ImageRef pos (const T *ptr) const
 Given a pointer, this returns the image position as an ImageRef. More...
 
const T * data () const
 Returns the raw image data. More...
 
T * data ()
 Returns the raw image data. More...
 
iterator begin ()
 Returns an iterator referencing the first (top-left) pixel in the image. More...
 
const_iterator begin () const
 Returns a const iterator referencing the first (top-left) pixel in the image. More...
 
iterator end ()
 Returns an iterator pointing to one past the end of the image. More...
 
const_iterator end () const
 Returns a const iterator pointing to one past the end of the image. More...
 
void copy_from (const SubImage< T > &other)
 
ImageRef size () const
 What is the size of this image? More...
 
int row_stride () const
 What is the row stride of the image? More...
 
int totalsize () const
 What is the total number of elements in the image (i.e. size().x * size().y), including padding. More...
 
void zero ()
 Set all the pixels in the image to zero. This is a relatively fast operation, using memset. More...
 
void fill (const T d)
 
 SubImage (const SubImage &copyof)
 
SubImage sub_image (const ImageRef &start, const ImageRef &size)
 
const SubImage sub_image (const ImageRef &start, const ImageRef &size) const
 
SubImageref ()
 Return a reference to a SubImage. Useful for passing anonymous SubImages to functions. More...
 

Protected Member Functions

T * end_ptr ()
 Return an off-the-end pointer without ever throwing AccessOutsideImage. More...
 
const T * end_ptr () const
 Return an off-the-end pointer without ever throwing AccessOutsideImage. More...
 
 SubImage ()
 

Protected Attributes

T * my_data
 The raw image data. More...
 
ImageRef my_size
 The size of the image. More...
 
int my_stride
 The row stride. More...
 

Detailed Description

template<class T>
class CVD::SubImage< T >

A generic image class to manage a block of arbitrarily padded data as an image. Provides basic image access such as accessing a particular pixel co-ordinate.

Parameters
TThe pixel type for this image. Typically either CVD::byte or CVD::Rgb<CVD::byte> > are used, but images could be constructed of any available type.

A BasicImage does not manage its own data, but provides access to an arbitrary externally-managed block of data as though it were an image. Use the derived Image class if you want an image which also has its own data.

Definition at line 124 of file image.h.

Member Typedef Documentation

template<class T>
typedef ConstSubImageIterator<T> CVD::SubImage< T >::const_iterator

Definition at line 338 of file image.h.

template<class T>
typedef SubImageIterator<T> CVD::SubImage< T >::iterator

Definition at line 337 of file image.h.

Constructor & Destructor Documentation

template<class T>
CVD::SubImage< T >::SubImage ( T *  data,
const ImageRef size,
int  stride 
)
inline

Construct an image from a block of data.

Parameters
dataThe image data in horizontal scanline order
sizeThe size of the image
strideThe row stride (or width, including the padding)

Definition at line 255 of file image.h.

template<class T>
CVD::SubImage< T >::~SubImage ( )
inline

The image data is not destroyed when a BasicImage is destroyed.

Definition at line 277 of file image.h.

template<class T>
CVD::SubImage< T >::SubImage ( const SubImage< T > &  copyof)
inline

Copy constructor

Parameters
copyofThe image to copy

Definition at line 403 of file image.h.

template<class T>
CVD::SubImage< T >::SubImage ( )
inlineprotected

Definition at line 450 of file image.h.

Member Function Documentation

template<class T>
iterator CVD::SubImage< T >::begin ( )
inline

Returns an iterator referencing the first (top-left) pixel in the image.

Definition at line 341 of file image.h.

template<class T>
const_iterator CVD::SubImage< T >::begin ( ) const
inline

Returns a const iterator referencing the first (top-left) pixel in the image.

Definition at line 346 of file image.h.

template<class T>
void CVD::SubImage< T >::copy_from ( const SubImage< T > &  other)
inline

Definition at line 364 of file image.h.

template<class T>
const T* CVD::SubImage< T >::data ( ) const
inline

Returns the raw image data.

Definition at line 326 of file image.h.

template<class T>
T* CVD::SubImage< T >::data ( )
inline

Returns the raw image data.

Definition at line 332 of file image.h.

template<class T>
iterator CVD::SubImage< T >::end ( )
inline

Returns an iterator pointing to one past the end of the image.

Definition at line 352 of file image.h.

template<class T>
const_iterator CVD::SubImage< T >::end ( ) const
inline

Returns a const iterator pointing to one past the end of the image.

Definition at line 358 of file image.h.

template<class T>
T* CVD::SubImage< T >::end_ptr ( )
inlineprotected

Return an off-the-end pointer without ever throwing AccessOutsideImage.

Definition at line 445 of file image.h.

template<class T>
const T* CVD::SubImage< T >::end_ptr ( ) const
inlineprotected

Return an off-the-end pointer without ever throwing AccessOutsideImage.

Definition at line 448 of file image.h.

template<class T>
void CVD::SubImage< T >::fill ( const T  d)
inline

Set all the pixels in the image to a value. This is a relatively fast operation, using memfill.

Parameters
dThe value to write into the image

Definition at line 395 of file image.h.

template<class T>
bool CVD::SubImage< T >::in_image ( const ImageRef ir) const
inline

Is this pixel co-ordinate inside the image?

Parameters
irThe co-ordinate to test

Definition at line 263 of file image.h.

template<class T>
bool CVD::SubImage< T >::in_image_with_border ( const ImageRef ir,
int  border 
) const
inline

Is this pixel co-ordinate inside the image, and not too close to the edges?

Parameters
irThe co-ordinate to test
borderThe size of the border: positive points inside the image.

Definition at line 271 of file image.h.

template<class T>
T& CVD::SubImage< T >::operator[] ( const ImageRef pos)
inline

Access a pixel from the image. Bounds checking is only performed if the library is compiled with -D CVD_IMAGE_DEBUG, in which case an ImageError::AccessOutsideImage exception is thrown.

Definition at line 283 of file image.h.

template<class T>
const T& CVD::SubImage< T >::operator[] ( const ImageRef pos) const
inline

Access a pixel from the image. Bounds checking is only performed if the library is compiled with -D CVD_IMAGE_DEBUG, in which case an ImageError::AccessOutsideImage exception is thrown.

Definition at line 292 of file image.h.

template<class T>
T* CVD::SubImage< T >::operator[] ( int  row)
inline

Access pointer to pixel row. Returns the pointer to the first element of the passed row. Allows to use [y][x] on images to access a pixel. Bounds checking is only performed if the library is compiled with -D CVD_IMAGE_DEBUG, in which case an ImageError::AccessOutsideImage exception is thrown.

Definition at line 302 of file image.h.

template<class T>
const T* CVD::SubImage< T >::operator[] ( int  row) const
inline

Access pointer to pixel row. Returns the pointer to the first element of the passed row. Allows to use [y][x] on images to access a pixel. Bounds checking is only performed if the library is compiled with -D CVD_IMAGE_DEBUG, in which case an ImageError::AccessOutsideImage exception is thrown.

Definition at line 312 of file image.h.

template<class T>
ImageRef CVD::SubImage< T >::pos ( const T *  ptr) const
inline

Given a pointer, this returns the image position as an ImageRef.

Definition at line 319 of file image.h.

template<class T>
SubImage& CVD::SubImage< T >::ref ( )
inline

Return a reference to a SubImage. Useful for passing anonymous SubImages to functions.

Definition at line 434 of file image.h.

template<class T>
int CVD::SubImage< T >::row_stride ( ) const
inline

What is the row stride of the image?

Definition at line 376 of file image.h.

template<class T>
ImageRef CVD::SubImage< T >::size ( ) const
inline

What is the size of this image?

Definition at line 370 of file image.h.

template<class T>
SubImage CVD::SubImage< T >::sub_image ( const ImageRef start,
const ImageRef size 
)
inline

Return a sub image

Parameters
startTop left pixel of the sub image
sizewidth and height of the sub image

Definition at line 414 of file image.h.

template<class T>
const SubImage CVD::SubImage< T >::sub_image ( const ImageRef start,
const ImageRef size 
) const
inline

Return const a sub image

Parameters
startTop left pixel of the sub image
sizewidth and height of the sub image

Definition at line 424 of file image.h.

template<class T>
int CVD::SubImage< T >::totalsize ( ) const
inline

What is the total number of elements in the image (i.e. size().x * size().y), including padding.

Definition at line 382 of file image.h.

template<class T>
void CVD::SubImage< T >::zero ( )
inline

Set all the pixels in the image to zero. This is a relatively fast operation, using memset.

Definition at line 388 of file image.h.

Member Data Documentation

template<class T>
T* CVD::SubImage< T >::my_data
protected

The raw image data.

Definition at line 440 of file image.h.

template<class T>
ImageRef CVD::SubImage< T >::my_size
protected

The size of the image.

Definition at line 441 of file image.h.

template<class T>
int CVD::SubImage< T >::my_stride
protected

The row stride.

Definition at line 442 of file image.h.


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