#include <Swissranger.h>
Public Member Functions | |
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 | AcquireImages (cv::Mat *rangeImage=0, cv::Mat *grayImage=0, cv::Mat *cartesianImage=0, bool getLatestFrame=true, bool undistort=true, ipa_CameraSensors::t_ToFGrayImageType grayImageType=ipa_CameraSensors::INTENSITY_32F1) |
unsigned long | Close () |
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 | SetProperty (t_cameraProperty *cameraProperty) |
unsigned long | SetPropertyDefaults () |
Swissranger () | |
~Swissranger () | |
Private Member Functions | |
unsigned long | GetCalibratedXYMatlab (int u, int v, float z, float &x, float &y) |
unsigned long | GetCalibratedXYSwissranger (int u, int v, int width, float &x, float &y) |
unsigned long | GetCalibratedZMatlab (int u, int v, float zRaw, float &zCalibrated) |
unsigned long | GetCalibratedZSwissranger (int u, int v, int width, float &zCalibrated) |
unsigned long | LoadParameters (const char *filename, int cameraIndex) |
unsigned long | SetParameters () |
Private Attributes | |
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 |
True, when m_CoeffsAx have been initialized. | |
ImgEntry * | m_DataBuffer |
Image array. | |
bool | m_GrayImageAcquireCalled |
Is false, when acquiring gray image has not been called, yet. | |
int | m_NumOfImages |
Number of images the siwssranger returns (i.e. an intensity and a range image) | |
SRCAM | m_SRCam |
Handle to USB SR3000 camera. | |
float | m_X [SWISSRANGER_COLUMNS *SWISSRANGER_ROWS] |
float | m_Y [SWISSRANGER_COLUMNS *SWISSRANGER_ROWS] |
float | m_Z [SWISSRANGER_COLUMNS *SWISSRANGER_ROWS] |
Interface class to SwissRanger camera SR-3000. Platform independent interface to SwissRanger camera SR-3000. Implementation depends on libusbSR library.
Definition at line 73 of file Swissranger.h.
Definition at line 36 of file Swissranger.cpp.
Definition at line 49 of file Swissranger.cpp.
unsigned long Swissranger::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.
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 |
***********************************************************************
***********************************************************************
***********************************************************************
***********************************************************************
***********************************************************************
***********************************************************************
***********************************************************************
***********************************************************************
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 674 of file Swissranger.cpp.
unsigned long Swissranger::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.
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 |
IPA_Exception | Throws an exception, if camera access failed |
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 625 of file Swissranger.cpp.
unsigned long Swissranger::Close | ( | ) | [virtual] |
Close camera device.
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 300 of file Swissranger.cpp.
unsigned long Swissranger::GetCalibratedXYMatlab | ( | int | u, |
int | v, | ||
float | z, | ||
float & | x, | ||
float & | y | ||
) | [private] |
Definition at line 961 of file Swissranger.cpp.
unsigned long Swissranger::GetCalibratedXYSwissranger | ( | int | u, |
int | v, | ||
int | width, | ||
float & | x, | ||
float & | y | ||
) | [private] |
Definition at line 1000 of file Swissranger.cpp.
unsigned long Swissranger::GetCalibratedZMatlab | ( | int | u, |
int | v, | ||
float | zRaw, | ||
float & | zCalibrated | ||
) | [private] |
Definition at line 940 of file Swissranger.cpp.
unsigned long Swissranger::GetCalibratedZSwissranger | ( | int | u, |
int | v, | ||
int | width, | ||
float & | zCalibrated | ||
) | [private] |
Definition at line 953 of file Swissranger.cpp.
unsigned long Swissranger::GetProperty | ( | t_cameraProperty * | cameraProperty | ) | [virtual] |
Function to set properties of the range imaging sensor.
propertyID | The ID of the property. |
cameraProperty | The value of the property. |
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 552 of file Swissranger.cpp.
unsigned long Swissranger::Init | ( | std::string | directory, |
int | cameraIndex = 0 |
||
) | [virtual] |
Initializes Swissranger.
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. |
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 84 of file Swissranger.cpp.
bool ipa_CameraSensors::Swissranger::isInitialized | ( | ) | [inline, virtual] |
Determines if range imaging camera has successfully been initialized.
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 102 of file Swissranger.h.
bool ipa_CameraSensors::Swissranger::isOpen | ( | ) | [inline, virtual] |
Determines if range imaging camera camera has successfully been opened.
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 103 of file Swissranger.h.
unsigned long Swissranger::LoadParameters | ( | const char * | filename, |
int | cameraIndex | ||
) | [private, virtual] |
Load general Swissranger parameters and previously determined calibration parameters.
filename | Swissranger parameter path and file name. |
cameraIndex | The index of the camera within the configuration file i.e. SR_CAM_0 or SR_CAM_1 |
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 1130 of file Swissranger.cpp.
unsigned long Swissranger::Open | ( | ) | [virtual] |
Opens the camera device. All camera specific parameters for opening the camera should have been set within the Init()
function.
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 230 of file Swissranger.cpp.
unsigned long Swissranger::SaveParameters | ( | const char * | filename | ) | [virtual] |
Save camera parameters. Saves the on-line set parameters for the range imaging camera to a file.
filename | Configuration file name. |
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 935 of file Swissranger.cpp.
unsigned long Swissranger::SetParameters | ( | ) | [private] |
Parses the data extracted by LoadParameters
and calls the corresponding SetProperty
functions.
Definition at line 1010 of file Swissranger.cpp.
unsigned long Swissranger::SetProperty | ( | t_cameraProperty * | cameraProperty | ) | [virtual] |
Function to set properties of the range imaging sensor.
propertyID | The ID of the property. |
cameraProperty | The value of the property. |
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 321 of file Swissranger.cpp.
unsigned long Swissranger::SetPropertyDefaults | ( | ) | [virtual] |
Function to set property defaults of the range imaging sensor.
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 546 of file Swissranger.cpp.
cv::Mat ipa_CameraSensors::Swissranger::m_CoeffsA0 [private] |
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 143 of file Swissranger.h.
cv::Mat ipa_CameraSensors::Swissranger::m_CoeffsA1 [private] |
a1 z-calibration parameters. One matrix entry corresponds to one pixel
Definition at line 144 of file Swissranger.h.
cv::Mat ipa_CameraSensors::Swissranger::m_CoeffsA2 [private] |
a2 z-calibration parameters. One matrix entry corresponds to one pixel
Definition at line 145 of file Swissranger.h.
cv::Mat ipa_CameraSensors::Swissranger::m_CoeffsA3 [private] |
a3 z-calibration parameters. One matrix entry corresponds to one pixel
Definition at line 146 of file Swissranger.h.
cv::Mat ipa_CameraSensors::Swissranger::m_CoeffsA4 [private] |
a4 z-calibration parameters. One matrix entry corresponds to one pixel
Definition at line 147 of file Swissranger.h.
cv::Mat ipa_CameraSensors::Swissranger::m_CoeffsA5 [private] |
a5 z-calibration parameters. One matrix entry corresponds to one pixel
Definition at line 148 of file Swissranger.h.
cv::Mat ipa_CameraSensors::Swissranger::m_CoeffsA6 [private] |
a6 z-calibration parameters. One matrix entry corresponds to one pixel
Definition at line 149 of file Swissranger.h.
bool ipa_CameraSensors::Swissranger::m_CoeffsInitialized [private] |
True, when m_CoeffsAx have been initialized.
Definition at line 136 of file Swissranger.h.
ImgEntry* ipa_CameraSensors::Swissranger::m_DataBuffer [private] |
Image array.
Definition at line 129 of file Swissranger.h.
bool ipa_CameraSensors::Swissranger::m_GrayImageAcquireCalled [private] |
Is false, when acquiring gray image has not been called, yet.
Definition at line 137 of file Swissranger.h.
int ipa_CameraSensors::Swissranger::m_NumOfImages [private] |
Number of images the siwssranger returns (i.e. an intensity and a range image)
Definition at line 128 of file Swissranger.h.
SRCAM ipa_CameraSensors::Swissranger::m_SRCam [private] |
Handle to USB SR3000 camera.
Definition at line 127 of file Swissranger.h.
float ipa_CameraSensors::Swissranger::m_X[SWISSRANGER_COLUMNS *SWISSRANGER_ROWS] [private] |
Definition at line 132 of file Swissranger.h.
float ipa_CameraSensors::Swissranger::m_Y[SWISSRANGER_COLUMNS *SWISSRANGER_ROWS] [private] |
Definition at line 133 of file Swissranger.h.
float ipa_CameraSensors::Swissranger::m_Z[SWISSRANGER_COLUMNS *SWISSRANGER_ROWS] [private] |
Definition at line 134 of file Swissranger.h.