ipa_CameraSensors::VirtualRangeCam Class Reference

#include <VirtualRangeCam.h>

Inheritance diagram for ipa_CameraSensors::VirtualRangeCam:
Inheritance graph
[legend]

List of all members.

Public Member Functions

unsigned long AcquireImages (cv::Mat *rangeImage=0, cv::Mat *intensityImage=0, cv::Mat *cartesianImage=0, bool getLatestFrame=true, bool undistort=true, ipa_CameraSensors::t_ToFGrayImageType grayImageType=ipa_CameraSensors::INTENSITY_32F1)
unsigned long AcquireImages (int widthStepRange, int widthStepGray, int widthStepCartesian, char *rangeImage=NULL, char *intensityImage=NULL, char *cartesianImage=NULL, bool getLatestFrame=true, bool undistort=true, ipa_CameraSensors::t_ToFGrayImageType grayImageType=ipa_CameraSensors::INTENSITY_32F1)
unsigned long Close ()
unsigned long GetCalibratedUV (double x, double y, double z, double &u, double &v)
int GetNumberOfImages ()
unsigned long GetProperty (t_cameraProperty *cameraProperty)
unsigned long Init (std::string directory, int cameraIndex=0)
bool isInitialized ()
bool isOpen ()
unsigned long Open ()
unsigned long SaveParameters (const char *filename)
unsigned long SetPathToImages (std::string path)
unsigned long SetProperty (t_cameraProperty *cameraProperty)
unsigned long SetPropertyDefaults ()
 VirtualRangeCam ()
 ~VirtualRangeCam ()

Private Member Functions

void FindSourceImageFormat (std::map< std::string, int >::iterator &itCounter, std::string &ext)
unsigned long GetCalibratedXYMatlab (int u, int v, float z, float &x, float &y)
unsigned long GetCalibratedZMatlab (int u, int v, float zRaw, float &zCalibrated)
unsigned long LoadParameters (const char *filename, int cameraIndex)
void UpdateImageDimensionsOnFirstImage (std::string filename, std::string ext=".xml")

Private Attributes

std::vector< std::string > m_AmplitudeImageFileNames
std::string m_CameraDataDirectory
 Directory where the image data resides.
int m_CameraIndex
 Index of the specified camera. Important, when several cameras of the same type are present.
cv::Mat m_CoeffsA0
 a0 z-calibration parameters. One matrix entry corresponds to one pixel
cv::Mat m_CoeffsA1
 a1 z-calibration parameters. One matrix entry corresponds to one pixel
cv::Mat m_CoeffsA2
 a2 z-calibration parameters. One matrix entry corresponds to one pixel
cv::Mat m_CoeffsA3
 a3 z-calibration parameters. One matrix entry corresponds to one pixel
cv::Mat m_CoeffsA4
 a4 z-calibration parameters. One matrix entry corresponds to one pixel
cv::Mat m_CoeffsA5
 a5 z-calibration parameters. One matrix entry corresponds to one pixel
cv::Mat m_CoeffsA6
 a6 z-calibration parameters. One matrix entry corresponds to one pixel
bool m_CoeffsInitialized
std::vector< std::string > m_CoordinateImageFileNames
int m_ImageHeight
 Image height.
int m_ImageWidth
 Image width.
std::vector< std::string > m_IntensityImageFileNames
double m_k1
double m_k2
double m_p1
double m_p2
 Distortion parameters.
std::vector< std::string > m_RangeImageFileNames

Detailed Description

Interface class to virtual range camera like Swissranger 3000/4000. The class offers an interface to a virtual range camera, that is equal to the interface of a real range camera. However, pictures are read from a directory instead of the camera.

Definition at line 95 of file VirtualRangeCam.h.


Constructor & Destructor Documentation

VirtualRangeCam::VirtualRangeCam (  ) 

Definition at line 67 of file VirtualRangeCam.cpp.

VirtualRangeCam::~VirtualRangeCam (  ) 

Definition at line 78 of file VirtualRangeCam.cpp.


Member Function Documentation

unsigned long VirtualRangeCam::AcquireImages ( cv::Mat *  rangeImage = 0,
cv::Mat *  intensityImage = 0,
cv::Mat *  cartesianImage = 0,
bool  getLatestFrame = true,
bool  undistort = true,
ipa_CameraSensors::t_ToFGrayImageType  grayImageType = ipa_CameraSensors::INTENSITY_32F1 
) [virtual]

Acquires an image from SwissRanger camera. Data is read from the camera and put into a corresponding OpenCV cv::Mat data type. The cv::Mat are allocated on demand.

Parameters:
rangeImage OpenCV conform image with depth information.
grayImage OpenCV conform image with grayscale information.
cartesianImage OpenCV conform image with cartesian (x,y,z) information in meters.
getLatestFrame Set true to acquire a new image on calling instead of returning the one acquired last time
useCalibratedZ Calibrate z values
grayImageType Either gray image data is filled with amplitude image or intensity image
Exceptions:
IPA_Exception Throws an exception, if camera access failed

Implements ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 523 of file VirtualRangeCam.cpp.

unsigned long VirtualRangeCam::AcquireImages ( int  widthStepRange,
int  widthStepGray,
int  widthStepCartesian,
char *  rangeImage = NULL,
char *  grayImage = NULL,
char *  cartesianImage = NULL,
bool  getLatestFrame = true,
bool  undistort = true,
ipa_CameraSensors::t_ToFGrayImageType  grayImageType = ipa_CameraSensors::INTENSITY_32F1 
) [virtual]

Acquires an image from SwissRanger. This implementation is designated for people that do not use openCV image type.

Parameters:
widthStepRange The stride of a row from the range image.
widthStepGray The stride of a row from the grayscale intensity image.
widthStepCartesian The stride of a row from the cartesian image.
rangeImage character array with depth information.
grayImage character array with intensity (grayscale) information.
cartesianImage character array with cartesian (x,y,z) information in meters.
getLatestFrame Set true to acquire a new image on calling instead of returning the one acquired last time
useCalibratedZ Calibrate z values
grayImageType Either gray image data is filled with amplitude image or intensity image
Returns:
Return code.

***********************************************************************

***********************************************************************

***********************************************************************

***********************************************************************

***********************************************************************

***********************************************************************

Implements ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 566 of file VirtualRangeCam.cpp.

unsigned long VirtualRangeCam::Close (  )  [virtual]

Close camera device.

Returns:
Return code.

Implements ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 458 of file VirtualRangeCam.cpp.

void VirtualRangeCam::FindSourceImageFormat ( std::map< std::string, int >::iterator &  itCounter,
std::string &  ext 
) [inline, private]

Compares the value of the iterator with ext in order to find the extension which has instances in the directory. Throws an error if different file formats are present at the same time.

Parameters:
itCounter Iterator containing a file extension and a number of instances.
ext Is empty if no extension was found before, otherwise it contains the found extension.

Definition at line 254 of file VirtualRangeCam.cpp.

unsigned long VirtualRangeCam::GetCalibratedUV ( double  x,
double  y,
double  z,
double &  u,
double &  v 
)

Definition at line 951 of file VirtualRangeCam.cpp.

unsigned long VirtualRangeCam::GetCalibratedXYMatlab ( int  u,
int  v,
float  z,
float &  x,
float &  y 
) [private]

Definition at line 912 of file VirtualRangeCam.cpp.

unsigned long VirtualRangeCam::GetCalibratedZMatlab ( int  u,
int  v,
float  zRaw,
float &  zCalibrated 
) [private]

Definition at line 900 of file VirtualRangeCam.cpp.

int VirtualRangeCam::GetNumberOfImages (  )  [virtual]

Returns the number of images in the directory

Returns:
The number of images in the directory

Reimplemented from ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 866 of file VirtualRangeCam.cpp.

unsigned long VirtualRangeCam::GetProperty ( t_cameraProperty *  cameraProperty  )  [virtual]

Function to set properties of the range imaging sensor.

Parameters:
propertyID The ID of the property.
cameraProperty The value of the property.
Returns:
Return code.

Implements ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 494 of file VirtualRangeCam.cpp.

unsigned long VirtualRangeCam::Init ( std::string  directory,
int  cameraIndex = 0 
) [virtual]

Initializes Swissranger.

Parameters:
directory Path to the directory of the range imaging sensor parameter file.
cameraIndex It is possible to have several cameras of the same type on the system. One may use the camera index to apply different configuration files to each of them.
Returns:
Return code.

Implements ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 86 of file VirtualRangeCam.cpp.

bool ipa_CameraSensors::VirtualRangeCam::isInitialized (  )  [inline, virtual]

Determines if range imaging camera has successfully been initialized.

Returns:
True if camera is initialized, false otherwise.

Implements ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 126 of file VirtualRangeCam.h.

bool ipa_CameraSensors::VirtualRangeCam::isOpen (  )  [inline, virtual]

Determines if range imaging camera camera has successfully been opened.

Returns:
True if camera is open, false otherwise.

Implements ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 127 of file VirtualRangeCam.h.

unsigned long VirtualRangeCam::LoadParameters ( const char *  filename,
int  cameraIndex 
) [private, virtual]

Load general range camera parameters .

Parameters:
filename Configuration file-path and file-name.
cameraIndex The index of the camera within the configuration file i.e. SR_CAM_0 or SR_CAM_1
Returns:
Return code

Implements ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 996 of file VirtualRangeCam.cpp.

unsigned long VirtualRangeCam::Open (  )  [virtual]

Opens the camera device. All camera specific parameters for opening the camera should have been set within the Init() function.

Returns:
Return code.

Implements ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 269 of file VirtualRangeCam.cpp.

unsigned long VirtualRangeCam::SaveParameters ( const char *  filename  )  [virtual]

Save camera parameters. Saves the on-line set parameters for the range imaging camera to a file.

Parameters:
filename Configuration file name.
Returns:
Return code.

Implements ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 892 of file VirtualRangeCam.cpp.

unsigned long VirtualRangeCam::SetPathToImages ( std::string  path  )  [virtual]

Function specific to virtual camera. Resets the image directory read from the configuration file.

Parameters:
path The camera path
Returns:
Return code

Reimplemented from ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 886 of file VirtualRangeCam.cpp.

unsigned long VirtualRangeCam::SetProperty ( t_cameraProperty *  cameraProperty  )  [virtual]

Function to set properties of the range imaging sensor.

Parameters:
propertyID The ID of the property.
cameraProperty The value of the property.
Returns:
Return code.

Implements ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 471 of file VirtualRangeCam.cpp.

unsigned long VirtualRangeCam::SetPropertyDefaults (  )  [virtual]

Function to set property defaults of the range imaging sensor.

Returns:
Return code.

Implements ipa_CameraSensors::AbstractRangeImagingSensor.

Definition at line 488 of file VirtualRangeCam.cpp.

void VirtualRangeCam::UpdateImageDimensionsOnFirstImage ( std::string  filename,
std::string  ext = ".xml" 
) [inline, private]

Reads out the image width and height from the first image found in the filesystem.

Parameters:
filename The name of that image.

Definition at line 232 of file VirtualRangeCam.cpp.


Member Data Documentation

Definition at line 181 of file VirtualRangeCam.h.

Directory where the image data resides.

Definition at line 178 of file VirtualRangeCam.h.

Index of the specified camera. Important, when several cameras of the same type are present.

Definition at line 179 of file VirtualRangeCam.h.

a0 z-calibration parameters. One matrix entry corresponds to one pixel

Given a 32 bit swissranger depth value, the real depth value in meteres is given by: z(u,v)=a0(u,v)+a1(u,v)*d(u,v)+a2(u,v)*d(u,v)^2 +a3(u,v)*d(u,v)^3+a4(u,v)*d(u,v)^4+a5(u,v)*d(u,v)^5 +a6(u,v)*d(u,v)^6;

Definition at line 170 of file VirtualRangeCam.h.

a1 z-calibration parameters. One matrix entry corresponds to one pixel

Definition at line 171 of file VirtualRangeCam.h.

a2 z-calibration parameters. One matrix entry corresponds to one pixel

Definition at line 172 of file VirtualRangeCam.h.

a3 z-calibration parameters. One matrix entry corresponds to one pixel

Definition at line 173 of file VirtualRangeCam.h.

a4 z-calibration parameters. One matrix entry corresponds to one pixel

Definition at line 174 of file VirtualRangeCam.h.

a5 z-calibration parameters. One matrix entry corresponds to one pixel

Definition at line 175 of file VirtualRangeCam.h.

a6 z-calibration parameters. One matrix entry corresponds to one pixel

Definition at line 176 of file VirtualRangeCam.h.

Definition at line 164 of file VirtualRangeCam.h.

Definition at line 184 of file VirtualRangeCam.h.

Image height.

Definition at line 187 of file VirtualRangeCam.h.

Image width.

Definition at line 186 of file VirtualRangeCam.h.

Definition at line 182 of file VirtualRangeCam.h.

Definition at line 189 of file VirtualRangeCam.h.

Definition at line 189 of file VirtualRangeCam.h.

Definition at line 189 of file VirtualRangeCam.h.

Distortion parameters.

Definition at line 189 of file VirtualRangeCam.h.

Definition at line 183 of file VirtualRangeCam.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines


cob_camera_sensors
Author(s): Jan Fischer
autogenerated on Fri Jan 11 10:01:13 2013