mexConverts.C File Reference

#include "Matlab/mexConverts.H"
#include "Image/Image.H"
#include "Image/Pixels.H"
#include "Matlab/mexLog.H"
#include "Util/sformat.H"
#include "rutz/shared_ptr.h"
Include dependency graph for mexConverts.C:

Go to the source code of this file.

Defines

#define INSTANTIATE(T)
#define INSTANTIATE2(T)

Functions

template<class T >
Image< T > mexArray2Image (const mxArray *arrptr)
 convert a mxArray into a grayscale image
template<class T >
Image< PixRGB< T > > mexArray2RGBImage (const mxArray *arrptr)
 convert a mxArray into a RGB image
template<class T >
mxArray * Image2mexArray (const Image< T > &img)
 convert a grayscale image into a mxArray
mxArray * Image2mexArrayUint8 (const Image< byte > *img)
 convert a grayscale image into a mxArray of class 'uint8'
template<class T >
mxArray * RGBImage2mexArray (const Image< PixRGB< T > > &img)
 convert a RGB image into a mxArray of class 'double'
mxArray * RGBImage2mexArrayUint8 (const Image< PixRGB< byte > > *img)
 convert a RGB image into a mxArray of class 'uint8'
template<class T >
std::vector< T > mexArr2Vector (const mxArray *vecptr, uint num_elements)
 convert the first num_elements elements of a mxArray into a std::vector
template<class T >
std::vector< T > mexArr2Vector (const mxArray *vecptr)
 convert a mxArray vector into a std::vector
template<class T >
mxArray * Vector2mexArr (const std::vector< T > &vect, uint num_elements)
 convert the first num_elements elements of a std::vector into a mxArray
template<class T >
mxArray * Vector2mexArr (const std::vector< T > &vect)
 convert a std::vector into a mxArray vector
std::vector< Point2D< int > > mexArr2Point2DVec (const mxArray *arrptr)
 convert a 2 x N mxArray into a std::vector<Point2D<int> >
mxArray * Point2DVec2mexArr (const std::vector< Point2D< int > > &vect)
 convert a std::vector<Point2D<int> > into a 2 x N mxArray
template<class T >
mxArray * ImgVec2mexArr (const ImageSet< T > &vect)
 convert a vector of pointers to images of equal size into a 3D mxArray
template<class T >
ImageSet< T > mexArr2ImgVec (const mxArray *arrptr)
 convert a 3D mxArray into a vector of pointers to images of equal size
template<class T >
mxArray * ImageSet2cellArr (const ImageSet< T > &imset)
 convert an ImageSet into a cell array of images
template<class T >
ImageSet< T > cellArr2ImageSet (const mxArray *arrptr)
 convert a cell array of images into an ImageSet
template<class T >
mxArray * ImageSetVec2cellArr (const std::vector< ImageSet< T > > &vec)
 convert a vector of ImageSet into a 2d cell array
template<class T >
std::vector< ImageSet< T > > cellArr2ImageSetVec (const mxArray *arrptr)
 convert a 2d cell array into a vector of ImageSet
 INSTANTIATE (byte)
 INSTANTIATE (float)
template mxArray * Image2mexArray (const Image< double > &img)
 INSTANTIATE2 (byte)
 INSTANTIATE2 (float)
 INSTANTIATE2 (int)
 INSTANTIATE2 (double)

Detailed Description

conversions from and to MEX arrays

Definition in file mexConverts.C.


Define Documentation

#define INSTANTIATE (  ) 
Value:
template Image<T> mexArray2Image(const mxArray* arrptr); \
template Image< PixRGB<T> > mexArray2RGBImage(const mxArray* arrptr); \
template mxArray* Image2mexArray(const Image<T>& img); \
template mxArray* RGBImage2mexArray(const Image< PixRGB<T> >& img); \
template mxArray* ImgVec2mexArr(const ImageSet<T>& vect); \
template ImageSet<T> mexArr2ImgVec(const mxArray* arrptr); \
template mxArray* ImageSet2cellArr(const ImageSet<T>& imset); \
template ImageSet<T> cellArr2ImageSet(const mxArray* arrptr); \
template mxArray* ImageSetVec2cellArr(const std::vector< ImageSet<T> >& vec); \
template std::vector< ImageSet<T> > cellArr2ImageSetVec(const mxArray* arrptr); \
template bool MexReturn::store(int num, const Image<T>& val); \
template bool MexReturn::store(int num, const Image< PixRGB<T> >& val); \

Definition at line 627 of file mexConverts.C.

#define INSTANTIATE2 (  ) 
Value:
template std::vector<T> mexArr2Vector(const mxArray* vecptr, uint num_elements); \
template std::vector<T> mexArr2Vector(const mxArray* vecptr); \
template mxArray* Vector2mexArr(const std::vector<T>& vect, uint num_elements); \
template mxArray* Vector2mexArr(const std::vector<T>& vect); \
template bool MexReturn::store(int num, const std::vector<T>& val); \

Definition at line 648 of file mexConverts.C.


Function Documentation

template<class T >
ImageSet<T> cellArr2ImageSet ( const mxArray *  arrptr  )  [inline]

convert a cell array of images into an ImageSet

Definition at line 496 of file mexConverts.C.

References mexFatal().

template<class T >
std::vector< ImageSet<T> > cellArr2ImageSetVec ( const mxArray *  arrptr  )  [inline]

convert a 2d cell array into a vector of ImageSet

Definition at line 530 of file mexConverts.C.

References mexFatal().

template<class T >
mxArray* Image2mexArray ( const Image< T > &  img  )  [inline]

convert a grayscale image into a mxArray

Definition at line 172 of file mexConverts.C.

References Image< T >::begin(), Image< T >::getHeight(), Image< T >::getSize(), Image< T >::getWidth(), and height.

Referenced by ImageSet2cellArr(), ImageSetVec2cellArr(), mexFunction(), and MexReturn::store().

mxArray* Image2mexArrayUint8 ( const Image< byte > *  img  ) 

convert a grayscale image into a mxArray of class 'uint8'

We take a pointer rather than a reference to ensure that there are no implicit Image type conversions in calls to this function -- we want exactly an Image<byte>, and not an Image<float> or some other pixel type.

Definition at line 194 of file mexConverts.C.

References Image< T >::begin(), Image< T >::getHeight(), Image< T >::getWidth(), and height.

Referenced by mexFunction().

template<class T >
mxArray* ImageSet2cellArr ( const ImageSet< T > &  imset  )  [inline]

convert an ImageSet into a cell array of images

Definition at line 483 of file mexConverts.C.

References Image2mexArray(), and ImageSet< T >::size().

template<class T >
mxArray* ImageSetVec2cellArr ( const std::vector< ImageSet< T > > &  vec  )  [inline]

convert a vector of ImageSet into a 2d cell array

Definition at line 511 of file mexConverts.C.

References Image2mexArray().

template<class T >
mxArray* ImgVec2mexArr ( const ImageSet< T > &  vect  )  [inline]

convert a vector of pointers to images of equal size into a 3D mxArray

Definition at line 364 of file mexConverts.C.

References ImageSet< T >::isEmpty(), mexFatal(), and ImageSet< T >::size().

template<class T >
ImageSet<T> mexArr2ImgVec ( const mxArray *  arrptr  )  [inline]

convert a 3D mxArray into a vector of pointers to images of equal size

Definition at line 400 of file mexConverts.C.

References height, mexFatal(), NO_INIT, and sformat().

std::vector<Point2D<int> > mexArr2Point2DVec ( const mxArray *  arrptr  ) 

convert a 2 x N mxArray into a std::vector<Point2D<int> >

Definition at line 327 of file mexConverts.C.

References mexFatal().

template<class T >
std::vector<T> mexArr2Vector ( const mxArray *  vecptr  )  [inline]

convert a mxArray vector into a std::vector

Definition at line 297 of file mexConverts.C.

template<class T >
std::vector<T> mexArr2Vector ( const mxArray *  vecptr,
uint  num_elements 
) [inline]

convert the first num_elements elements of a mxArray into a std::vector

Definition at line 280 of file mexConverts.C.

template<class T >
Image<T> mexArray2Image ( const mxArray *  arrptr  )  [inline]

convert a mxArray into a grayscale image

Definition at line 49 of file mexConverts.C.

References Image< T >::beginw(), height, mexFatal(), NO_INIT, and sformat().

template<class T >
Image< PixRGB<T> > mexArray2RGBImage ( const mxArray *  arrptr  )  [inline]

convert a mxArray into a RGB image

Definition at line 104 of file mexConverts.C.

References Image< T >::beginw(), height, mexFatal(), NO_INIT, and sformat().

mxArray* Point2DVec2mexArr ( const std::vector< Point2D< int > > &  vect  ) 

convert a std::vector<Point2D<int> > into a 2 x N mxArray

Definition at line 349 of file mexConverts.C.

template<class T >
mxArray* RGBImage2mexArray ( const Image< PixRGB< T > > &  img  )  [inline]

convert a RGB image into a mxArray of class 'double'

Definition at line 217 of file mexConverts.C.

Referenced by mexFunction(), and MexReturn::store().

mxArray* RGBImage2mexArrayUint8 ( const Image< PixRGB< byte > > *  img  ) 

convert a RGB image into a mxArray of class 'uint8'

We take a pointer rather than a reference to ensure that there are no implicit Image type conversions in calls to this function -- we want exactly an Image<PixRGB<byte>>, and not an Image<PixRGB<float>> or some other pixel type.

Definition at line 246 of file mexConverts.C.

Referenced by mexFunction().

template<class T >
mxArray* Vector2mexArr ( const std::vector< T > &  vect  )  [inline]

convert a std::vector into a mxArray vector

Definition at line 321 of file mexConverts.C.

References Vector2mexArr().

template<class T >
mxArray* Vector2mexArr ( const std::vector< T > &  vect,
uint  num_elements 
) [inline]

convert the first num_elements elements of a std::vector into a mxArray

Definition at line 304 of file mexConverts.C.

References mexFatal(), and sformat().

Referenced by MexReturn::store(), and Vector2mexArr().

Generated on Sun May 8 08:42:42 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3