#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 () | |
Public Member Functions inherited from ipa_CameraSensors::AbstractRangeImagingSensor | |
virtual t_CalibrationMethod | GetCalibrationMethod () |
virtual t_cameraType | GetCameraType () |
virtual int | GetNumberOfImages () |
virtual unsigned long | SetIntrinsics (cv::Mat &intrinsicMatrix, cv::Mat &undistortMapX, cv::Mat &undistortMapY) |
virtual unsigned long | SetPathToImages (std::string path) |
virtual | ~AbstractRangeImagingSensor () |
Destructor. More... | |
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 More... | |
cv::Mat | m_CoeffsA1 |
a1 z-calibration parameters. One matrix entry corresponds to one pixel More... | |
cv::Mat | m_CoeffsA2 |
a2 z-calibration parameters. One matrix entry corresponds to one pixel More... | |
cv::Mat | m_CoeffsA3 |
a3 z-calibration parameters. One matrix entry corresponds to one pixel More... | |
cv::Mat | m_CoeffsA4 |
a4 z-calibration parameters. One matrix entry corresponds to one pixel More... | |
cv::Mat | m_CoeffsA5 |
a5 z-calibration parameters. One matrix entry corresponds to one pixel More... | |
cv::Mat | m_CoeffsA6 |
a6 z-calibration parameters. One matrix entry corresponds to one pixel More... | |
bool | m_CoeffsInitialized |
True, when m_CoeffsAx have been initialized. More... | |
ImgEntry * | m_DataBuffer |
Image array. More... | |
bool | m_GrayImageAcquireCalled |
Is false, when acquiring gray image has not been called, yet. More... | |
int | m_NumOfImages |
Number of images the siwssranger returns (i.e. an intensity and a range image) More... | |
SRCAM | m_SRCam |
Handle to USB SR3000 camera. More... | |
float | m_X [SWISSRANGER_COLUMNS *SWISSRANGER_ROWS] |
float | m_Y [SWISSRANGER_COLUMNS *SWISSRANGER_ROWS] |
float | m_Z [SWISSRANGER_COLUMNS *SWISSRANGER_ROWS] |
Additional Inherited Members | |
Public Attributes inherited from ipa_CameraSensors::AbstractRangeImagingSensor | |
unsigned int | m_ImageCounter |
Holds the index of the image that is extracted during the next call of AcquireImages More... | |
Protected Attributes inherited from ipa_CameraSensors::AbstractRangeImagingSensor | |
unsigned int | m_BufferSize |
Number of images, the camera buffers internally. More... | |
t_CalibrationMethod | m_CalibrationMethod |
Calibration method MATLAB, MATLAB_NO_Z or SWISSRANGER. More... | |
t_cameraType | m_CameraType |
Camera Type. More... | |
bool | m_initialized |
True, when the camera has sucessfully been initialized. More... | |
cv::Mat | m_intrinsicMatrix |
Intrinsic parameters [fx 0 cx; 0 fy cy; 0 0 1]. More... | |
bool | m_open |
True, when the camera has sucessfully been opend. More... | |
t_RangeCameraParameters | m_RangeCameraParameters |
Storage for xml configuration file parmeters. More... | |
cv::Mat | m_undistortMapX |
The output array of x coordinates for the undistortion map. More... | |
cv::Mat | m_undistortMapY |
The output array of Y coordinates for the undistortion map. More... | |
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.
Swissranger::Swissranger | ( | ) |
Definition at line 36 of file Swissranger.cpp.
Swissranger::~Swissranger | ( | ) |
Definition at line 49 of file Swissranger.cpp.
|
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.
|
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.
|
virtual |
Close camera device.
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 300 of file Swissranger.cpp.
|
private |
Definition at line 961 of file Swissranger.cpp.
|
private |
Definition at line 1000 of file Swissranger.cpp.
|
private |
Definition at line 940 of file Swissranger.cpp.
|
private |
Definition at line 953 of file Swissranger.cpp.
|
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.
|
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.
|
inlinevirtual |
Determines if range imaging camera has successfully been initialized.
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 102 of file Swissranger.h.
|
inlinevirtual |
Determines if range imaging camera camera has successfully been opened.
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 103 of file Swissranger.h.
|
privatevirtual |
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.
|
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.
|
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.
|
private |
Parses the data extracted by LoadParameters
and calls the corresponding SetProperty
functions.
Definition at line 1010 of file Swissranger.cpp.
|
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.
|
virtual |
Function to set property defaults of the range imaging sensor.
Implements ipa_CameraSensors::AbstractRangeImagingSensor.
Definition at line 546 of file Swissranger.cpp.
|
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.
|
private |
a1 z-calibration parameters. One matrix entry corresponds to one pixel
Definition at line 144 of file Swissranger.h.
|
private |
a2 z-calibration parameters. One matrix entry corresponds to one pixel
Definition at line 145 of file Swissranger.h.
|
private |
a3 z-calibration parameters. One matrix entry corresponds to one pixel
Definition at line 146 of file Swissranger.h.
|
private |
a4 z-calibration parameters. One matrix entry corresponds to one pixel
Definition at line 147 of file Swissranger.h.
|
private |
a5 z-calibration parameters. One matrix entry corresponds to one pixel
Definition at line 148 of file Swissranger.h.
|
private |
a6 z-calibration parameters. One matrix entry corresponds to one pixel
Definition at line 149 of file Swissranger.h.
|
private |
True, when m_CoeffsAx have been initialized.
Definition at line 136 of file Swissranger.h.
|
private |
Image array.
Definition at line 129 of file Swissranger.h.
|
private |
Is false, when acquiring gray image has not been called, yet.
Definition at line 137 of file Swissranger.h.
|
private |
Number of images the siwssranger returns (i.e. an intensity and a range image)
Definition at line 128 of file Swissranger.h.
|
private |
Handle to USB SR3000 camera.
Definition at line 127 of file Swissranger.h.
|
private |
Definition at line 132 of file Swissranger.h.
|
private |
Definition at line 133 of file Swissranger.h.
|
private |
Definition at line 134 of file Swissranger.h.