DAVID4 SDK
1.8.7
|
Implements interface functions of IStructuredLightScanner. More...
#include <StructuredLightScannerJsonRpc.h>
Public Member Functions | |
StructuredLightScannerJsonRpc (ClientJsonRpc *client) | |
Constructor. More... | |
virtual void | SetScreenID (int screenID) |
Set the new screen ID. More... | |
virtual std::vector< std::string > | GetAvailableCameraNames () |
Returns a list of available cameras. More... | |
virtual void | SelectCamera (const std::string &cameraName, const ImageFormat &imageFormat=ImageFormat()) |
Select a new camera. More... | |
virtual bool | CheckCamera () |
Check state of camera. More... | |
virtual void | SetCameraProperty (const std::string &propertyName, double value, enum CamPropsUsage camPropsUsage=CamPropsForAll) |
Set the camera property 'propertyName'. More... | |
virtual double | GetCameraProperty (const std::string &propertyName, enum CamPropsUsage camPropsUsage=CamPropsForScanning) |
Get the camera property 'propertyName'. More... | |
virtual std::vector< std::string > | GetCameraPropertyNames (bool onlyAvailable) |
Get a list of camera property names. More... | |
virtual void | SelectImageSequence (const std::string &directory) |
Selects a sequence of image files as "virtual camera". More... | |
virtual void | GetLiveImage (std::vector< uint8_t > &pixelValues, int &width, int &height) |
Get the current grayscale live image from the camera. More... | |
virtual void | SetCodedLightPhaseShiftMode (const CodedLightPhaseShiftParams ¶ms) |
Select scan mode Coded Light + Phase Shift (standard DAVID4 mode) and sets the parameters. More... | |
virtual CodedLightPhaseShiftParams | GetCodedLightPhaseShiftParams () |
Get current SLS params for Coded Light and Phase Shift. More... | |
virtual void | SetResultFiltering (const ResultFilteringParams ¶ms) |
Set the result filtering parameters for SL scans. More... | |
virtual ResultFilteringParams | GetResultFiltering () |
Get the result filtering parameters for SL scans. More... | |
virtual void | ImportCalibration (const std::string &camCalibFilename, const std::string &projectorCalibFilename) |
Import camera and projector calibration from XML files. More... | |
virtual void | ExportCalibration (const std::string &camCalibFilename, const std::string &projectorCalibFilename) |
Export camera and projector calibration to XML files. More... | |
virtual void | ChangeCameraCalibrationResolution (int newWidth, int newHeight) |
Change resolution of image format used camera calibration. More... | |
virtual std::vector< CalibPoint > | Calibrate (double scale) |
Trigger automatic calibration of the Structured Light Scanner. More... | |
virtual int | Scan (bool grabTexture=false, bool setAsBackground=false) |
Trigger a Structured Light Scan. More... | |
virtual void | GrabTexture () |
Grab a new texture. | |
virtual void | AutoWhiteBalance () |
Execute an auto white balancing procedure. | |
virtual int | AddScanToShapeFusion () |
Add the current scan to 'Shape Fusion' module. More... | |
virtual void | ExportMesh (const std::string &filename) |
Export the current scan as a triangular mesh. More... | |
virtual void | ExportBackgroundDepthmap (const std::string &filename) |
Export the current background as a depth map file (.PFM). More... | |
virtual void | ImportBackgroundDepthmap (const std::string &filename) |
Import background from a depth map file (.PFM). More... | |
Not implemented | |
| |
virtual void | GetBackgroundDepthmap (std::vector< float > &depthValues, int &width, int &height) |
Gets the currently used background scan as depth map. More... | |
virtual void | SetBackgroundDepthmap (const std::vector< float > &depthValues, int width, int height) |
Sets the background scan, giving a depth map. More... | |
virtual void | SetBackgroundPlanes (const std::vector< Plane > &planes) |
Sets the "background scan" from a given list of planes. More... | |
virtual int | GetPatternCount () |
Get the current number of pattern for the complete sequence. More... | |
virtual void | GetPatternImage (uint8_t *data, int width, int height, PatternPixelFormat pixelFormat, int patternIndex) |
Get the pattern image with the zero based index 'patternIndex'. More... | |
virtual void | SetCapturedImage (const uint8_t *data, int width, int height, CapturedPixelFormat pixelFormat, int patternIndex) |
Set the captured image for given pattern with zero based index 'patternIndex'. More... | |
virtual void | SetTextureImage (const uint8_t *data, int width, int height, PixelFormat pixelFormat) |
Set the texture image analog to SetCapturedImage. More... | |
![]() | |
virtual | ~IStructuredLightScanner () |
Destructor. | |
Additional Inherited Members | |
![]() | |
static void | GetCalibrationError (double &maxDelta, double &rmsError, const std::vector< CalibPoint > &calibPoints) |
Helper function for computing the calibration error given an array of calibration correspondences. More... | |
Implements interface functions of IStructuredLightScanner.
All calls are delegated to a JSON-RPC 2.0 client. Example:
Definition at line 23 of file StructuredLightScannerJsonRpc.h.
david::StructuredLightScannerJsonRpc::StructuredLightScannerJsonRpc | ( | ClientJsonRpc * | client) |
Constructor.
[in,out] | client | Valid pointer to client implementation. |
|
virtual |
Add the current scan to 'Shape Fusion' module.
david::Error_MissingObject | (david::FunctionException) No scan data at hand. |
Implements david::IStructuredLightScanner.
|
virtual |
Trigger automatic calibration of the Structured Light Scanner.
The function returns when calibration is finished or an error occurred.
[in] | scale | Scale of the calibration patterns. Typically in mm. |
david::Error_CameraCalibration | (david::FunctionException) Camera calibration failed. |
david::Error_ProjectorCalibration | (david::FunctionException) Projector calibration failed. |
Implements david::IStructuredLightScanner.
|
virtual |
Change resolution of image format used camera calibration.
[in] | newWidth | New camera image width. |
[in] | newHeight | New camera image height. |
david::Error_NotCalibrated | (david::FunctionException) Camera is not calibrated. |
david::Error_InvalidFormat | (david::FunctionException) Requested image resolution not supported. |
Implements david::IStructuredLightScanner.
|
virtual |
Check state of camera.
Implements david::IStructuredLightScanner.
|
virtual |
Export the current background as a depth map file (.PFM).
[in] | filename | Filename of the depth map to be exported. |
Implements david::IStructuredLightScanner.
|
virtual |
Export camera and projector calibration to XML files.
[in] | camCalibFilename | Filename of the camera calibration to be exported to. |
[in] | projectorCalibFilename | Filename of the projector calibration to be exported to. |
david::Error_NotCalibrated | (david::FunctionException) Scanner is not calibrated. |
Implements david::IStructuredLightScanner.
|
virtual |
Export the current scan as a triangular mesh.
See documentation of DAVID software for supported file formats.
[in] | filename | Filename of the mesh to be exported. |
david::Error_NoAccess | (david::FunctionException) No access to path. |
david::Error_InvalidPath | (david::FunctionException) Export path invalid. |
david::Error_DirectoryNotFound | (david::FunctionException) Export target directory does not exist. |
david::Error_MissingFilename | (david::FunctionException) Export path misses file name. |
david::Error_InvalidMeshId | (david::FunctionException) Specified meshID does not exist. |
Implements david::IStructuredLightScanner.
|
virtual |
Returns a list of available cameras.
Implements david::IStructuredLightScanner.
|
virtual |
Gets the currently used background scan as depth map.
[out] | depthValues | The depth values, row by row, from top to bottom, each row left to right. |
[out] | width | Number of columns |
[out] | height | Number of rows |
Implements david::IStructuredLightScanner.
|
virtual |
Get the camera property 'propertyName'.
[in] | propertyName | Name of property. |
[in] | camPropsUsage | For which algorithm should the camera property be queried? See david::CamPropsSelect. CamPropsForAll is not allowed here. |
david::Error_DeviceNotAvailable | (david::FunctionException) Selected camera is not available. |
david::Error_InvalidArgument | (david::FunctionException) Invalid property or property is not available. |
Implements david::IStructuredLightScanner.
|
virtual |
Get a list of camera property names.
[in] | onlyAvailable | List only available camera properties? |
Implements david::IStructuredLightScanner.
|
virtual |
Get current SLS params for Coded Light and Phase Shift.
Implements david::IStructuredLightScanner.
|
virtual |
Get the current grayscale live image from the camera.
[out] | pixelValues | 8bit gray scale pixel values are writting into this buffer. |
[out] | width | Width of the image. |
[out] | height | Height of the image. |
david::Error_NoLiveImage | (david::FunctionException) Live image is not available. |
Implements david::IStructuredLightScanner.
|
virtual |
Get the current number of pattern for the complete sequence.
Implements david::IStructuredLightScanner.
|
virtual |
Get the pattern image with the zero based index 'patternIndex'.
[out] | data | Pixel values are written to this buffer. |
[in] | width | Requested width of pattern image. |
[in] | height | Requested height of pattern image. |
[in] | pixelFormat | Supported pixel formats for pattern images. |
[in] | patternIndex | Zero based index of pattern image. See also GetPatternCount. |
Implements david::IStructuredLightScanner.
|
virtual |
Get the result filtering parameters for SL scans.
Implements david::IStructuredLightScanner.
|
virtual |
Import background from a depth map file (.PFM).
[in] | filename | Filename of the depth map to be imported. |
Implements david::IStructuredLightScanner.
|
virtual |
Import camera and projector calibration from XML files.
[in] | camCalibFilename | Filename of the camera calibration to be imported from. |
[in] | projectorCalibFilename | Filename of the projector calibration to be imported from. |
david::Error_CameraCalibration | (david::FunctionException) Could not read camera calibration file. |
david::Error_ProjectorCalibration | (david::FunctionException) Could not read projector calibration file. |
Implements david::IStructuredLightScanner.
|
virtual |
Trigger a Structured Light Scan.
The function computes a 3D scan from a sequence of captured pattern images. The captured images can be provided in two ways:
The function returns when scanning is finished or an error occurred.
[in] | grabTexture | Also grab a texture with the scan (default: false) |
[in] | setAsBackground | Define this scan as background (for Background Removal in ResultFiltering) (default: false) |
david::Error_NotCalibrated | (david::FunctionException) Cannot scan because scanner is not calibrated. |
Implements david::IStructuredLightScanner.
|
virtual |
Select a new camera.
Example:
[in] | cameraName | Name of the camera. |
[in] | imageFormat | Format of the camera image. |
david::Error_DeviceNotAvailable | (david::FunctionException) Selected camera is not available. |
david::Error_FormatNotAvailable | (david::FunctionException) Selected camera image format is invalid. |
Implements david::IStructuredLightScanner.
|
virtual |
Selects a sequence of image files as "virtual camera".
All images must be located in the same directory. The image file names are chosen automatically:
Image for camera calibration | File name must contain "cam_calib" |
Pattern images | File names must contain "image" and be sorted alphabetically. |
Texture image | File name must contain "texture" |
[in] | directory | Path to the image files. |
david::Error_InvalidPath | (david::FunctionException) Path invalid. |
david::Error_DirectoryNotFound | (david::FunctionException) Directory does not exist. |
Implements david::IStructuredLightScanner.
|
virtual |
Sets the background scan, giving a depth map.
The resolution should be identical to the camera resolution.
[in] | depthValues | The depth values, row by row, from top to bottom, each row left to right. |
[in] | width | Number of columns |
[in] | height | Number of rows |
Implements david::IStructuredLightScanner.
|
virtual |
Sets the "background scan" from a given list of planes.
Camera must be calibrated first!
[in] | planes | The list of planes that define the background. |
Implements david::IStructuredLightScanner.
|
virtual |
Set the camera property 'propertyName'.
Here are some important property names:
[in] | propertyName | Name of property. |
[in] | value | New value of the property. |
[in] | camPropsUsage | For which algorithm should the camera property be set? See david::CamPropsSelect. |
david::Error_DeviceNotAvailable | (david::FunctionException) Selected camera is not available. |
david::Error_InvalidArgument | (david::FunctionException) Invalid property or property is not available. |
Implements david::IStructuredLightScanner.
|
virtual |
Set the captured image for given pattern with zero based index 'patternIndex'.
[in] | data | Valid pointer to buffer with pixel values.
|
[in] | width | Width of captured image. |
[in] | height | Height of captured image. |
[in] | pixelFormat | Pixel format of captured image. |
[in] | patternIndex | Zero based index of pattern image. See also GetPatternCount. |
Implements david::IStructuredLightScanner.
|
virtual |
Select scan mode Coded Light + Phase Shift (standard DAVID4 mode) and sets the parameters.
Missing parameters will remain unchanged.
[in] | params | Parameters for this structured light mode. |
Implements david::IStructuredLightScanner.
|
virtual |
Set the result filtering parameters for SL scans.
[in] | params | Parameters for result filtering. |
Implements david::IStructuredLightScanner.
|
virtual |
Set the new screen ID.
The value 0 switches the projection off.
[in] | screenID | ID of the screen used for displaying structured light patterns, or 0 for OFF. |
Implements david::IStructuredLightScanner.
|
virtual |
Set the texture image analog to SetCapturedImage.
[in] | data | Valid pointer to buffer with pixel values. Size of 'data' has to be equal to GetImageSize(width, height, pixelFormat). |
[in] | width | Width of texture image. |
[in] | height | Height of texture image. |
[in] | pixelFormat | Pixel format of captured image. |
Implements david::IStructuredLightScanner.