|
Ocean
|
This class implements utility functions for convenient visualization of tracking data. More...
#include <Utilities.h>
Static Public Member Functions | |
| static Frame | blendFrames (const Frame &frame0, const Frame &frame1, Worker *worker=nullptr) |
| Blends two given frames with the same frame type. | |
| static Frame | blendFrames (const Frame &frame0, const Frame &frame1, Vector2 &offset0, Vector2 &offset1, const FrameType::PixelFormat pixelFormat=FrameType::FORMAT_UNDEFINED, Worker *worker=nullptr) |
| Blends two given frames with the same pixel origin. | |
| static void | paintLine (Frame &frame, const Vector2 &startPosition, const Vector2 &stopPosition, const uint8_t *color=nullptr, const bool subPixel=true) |
| Paints a line into a given frame. | |
| static void | paintLines (Frame &frame, const Vector2 *startPositions, const Vector2 *stopPositions, const size_t numberLines, const uint8_t *color=nullptr, Worker *worker=nullptr, const bool subPixel=true, const Vector2 &offsetStartPositions=Vector2(0, 0), const Vector2 &offsetStopPositions=Vector2(0, 0)) |
| Paints a set of lines into a given frame. | |
| template<unsigned int tSize> | |
| static void | paintLines (Frame &frame, const Vector2 *startPositions, const Vector2 *stopPositions, const size_t numberLines, const uint8_t *color=nullptr, Worker *worker=nullptr) |
| Paints a set of lines into a given frame with sub-pixel accuracy. | |
| template<unsigned int tSizeForeground, unsigned int tSizeBackground> | |
| static void | paintLines (Frame &frame, const Vector2 *startPositions, const Vector2 *stopPositions, const size_t numberLines, const uint8_t *colorForeground=nullptr, const uint8_t *colorBackground=nullptr, Worker *worker=nullptr) |
| Paints a set of lines with foreground and background colors into a given frame with sub-pixel accuracy. | |
| template<unsigned int tSize> | |
| static void | paintPaths (Frame &frame, const Vectors2 *paths, const size_t size, const uint8_t *color=nullptr, Worker *worker=nullptr) |
| Paints several paths into a given frame with sub-pixel accuracy. | |
| template<unsigned int tSize> | |
| static void | paintPaths (Frame &frame, const Vectors2 *paths, const size_t size, const uint8_t *color0, const uint8_t *color1, const Scalar *factors, Worker *worker=nullptr) |
| Paints several paths into a given frame with sub-pixel accuracy. | |
| template<unsigned int tSize = 1u> | |
| static void | paintTriangle (Frame &frame, const Triangle2 &triangle, const uint8_t *color=nullptr) |
| Paints a 2D triangle into a given frame with sub-pixel accuracy. | |
| template<unsigned int tSize = 1u> | |
| static void | paintTriangles (Frame &frame, const Triangles2 &triangles, const uint8_t *color=nullptr, Worker *worker=nullptr) |
| Paints a set of 2D triangles into a given frame with sub-pixel accuracy. | |
| template<unsigned int tPointSize> | |
| static void | paintImagePoints (Frame &frame, const Vector2 *imagePoints, const size_t size, const uint8_t *color, Worker *worker=nullptr) |
| Paints a set of 2D image points into a given frame with sub-pixel accuracy. | |
| template<unsigned int tPointSize> | |
| static void | paintObjectPoints (Frame &frame, const AnyCamera &anyCamera, const HomogenousMatrix4 &world_T_camera, const Vector3 *objectPoints, const size_t size, const uint8_t *color, Worker *worker=nullptr) |
| Paints a set of projected 3D object points into a given frame with sub-pixel accuracy. | |
| static void | paintFeaturePoint (Frame &frame, const Vector2 &position, const Scalar radius, const Scalar orientation, const uint8_t *color, const uint8_t *shadowColor) |
| Paints a feature point with a radius (scale) and orientation. | |
| template<unsigned int tChannels> | |
| static void | paintFeaturePoint8BitPerChannel (uint8_t *frame, const unsigned int width, const unsigned int height, const Vector2 &position, const Scalar radius, const Scalar orientation, const uint8_t *color, const uint8_t *shadowColor, const unsigned int framePaddingElements=0u) |
| Paints a feature point with a radius (scale) and orientation. | |
| static void | paintFeaturePoints (Frame &frame, const Vector2 *positions, const Scalar *radii, const Scalar *orientations, const size_t size, const uint8_t *color, const uint8_t *shadowColor, const Vector2 &explicitOffset=Vector2(0, 0), Worker *worker=nullptr) |
| Paints feature points with radius (scale) and orientation. | |
| template<unsigned int tChannels> | |
| static void | paintFeaturePoints8BitPerChannel (uint8_t *frame, const unsigned int width, const unsigned int height, const Vector2 *positions, const Scalar *radii, const Scalar *orientations, const size_t size, const uint8_t *color, const uint8_t *shadowColor, const Vector2 &explicitOffset, const unsigned int framePaddingElements, Worker *worker=nullptr) |
| Paints feature points with radius (scale) and orientation. | |
| template<unsigned int tObjectPointSize, unsigned int tImagePointSize> | |
| static void | paintCorrespondences (Frame &frame, const AnyCamera &camera, const HomogenousMatrix4 &model_T_camera, const Vector3 *objectPoints, const Vector2 *imagePoints, const size_t correspondences, const Scalar maxSqrError, const uint8_t *colorValidObjectPoints, const uint8_t *colorValidImagePoints, const uint8_t *colorInvalidObjectPoints, const uint8_t *colorInvalidImagePoints, const bool drawObjectPoints=true, const bool drawImagePoints=true, const bool drawConnections=true, Worker *worker=nullptr) |
| Paints a set of correspondences between 2D image points and 3D object points (or their projected 2D counterparts) into a given frame with sub-pixel accuracy. | |
| static Frame | paintCorrespondencesBlend (const Frame &frame0, const Frame &frame1, const Vector2 *points0, const Vector2 *points1, const size_t numberPoints, const uint8_t *color=nullptr, Worker *worker=nullptr) |
| Blends two corresponding frames each with a ratio of fifty percent and paints a set of given feature correspondences. | |
| static Frame | paintCorrespondencesHorizontal (const Frame &frame0, const Frame &frame1, const Vector2 *points0, const Vector2 *points1, const size_t numberPoints, const uint8_t *color=nullptr, Worker *worker=nullptr) |
| Joins two corresponding frames horizontally and paints a set of given feature correspondences. | |
| static Frame | paintCorrespondencesVertical (const Frame &frame0, const Frame &frame1, const Vector2 *points0, const Vector2 *points1, const size_t numberPoints, const uint8_t *color=nullptr, Worker *worker=nullptr) |
| Joins two corresponding frames vertically and paints a set of given feature correspondences. | |
| static bool | paintCorrespondencesHomography (const Frame &frame0, const Frame &frame1, const SquareMatrix3 &points1_H_points0, const Vector2 *points0, const Vector2 *points1, const size_t numberPoints, const bool fullCoverage, Frame &result, const uint8_t *foregroundColor=nullptr, const uint8_t *backgroundColor=nullptr, const uint8_t *startColor=nullptr, Worker *worker=nullptr) |
| Joins two corresponding frames by application of a homography and paints a set of given feature correspondences. | |
| static bool | paintCorrespondencesOrientations (const PinholeCamera &pinholeCamera, const Frame &frame0, const Frame &frame1, const SquareMatrix3 &orientation0, const SquareMatrix3 &orientation1, const Vector2 *points0, const Vector2 *points1, const size_t numberPoints, Frame &result, const uint8_t *foregroundColor=nullptr, const uint8_t *backgroundColor=nullptr, const uint8_t *startColor=nullptr, Worker *worker=nullptr) |
| Joins two corresponding frames by application of their orientations and paints a set of given feature correspondences. | |
| static void | paintPoints (Frame &frame, const Vector2 *imagePoints, const size_t number, const unsigned int radius, const uint8_t *colorInner=nullptr, const uint8_t *colorOuter=nullptr) |
| Paints a set of image points into a given frame. | |
| static void | paintPoints (Frame &frame, const HomogenousMatrix4 &world_T_camera, const PinholeCamera &pinholeCamera, const Vector3 *objectPoints, const size_t numberObjectPoints, const Vector2 *imagePoints, const size_t numberImagePoints, const bool distortProjectedObjectPoints, const unsigned int radiusObjectPoints, const unsigned int radiusImagePoints, const uint8_t *colorObjectPoints=nullptr, const uint8_t *colorImagePoints=nullptr) |
| Paints (projected) object points and image points into a given frame. | |
| static void | paintPointsIF (Frame &frame, const HomogenousMatrix4 &flippedCamera_T_world, const PinholeCamera &pinholeCamera, const Vector3 *objectPoints, const size_t numberObjectPoints, const Vector2 *imagePoints, const size_t numberImagePoints, const bool distortProjectedObjectPoints, const unsigned int radiusObjectPoints, const unsigned int radiusImagePoints, const uint8_t *colorObjectPoints=nullptr, const uint8_t *colorImagePoints=nullptr) |
| Paints (projected) object points and image points into a given frame. | |
| static void | paintBoundingBoxIF (Frame &frame, const HomogenousMatrix4 &flippedCamera_T_world, const AnyCamera &anyCamera, const Box3 &boundingBox, const uint8_t *foregroundColor, const uint8_t *backgroundColor, const bool edgesOnly=true) |
| Paints a (projected) 3D axis aligned bounding box into a given frame. | |
| static void | paintWireframeConeIF (Frame &frame, const HomogenousMatrix4 &flippedCamera_T_cone, const PinholeCamera &pinholeCamera, const Cone3 &cone, const bool distortProjectedObjectPoints=true, Worker *worker=nullptr, const uint8_t *color=CV::Canvas::yellow(), const unsigned int numCircles=6u, const unsigned int numVerticalLines=4u, const unsigned int numSamples=72u) |
| Paints a (projected) wire-frame cone into a given frame. | |
| static void | paintWireframeCylinderIF (Frame &frame, const HomogenousMatrix4 &flippedCamera_T_cylinder, const PinholeCamera &pinholeCamera, const Cylinder3 &cylinder, const bool distortProjectedObjectPoints=true, Worker *worker=nullptr, const uint8_t *color=CV::Canvas::yellow(), const unsigned int numCircles=6u, const unsigned int numVerticalLines=4u, const unsigned int numSamples=72u) |
| Paints a (projected) wire-frame cylinder into a given frame. | |
| template<unsigned int tSize = 1u> | |
| static void | paintTriangleIF (Frame &frame, const HomogenousMatrix4 &flippedCamera_T_world, const AnyCamera &anyCamera, const Triangle3 &triangle, const uint8_t *color=nullptr) |
| Paints a (projected) 3D triangle into a given frame. | |
| template<unsigned int tSize = 1u> | |
| static void | paintTrianglesIF (Frame &frame, const HomogenousMatrix4 &flippedCamera_T_world, const AnyCamera &anyCamera, const Triangle3 *triangles, const size_t numberTriangles, const uint8_t *color=nullptr, Worker *worker=nullptr) |
| Paints (projected) 3D triangles into a given frame. | |
| template<unsigned int tSize = 1u> | |
| static void | paintTriangleIF (Frame &frame, const HomogenousMatrix4 &flippedCamera_T_world, const AnyCameraClipper &cameraClipper, const Triangle3 &triangle, const size_t segments=3, const uint8_t *color=nullptr) |
| Paints a projected 3D triangle into a given frame. | |
| static void | paintLineIF (Frame &frame, const HomogenousMatrix4 &flippedCamera_T_world, const AnyCamera &anyCamera, const Vector3 &objectPoint0, const Vector3 &objectPoint1, const unsigned int segments, const uint8_t *foregroundColor, const uint8_t *backgroundColor) |
| Paints a (projected) 3D line into a given frame. | |
| static void | paintLineIF (Frame &frame, const AnyCameraClipper &cameraClipper, const HomogenousMatrix4 &flippedCamera_T_world, const Vector3 &objectPoint0, const Vector3 &objectPoint1, const unsigned int segments, const uint8_t *foregroundColor, const uint8_t *backgroundColor) |
| Paints a (projected) 3D line into a given frame. | |
| static void | paintCoordinateSystemIF (Frame &frame, const HomogenousMatrix4 &flippedCamera_T_world, const AnyCamera &anyCamera, const HomogenousMatrix4 &world_T_coordinateSystem, const Scalar length) |
| Paints a 3D coordinate system (projected) into a frame. | |
| static void | paintCoordinateSystemIF (Frame &frame, const AnyCameraClipper &cameraClipper, const HomogenousMatrix4 &flippedCamera_T_world, const HomogenousMatrix4 &world_T_coordinateSystem, const Scalar length, const unsigned int segments=10u) |
| Paints a 3D coordinate system (projected) into a frame. | |
| static bool | paintPlane (Frame &frame, const HomogenousMatrix4 &world_T_camera, const AnyCamera &camera, const HomogenousMatrix4 &planeTransformation, const unsigned int bins, const uint8_t *foregroundColor, const uint8_t *backgroundColor, Scalar *expansion=nullptr) |
| Paints a 3D plane into the frame, further the origin of the plane is painted. | |
| static bool | paintPlaneIF (Frame &frame, const HomogenousMatrix4 &flippedCamera_T_world, const AnyCamera &camera, const HomogenousMatrix4 &planeTransformation, const Scalar expansion, const unsigned int bins, const uint8_t *foregroundColor, const uint8_t *backgroundColor) |
| Paints a 3D plane into the frame, further the origin of the plane is painted. | |
| static void | paintQuads (Frame &frame, const HomogenousMatrix4 &world_T_camera, const AnyCamera &camera, const Vector3 &quadOrigin, const Vector3 &quadHorizontal, const Vector3 &quadVertical, const unsigned int horizontalBins, const unsigned int verticalBins, const uint8_t *color=nullptr) |
| Paints quads that are located on a 3D plane into a given frame. | |
| static void | paintQuadsIF (Frame &frame, const HomogenousMatrix4 &flippedCamera_T_world, const AnyCamera &camera, const Vector3 &quadOrigin, const Vector3 &quadHorizontal, const Vector3 &quadVertical, const unsigned int horizontalBins, const unsigned int verticalBins, const uint8_t *color=nullptr) |
| Paints quads that are located on a 3D plane into a given frame. | |
| static Frame | paintMask (const Frame &frame, const Frame &mask, const uint8_t maskValue=uint8_t(0xFFu), Worker *worker=nullptr) |
| Paints / blends a binary 8 bit mask into a given frame with identical frame dimension. | |
| static Frame | paintBoundingBox (const Frame &frame, const CV::PixelBoundingBox &boundingBox, Worker *worker=nullptr) |
| Paints / blends a bounding box into a given frame. | |
| static bool | paintGravity (const AnyCamera &camera, Frame &frame, const Vector3 &gravity, const unsigned int thickness=3u, const uint8_t *color=nullptr, const unsigned int segments=20u, const Vector3 &position=Vector3(0, 0, -1), const Scalar length=Scalar(1)) |
| Paints a gravity vector into a given frame. | |
| static bool | alignFramesHomography (const Frame &fixedFrame, const Frame &dynamicFrame, const SquareMatrix3 &dynamic_H_fixed, Frame &result, const bool blend, Worker *worker=nullptr) |
| Aligns two frames connected by a given homography into one frame while the resulting frame covers the area of one given frame only (the fixed frame). | |
| static bool | alignFramesHomographyFullCoverage (const Frame &fixedFrame, const Frame &dynamicFrame, const SquareMatrix3 &dynamic_H_fixed, Frame &result, const bool blend, Worker *worker=nullptr, unsigned int maximalWidth=16384u, const unsigned int maximalHeight=16384u, unsigned int *fixedFrameLeft=nullptr, unsigned int *fixedFrameTop=nullptr, Scalar *dynamicFrameLeft=nullptr, Scalar *dynamicFrameTop=nullptr, Frame *fullFixedFrame=nullptr, Frame *fullDynamicFrame=nullptr) |
| Aligns two frames connected by a given homography into one frame entirely covering the frame content of both images. | |
| static void | visualizeDatabase (const Database &database, const Index32 poseId, Frame &frame, const uint8_t *colorImagePoints, const uint8_t *colorImagePointsInstable, const uint8_t *colorImagePointsStable, const unsigned int maximalPathLength=20u, const unsigned int stablePathLength=100u, const SquareMatrix3 &transformation=SquareMatrix3(true), Worker *worker=nullptr) |
| Visualizes image point information of a tracking database for a specific pose id. | |
| static bool | writeCamera (const PinholeCamera &pinholeCamera, IO::OutputBitstream &outputStream) |
| Writes a camera profile to a binary output stream. | |
| static bool | readCamera (IO::InputBitstream &inputStream, PinholeCamera &pinholeCamera) |
| Reads a camera profile from a binary input stream. | |
| static bool | writeDatabase (const Database &database, IO::OutputBitstream &outputStream) |
| Writes the information of a database to a given output stream as binary information. | |
| static bool | readDatabase (IO::InputBitstream &inputStream, Database &database) |
| Reads a database information from a binary input stream. | |
| static Maintenance::Buffer | encodeEnvironment (const Frame &frame, const Vectors2 &frameImagePoints, const Vectors3 &frameObjectPoints, const HomogenousMatrix4 &framePose, const Vectors3 &objectPoints) |
| Encodes the tracking environment composed of a frame mesh (a frame with correspondences of 2D image points and 3D object points), a camera pose from which the frame has been captured, and an independent set of 3D object points. | |
Static Protected Member Functions | |
| static void | paintLinesSubset (Frame *frame, const Vector2 *startPositions, const Vector2 *stopPositions, const uint8_t *color, const bool subPixel, const Vector2 *offsetStartPositions, const Vector2 *offsetStopPositions, const unsigned int firstLine, const unsigned int numberLines) |
| Paints a subset of a set of lines into a given frame. | |
| template<unsigned int tSize> | |
| static void | paintLinesSubset (Frame *frame, const Vector2 *startPositions, const Vector2 *stopPositions, const uint8_t *color, const unsigned int firstLine, const unsigned int numberLines) |
| Paints a subset of a set of lines into a given frame with sub-pixel accuracy. | |
| template<unsigned int tSizeForeground, unsigned int tSizeBackground> | |
| static void | paintLinesSubset (Frame *frame, const Vector2 *startPositions, const Vector2 *stopPositions, const uint8_t *colorForeground, const uint8_t *colorBackground, const unsigned int firstLine, const unsigned int numberLines) |
| Paints a subset of a set of lines into a given frame with sub-pixel accuracy. | |
| template<unsigned int tSize> | |
| static void | paintPathsSubset (Frame *frame, const Vectors2 *paths, const uint8_t *color, const unsigned int firstPath, const unsigned int numberPaths) |
| Paints a subset of several paths into a given frame with sub-pixel accuracy. | |
| template<unsigned int tSize> | |
| static void | paintPathsAdvancedSubset (Frame *frame, const Vectors2 *paths, const uint8_t *color0, const uint8_t *color1, const Scalar *factors, const unsigned int firstPath, const unsigned int numberPaths) |
| Paints a subset of several paths into a given frame with sub-pixel accuracy. | |
| template<unsigned int tSize = 1u> | |
| static void | paintTrianglesSubset (Frame *frame, const Triangle2 *triangles, const uint8_t *color, const unsigned int firstTriangle, const unsigned int numberTriangles) |
| Paints a subset of 2D triangles into a given frame with sub-pixel accuracy. | |
| template<unsigned int tSize = 1u> | |
| static void | paintTrianglesIFSubset (Frame *frame, const HomogenousMatrix4 *flippedCamera_T_world, const AnyCamera *anyCamera, const Triangle3 *triangles, const uint8_t *color, const unsigned int firstTriangle, const unsigned int numberTriangles) |
| Projects and paints a subset of 3D triangles into a given frame with sub-pixel accuracy. | |
| template<unsigned int tPointSize> | |
| static void | paintImagePointsSubset (Frame *frame, const Vector2 *imagePoints, const uint8_t *color, const unsigned int firstImagePoint, const unsigned int numberImagePoints) |
| Paints subset of a set of 2D image points into a given frame with sub-pixel accuracy. | |
| template<unsigned int tPointSize> | |
| static void | paintObjectPointsSubset (Frame *frame, const AnyCamera *anyCamera, const HomogenousMatrix4 *flippedCamera_T_world, const Vector3 *objectPoints, const uint8_t *color, const unsigned int firstObjectPoint, const unsigned int numberObjectPoints) |
| Paints a subset of a set of projected 3D object points into a given frame with sub-pixel accuracy. | |
| template<unsigned int tChannels> | |
| static void | paintFeaturePoints8BitPerChannelSubset (uint8_t *frame, const unsigned int width, const unsigned int height, const Vector2 *positions, const Scalar *radii, const Scalar *orientations, const uint8_t *color, const uint8_t *shadowColor, const Scalar offsetX, const Scalar offsetY, const unsigned int framePaddingElements, const unsigned int firstFeaturePoint, const unsigned int numberFeaturePoints) |
| Paints a subset of feature points with radius (scale) and orientation. | |
| template<unsigned int tObjectPointSize, unsigned int tImagePointSize> | |
| static void | paintCorrespondencesSubset (Frame *frame, const AnyCamera *camera, const HomogenousMatrix4 *flippedCamera_T_model, const Vector3 *objectPoints, const Vector2 *imagePoints, const Scalar maxSqrError, const uint8_t *colorValidObjectPoints, const uint8_t *colorValidImagePoints, const uint8_t *colorInvalidObjectPoints, const uint8_t *colorInvalidImagePoints, const bool drawObjectPoints, const bool drawImagePoints, const bool drawConnections, const unsigned int firstCorrespondence, const unsigned int numberCorrespondences) |
| Paints a subset of a set of correspondences between 2D image points and 3D object points (or their projected 2D counterparts) into a given frame with sub-pixel accuracy. | |
| template<unsigned int tBlendChannel, unsigned int tChannels> | |
| static void | blendPixel (uint8_t *pixel, const uint8_t blendFactor) |
| Paints / blends a binary 8 bit mask pixel into a given pixel with 8 bit per channel. | |
This class implements utility functions for convenient visualization of tracking data.
|
static |
Aligns two frames connected by a given homography into one frame while the resulting frame covers the area of one given frame only (the fixed frame).
| fixedFrame | The fixed frame which will be untouched while the dynamic frame will be transformed by application of the homography and aligned to this frame, must be valid |
| dynamicFrame | The dynamic frame which will be transformed and then aligned to the fixed frame, with same pixel format and pixel orientation as the fixed frame |
| dynamic_H_fixed | The homography transforming points defined in the fixed frame to points defined in the dynamic frame, must be valid |
| result | The resulting frame with aligned frames, the frame type will be adjusted/set internally |
| blend | True, to blend both frames; False, to overwrite each pixel for which a corresponding pixel in the dynamic frame exist |
| worker | Optional worker object to distribute the computation |
|
static |
Aligns two frames connected by a given homography into one frame entirely covering the frame content of both images.
| fixedFrame | The fixed frame which will be untouched while the dynamic frame will be transformed by application of the homography and aligned to this frame, must be valid |
| dynamicFrame | The dynamic frame which will be transformed and then aligned to the fixed frame, with same pixel format and pixel orientation as the fixed frame |
| dynamic_H_fixed | The homography transforming points defined in the fixed frame to points defined in the dynamic frame, must be valid |
| result | The resulting frame with aligned frames converting the image content of both frames, the frame type will be adjusted/set internally |
| blend | True, to blend both frames; False, to overwrite each pixel for which a corresponding pixel in the dynamic frame exist |
| worker | Optional worker object to distribute the computation |
| maximalWidth | The maximal width of the resulting frame to ensure that an extreme homography does not create an extremely large result, in pixels with range [1, infinity) |
| maximalHeight | The maximal height of the resulting frame to ensure that an extreme homography does not create an extremely large result, in pixels with range [1, infinity) |
| fixedFrameLeft | Optional resulting horizontal location of the top left pixel of the fixed frame in the resulting aligned frame, with range [0, result.width() - fixedFrame.width()] |
| fixedFrameTop | Optional resulting vertical location of the top left pixel of the fixed frame in the resulting aligned frame, with range [0, result.height() - fixedFrame.height()] |
| dynamicFrameLeft | Optional resulting horizontal location of the top left pixel of the dynamic frame in relation to 'fixedFrameLeft', with range (-infinity, infinity) |
| dynamicFrameTop | Optional resulting horizontal location of the top left pixel of the dynamic frame in relation to 'fixedFrameTop', with range (-infinity, infinity) |
| fullFixedFrame | Optional resulting frame covering the fixed frame only, but with same frame dimension as the resulting aligned frame |
| fullDynamicFrame | Optional resulting frame covering the transformed dynamic frame only, but with same frame dimension as the resulting aligned frame |
|
static |
Blends two given frames with the same pixel origin.
If the image resolutions differ, both images will be aligned at the image center and the borders will be padded as needed.
The resulting frame contains pixel intensity values blended at fifty percent from each frame.
| frame0 | The first frame to be blended, must be valid |
| frame1 | The second frame to be blended, with same frame type as the first frame, must be valid |
| offset0 | The location of the top-left corner of the first frame within the blended frame, with range [0, 0]x(infinity, infinity) |
| offset1 | The location of the top-left corner of the second frame within the blended frame, with range [0, 0]x(infinity, infinity) |
| pixelFormat | The pixel format of the resulting blended image, FORMAT_UNDEFINED to use the pixel format of the given images (which must be identical in that case) |
| worker | Optional worker object to distribute the computation |
|
static |
Blends two given frames with the same frame type.
The resulting frame contains pixel intensity values blended at fifty percent from each frame.
| frame0 | The first frame to be blended, must be valid |
| frame1 | The second frame to be blended, with same frame type as the first frame, must be valid |
| worker | Optional worker object to distribute the computation |
|
inlinestaticprotected |
Paints / blends a binary 8 bit mask pixel into a given pixel with 8 bit per channel.
| pixel | The pixel data which will receive the mask |
| blendFactor | The blend factor for the given pixel |
| tBlendChannel | The index of the data channel which will be blended, with range [0, tChannels) |
| tChannels | The number of data channels of the given pixel |
|
static |
Encodes the tracking environment composed of a frame mesh (a frame with correspondences of 2D image points and 3D object points), a camera pose from which the frame has been captured, and an independent set of 3D object points.
| frame | The frame to encode |
| frameImagePoints | The image points located in the given frame |
| frameObjectPoints | The object points, one object point for each image point |
| framePose | The camera pose to encode |
| objectPoints | The independent object points to encode |
|
static |
Paints / blends a bounding box into a given frame.
| frame | The frame in which the bounding box will be painted, must be valid |
| boundingBox | The bounding box, must be valid and must be defined inside the frame |
| worker | Optional worker object to distribute the computation |
|
static |
Paints a (projected) 3D axis aligned bounding box into a given frame.
| frame | The frame receiving the points, must be valid |
| flippedCamera_T_world | The transformation between world and the flipped camera, must be valid |
| anyCamera | The camera profile defining the projection, with dimension equal to the frame dimension |
| boundingBox | The bounding box to be painted, defined in world |
| foregroundColor | The foreground color of the plane, nullptr to skip the painting with the foreground color |
| backgroundColor | The background color of the plane, nullptr to skip the painting with the background color |
| edgesOnly | True, to paint the edges of the bounding box only; False, to paint also the diagonal connections |
|
static |
Paints a 3D coordinate system (projected) into a frame.
In case the frame has pixel format FORMAT_RGB24, the axis are painted in red (x), green (y), and blue (z).
| frame | The frame in which the coordinate system is painted, must be valid |
| cameraClipper | The camera clipper defining the projection, must be valid |
| flippedCamera_T_world | The camera posed converting world to the flipped camera coordinate system (a camera coordinate system pointing towards the positive z-space), must be valid |
| world_T_coordinateSystem | The transformation of the coordinate system transforming points defined in the local coordinate system (to be rendered) into points defined in the world coordinate system, must be valid |
| length | The length of the three axis of the coordinate system, defined in the units of the local coordinate system |
| segments | The number of segments to be used for each axis, with range [1, infinity) |
|
static |
Paints a 3D coordinate system (projected) into a frame.
In case the frame has pixel format FORMAT_RGB24, the axis are painted in red (x), green (y), and blue (z).
| frame | The frame in which the coordinate system is painted, must be valid |
| flippedCamera_T_world | The camera posed converting world to the flipped camera coordinate system (a camera coordinate system pointing towards the positive z-space), must be valid |
| anyCamera | The camera profile that is used to render the coordinate system |
| world_T_coordinateSystem | The transformation of the coordinate system transforming points defined in the local coordinate system (to be rendered) into points defined in the world coordinate system, must be valid |
| length | The length of the three axis of the coordinate system, defined in the units of the local coordinate system |
|
inlinestatic |
Paints a set of correspondences between 2D image points and 3D object points (or their projected 2D counterparts) into a given frame with sub-pixel accuracy.
The projected object points will be painted first, followed by their corresponding image points.
Additionally, a connection between the projected object points and the corresponding image points can be painted, which can be helpful if the given pose is not accurate.
| frame | The frame in which the projected object points and image points will be painted |
| camera | The camera profile defining the projection between 3D object points and camera plane |
| model_T_camera | The camera pose transforming the camera coordinate system to the coordinate system of the object points (with viewing direction along the negative z-axis and y-axis as up vector), must be valid |
| objectPoints | The object points to be projected into the camera frame |
| imagePoints | The image points corresponding to the given object points, the smaller the distance between image points and projected object points the more accurate the camera pose |
| correspondences | The number of given 2D/3D point correspondences, with range [0, infinity) |
| maxSqrError | The maximal square pixel error between a projected object point and the corresponding image point to count as valid, with range [0, infinity) |
| colorValidObjectPoints | The color for valid object points |
| colorValidImagePoints | The color for valid object points |
| colorInvalidObjectPoints | The color for invalid object points |
| colorInvalidImagePoints | The color for invalid image points |
| drawObjectPoints | True, to draw the object points |
| drawImagePoints | True, to draw the image points |
| drawConnections | True, to draw the connections between projected object points and the corresponding image points |
| worker | Optional worker object to distribute the computation |
| tObjectPointSize | The radius of the object points, must be odd with range [tImagePointSize, infinity) |
| tImagePointSize | The radius of the image points, must be odd, with range [1, infinity) |
|
static |
Blends two corresponding frames each with a ratio of fifty percent and paints a set of given feature correspondences.
Both frames must have the same pixel origin, while internally both images will be converted to FORMAT_RGB24 images.
| frame0 | The first frame, must be valid |
| frame1 | The second frame, with same frame type as the first frame |
| points0 | The positions of the feature correspondences in the first frame |
| points1 | The positions of the feature correspondences in the second frame, each point as a corresponding point in the first frame |
| numberPoints | The number of given feature correspondences, with range [0, infinity) |
| color | The color to be used to paint the points, one value per frame channel (order: R, G, B), otherwise nullptr to use black |
| worker | Optional worker object to distribute the computation |
|
static |
Joins two corresponding frames by application of a homography and paints a set of given feature correspondences.
The second frame will be aligned so that it matches the first frame (by application of the homography).
Both frames can have individual frame dimensions.
| frame0 | The first frame, must be valid |
| frame1 | The second frame, with pixel origin as the first frame, must be valid |
| points1_H_points0 | The homography transforming points defined in the first frame to points defined in the second frame, must be valid |
| points0 | The positions of the feature correspondences in the first frame, with range [0, frame0.width())x[0, frame0.height()) |
| points1 | The positions of the feature correspondences in the second frame, each point as a corresponding point in the first frame, with range [0, frame1.width())x[0, frame1.height()) |
| numberPoints | The number of given feature correspondences, with range [0, infinity) |
| fullCoverage | True, to create a frame fully covering both frames; False, to create a frame covering the first frame only |
| result | Returns the resulting joined frame showing the feature correspondences |
| foregroundColor | The foreground color to be used to paint the lines, one value per frame channel, nullptr to use black |
| backgroundColor | Optional background color to be used for each line, nullptr to avoid the usage of a background color |
| startColor | Optional color for the start points of each line, nullptr to avoid the usage of a color for the start point |
| worker | Optional worker object to distribute the computation |
|
static |
Joins two corresponding frames horizontally and paints a set of given feature correspondences.
Both frames can have individual frame dimensions (as long as the pixel origin is identical).
Internally both images will be converted to FORMAT_RGB24 images.
| frame0 | The first frame, must be valid |
| frame1 | The second frame, with same pixel origin as the first frame, must be valid |
| points0 | The positions of the feature correspondences in the first frame |
| points1 | The positions of the feature correspondences in the second frame, each point as a corresponding point in the first frame |
| numberPoints | The number of given feature correspondences, with range [0, infinity) |
| color | The color to be used to paint the points, one value per frame channel (order: R, G, B), otherwise nullptr to use black |
| worker | Optional worker object to distribute the computation |
|
static |
Joins two corresponding frames by application of their orientations and paints a set of given feature correspondences.
| pinholeCamera | The pinhole camera profile defining the project, must be valid |
| frame0 | The first frame with frame dimension as the camera dimension, must be valid |
| frame1 | The second frame, with frame type as the first frame, must be valid |
| orientation0 | The orientation of the first frame, must be valid |
| orientation1 | The orientation of the second frame, must be valid |
| points0 | The positions of the feature correspondences in the first frame, with range [0, frame0.width())x[0, frame0.height()) |
| points1 | The positions of the feature correspondences in the second frame, each point as a corresponding point in the first frame, with range [0, frame1.width())x[0, frame1.height()) |
| numberPoints | The number of given feature correspondences, with range [0, infinity) |
| result | Returns the resulting joined frame showing the feature correspondences |
| foregroundColor | The foreground color to be used to paint the lines, one value per frame channel, nullptr to use black |
| backgroundColor | Optional background color to be used for each line, nullptr to avoid the usage of a background color |
| startColor | Optional color for the start points of each line, nullptr to avoid the usage of a color for the start point |
| worker | Optional worker object to distribute the computation |
|
staticprotected |
Paints a subset of a set of correspondences between 2D image points and 3D object points (or their projected 2D counterparts) into a given frame with sub-pixel accuracy.
The projected object points will be painted first, followed by their corresponding image points.
Additionally, a connection between the projected object points and the corresponding image points can be painted, which can be helpful if the given pose is not accurate.
| frame | The frame in which the projected object points and image points will be painted |
| camera | The camera profile defining the projection between 3D object points and camera plane |
| flippedCamera_T_model | The inverted and flipped camera pose transforming points located in coordinate system of the model to points located in the coordinate system of the flipped camera, must be valid |
| objectPoints | The object points to be projected into the camera frame |
| imagePoints | The image points corresponding to the given object points, the smaller the distance between image points and projected object points the more accurate the camera pose |
| maxSqrError | The maximal square pixel error between a projected object point and the corresponding image point to count as valid, with range [0, infinity) |
| colorValidObjectPoints | The color for valid object points |
| colorValidImagePoints | The color for valid object points |
| colorInvalidObjectPoints | The color for invalid object points |
| colorInvalidImagePoints | The color for invalid image points |
| drawObjectPoints | True, to draw the object points |
| drawImagePoints | True, to draw the image points |
| drawConnections | True, to draw the connections between projected object points and the corresponding image points |
| firstCorrespondence | The first correspondence to handle |
| numberCorrespondences | The number of correspondences to handle |
| tObjectPointSize | The radius of the object points, must be odd with range [tImagePointSize, infinity) |
| tImagePointSize | The radius of the image points, must be odd, with range [1, infinity) |
|
static |
Joins two corresponding frames vertically and paints a set of given feature correspondences.
Both frames can have individual frame dimensions, while internally both images will be converted to FORMAT_RGB24 images.
| frame0 | The first frame, must be valid |
| frame1 | The second frame, with same pixel origin as the first frame, must be valid |
| points0 | The positions of the feature correspondences in the first frame |
| points1 | The positions of the feature correspondences in the second frame, each point as a corresponding point in the first frame |
| numberPoints | The number of given feature correspondences, with range [0, infinity) |
| color | The color to be used to paint the points, one value per frame channel (order: R, G, B), otherwise nullptr to use black |
| worker | Optional worker object to distribute the computation |
|
static |
Paints a feature point with a radius (scale) and orientation.
| frame | The frame in which the feature point will be painted, must be valid |
| position | The position of the feature point in the pixel domain of the frame, with range (-infinity, infinity)x(-infinity, infinity) |
| radius | The radius (scale) of the feature point in pixels, with range (0, infinity) |
| orientation | The orientation of the feature point as CCW angle in radians, with range [0, 2PI) |
| color | The color for the feature point, one value per frame channel |
| shadowColor | The shadow color for the feature point, one value per frame channel, or nullptr to skip painting the shadow |
|
static |
Paints a feature point with a radius (scale) and orientation.
| frame | The frame in which the feature point will be painted, must be valid |
| width | The width of the frame in pixels, with range (0, infinity) |
| height | The height of the frame in pixels, with range (0, infinity) |
| position | The position of the feature point in the pixel domain of the frame, with range (-infinity, infinity)x(-infinity, infinity) |
| radius | The radius (scale) of the feature point in pixels, with range (0, infinity) |
| orientation | The orientation of the feature point as CCW angle in radians, with range [0, 2PI) |
| color | The color for the feature point, one value per frame channel |
| shadowColor | The shadow color for the feature point, one value per frame channel, or nullptr to skip painting the shadow |
| framePaddingElements | The number of padding elements at the end of each frame row, in elements, with range [0, infinity) |
| tChannels | The number of data channels, with range [1, infinity) |
|
static |
Paints feature points with radius (scale) and orientation.
| frame | The frame in which the feature points will be painted, must be valid |
| positions | The positions of the feature points in the pixel domain of the frame, with range (-infinity, infinity)x(-infinity, infinity), can be nullptr if size is 0 |
| radii | The radii (scale) of the feature points in pixels, with range (0, infinity), one per position, can be nullptr if size is 0 |
| orientations | The orientations of the feature points as CCW angles in radians, with range [0, 2PI), one per position, can be nullptr if size is 0 |
| size | The number of feature points to be painted, with range [0, infinity) |
| color | The color for the feature points, one value per frame channel |
| shadowColor | The shadow color for the feature points, one value per frame channel, or nullptr to skip painting the shadow |
| explicitOffset | Optional explicit offset to be added to every feature point location before painting, with range (-infinity, infinity)x(-infinity, infinity) |
| worker | Optional worker object to distribute the computation |
|
inlinestatic |
Paints feature points with radius (scale) and orientation.
| frame | The frame in which the feature points will be painted, must be valid |
| width | The width of the frame in pixels, with range (0, infinity) |
| height | The height of the frame in pixels, with range (0, infinity) |
| positions | The positions of the feature points in the pixel domain of the frame, with range (-infinity, infinity)x(-infinity, infinity), can be nullptr if size is 0 |
| radii | The radii (scale) of the feature points in pixels, with range (0, infinity), one per position, can be nullptr if size is 0 |
| orientations | The orientations of the feature points as CCW angles in radians, with range [0, 2PI), one per position, can be nullptr if size is 0 |
| size | The number of feature points to be painted, with range [0, infinity) |
| color | The color for the feature points, one value per frame channel |
| shadowColor | The shadow color for the feature points, one value per frame channel, or nullptr to skip painting the shadow |
| explicitOffset | Optional explicit offset to be added to every feature point location before painting, with range (-infinity, infinity)x(-infinity, infinity) |
| framePaddingElements | The number of padding elements at the end of each frame row, in elements, with range [0, infinity) |
| worker | Optional worker object to distribute the computation |
| tChannels | The number of data channels, with range [1, infinity) |
|
inlinestaticprotected |
Paints a subset of feature points with radius (scale) and orientation.
| frame | The frame in which the feature points will be painted, must be valid |
| width | The width of the frame in pixels, with range (0, infinity) |
| height | The height of the frame in pixels, with range (0, infinity) |
| positions | The positions of the feature points in the pixel domain of the frame, with range (-infinity, infinity)x(-infinity, infinity) |
| radii | The radii (scale) of the feature points in pixels, with range (0, infinity), one for each position |
| orientations | The orientations of the feature points as CCW angle in radians, with range [0, 2PI), one for each position |
| color | The color for the feature point, one value for each frame data channel |
| shadowColor | The outer color for the object points, one value for each frame data channel or nullptr to skip painting the shadow |
| offsetX | Explicit horizontal offset which will be added to every feature point location before the point is painted, with range (-infinity, infinity) |
| offsetY | Explicit vertical offset which will be added to every feature point location before the point is painted, with range (-infinity, infinity) |
| framePaddingElements | The number of padding elements at the end of each frame row, in elements, with range [0, infinity) |
| firstFeaturePoint | The first feature point to be handled, with range [0, 'size') |
| numberFeaturePoints | The number of feature points to be handled, with range [1, 'size'] |
| tChannels | The number of data channels, with range [1, infinity) |
|
static |
Paints a gravity vector into a given frame.
| camera | The camera profile defining the projection, must be valid |
| frame | The frame in which the gravity vector will be painted, must be valid |
| gravity | The gravity unit vector, defined in the coordinate system of the camera, with default camera pointing towards the negative z-space and y-axis upwards, must be valid |
| thickness | The thickness of the gravity vector, possible values are {1, 3, 5, 7} |
| color | The color to be used to paint the gravity vector, nullptr to use black |
| segments | The number of segments the gravity vector will be separated into, for cameras with distortion, with range [1, infinity) |
| position | The starting position of the gravity vector, defined in the camera coordinate system |
| length | The length of the gravity to be painted, defined in units of the camera coordinate system, with range (0, infinity) |
|
inlinestatic |
Paints a set of 2D image points into a given frame with sub-pixel accuracy.
| frame | The frame in which the image points will be painted |
| imagePoints | The image points to be painted |
| size | The number of 2D points, with range [0, infinity) |
| color | The color for the image points |
| worker | Optional worker object to distribute the computation |
| tPointSize | The radius of the image points, must be odd with range [1, infinity) |
|
inlinestaticprotected |
Paints subset of a set of 2D image points into a given frame with sub-pixel accuracy.
| frame | The frame in which the image points will be painted |
| imagePoints | The image points to be painted |
| color | The color for the image points |
| firstImagePoint | The first image point to handle |
| numberImagePoints | The number of image points to handle |
| tPointSize | The radius of the image points, must be odd with range [1, infinity) |
|
inlinestatic |
Paints a line into a given frame.
| frame | The frame in which the line will be drawn |
| startPosition | The start position of the line |
| stopPosition | The stop position of the line |
| color | The color to be used for painting, one value per frame channel, nullptr to use black |
| subPixel | True to paint the line with sub-pixel accuracy; False to paint with pixel accuracy |
|
static |
Paints a (projected) 3D line into a given frame.
| frame | The frame in which the line will be painted, must be valid |
| cameraClipper | The camera clipper to be used when painting the line, must be valid |
| flippedCamera_T_world | The transformation transforming world to the flipped camera, the flipped camera points towards the positive z-space with y-axis down, must be valid |
| objectPoint0 | The start 3D object point of the 3D line, defined in world |
| objectPoint1 | The end 3D object point of the 3D line, defined in world |
| segments | The number of segments in which the line will be separated, with range [1, infinity), the more segments the better the adjustment to the camera distortion (if any) |
| foregroundColor | The foreground color of the plane, nullptr to skip the painting with the foreground color |
| backgroundColor | The background color of the plane, nullptr to skip the painting with the background color |
|
static |
Paints a (projected) 3D line into a given frame.
| frame | The frame in which the line will be painted, must be valid |
| flippedCamera_T_world | The transformation transforming world to the flipped camera, the flipped camera points towards the positive z-space with y-axis down, must be valid |
| anyCamera | The camera profile defining the projection, must be valid |
| objectPoint0 | The start 3D object point of the 3D line, defined in world |
| objectPoint1 | The end 3D object point of the 3D line, defined in world |
| segments | The number of segments in which the line will be separated, with range [1, infinity), the more segments the better the adjustment to the camera distortion (if any) |
| foregroundColor | The foreground color of the plane, nullptr to skip the painting with the foreground color |
| backgroundColor | The background color of the plane, nullptr to skip the painting with the background color |
|
inlinestatic |
Paints a set of lines into a given frame with sub-pixel accuracy.
| frame | The frame in which the lines will be drawn, must be valid |
| startPositions | The start positions of the lines |
| stopPositions | The stop positions of the lines, each stop position must have a corresponding start position |
| numberLines | The number of lines, with range [0, infinity) |
| color | The color to be used for painting, one value per frame channel, nullptr to use black |
| worker | Optional worker object to distribute the computation |
| tSize | The thickness of the lines in pixels, must be odd with range [1, infinity) |
|
inlinestatic |
Paints a set of lines into a given frame.
| frame | The frame in which the lines will be drawn |
| startPositions | The start positions of the lines |
| stopPositions | The stop positions of the lines, each stop position must have a corresponding start position |
| numberLines | The number of lines, with range [0, infinity) |
| color | The color to be used for painting, one value per frame channel, nullptr to use black |
| worker | Optional worker object to distribute the computation |
| subPixel | True to paint the lines with sub-pixel accuracy; False to paint with pixel accuracy |
| offsetStartPositions | The offset to be added to each start position before painting the line, with range (-infinity, infinity)x(-infinity, infinity) |
| offsetStopPositions | The offset to be added to each stop position before painting the line, with range (-infinity, infinity)x(-infinity, infinity) |
|
inlinestatic |
Paints a set of lines with foreground and background colors into a given frame with sub-pixel accuracy.
| frame | The frame in which the lines will be drawn, must be valid |
| startPositions | The start positions of the lines |
| stopPositions | The stop positions of the lines, each stop position must have a corresponding start position |
| numberLines | The number of lines, with range [0, infinity) |
| colorForeground | The foreground color to be used for painting, one value per frame channel, nullptr to use black |
| colorBackground | The background color to be used for painting, one value per frame channel, nullptr to use black |
| worker | Optional worker object to distribute the computation |
| tSizeForeground | The thickness of the foreground lines in pixels, must be odd with range [1, infinity) |
| tSizeBackground | The thickness of the background lines in pixels, must be odd with range (tSizeForeground, infinity) |
|
inlinestaticprotected |
Paints a subset of a set of lines into a given frame.
| frame | The frame in which the lines are drawn |
| startPositions | Start positions of the lines |
| stopPositions | Stop positions of the lines, each end position must have a corresponding start position |
| color | The color to be used to paint the lines, one value per frame channel, nullptr to use black |
| subPixel | True, to paint the lines with sub-pixel accuracy; False, to paint the lines with pixel accuracy |
| offsetStartPositions | The offset which will be added to each start position before painting the line, with range (-infinity, infinity)x(-infinity, infinity) |
| offsetStopPositions | The offset which will be added to each stop position before painting the line, with range (-infinity, infinity)x(-infinity, infinity) |
| firstLine | First line to be handled |
| numberLines | The number of lines to be handled |
|
inlinestaticprotected |
Paints a subset of a set of lines into a given frame with sub-pixel accuracy.
| frame | The frame in which the lines are drawn, must be valid |
| startPositions | Start positions of the lines |
| stopPositions | Stop positions of the lines, each end position must have a corresponding start position |
| color | The color to be used to paint the lines, one value per frame channel, nullptr to use black |
| firstLine | First line to be handled |
| numberLines | The number of lines to be handled |
| tSize | The thickness of the lines in pixels, must be odd with range [1, infinity) |
|
inlinestaticprotected |
Paints a subset of a set of lines into a given frame with sub-pixel accuracy.
| frame | The frame in which the lines are drawn, must be valid |
| startPositions | Start positions of the lines |
| stopPositions | Stop positions of the lines, each end position must have a corresponding start position |
| colorForeground | Foreground color to be used to paint the points, one value per frame channel, nullptr to use black |
| colorBackground | Background color to be used to paint the points, one value per frame channel, nullptr to use black |
| firstLine | First line to be handled |
| numberLines | The number of lines to be handled |
| tSizeForeground | The thickness of the foreground lines in pixels, must be odd with range [1, infinity) |
| tSizeBackground | The thickness of the background lines in pixels, must be odd with range (tSizeForeground, infinity) |
|
static |
Paints / blends a binary 8 bit mask into a given frame with identical frame dimension.
| frame | The frame in which the mask will be painted, must be valid |
| mask | The binary mask frame, with frame dimension matching with the given frame, must be valid |
| maskValue | The mask value defining pixels to be painted as masked, may be 0x00 or 0xFF |
| worker | Optional worker object to distribute the computation |
|
inlinestatic |
Paints a set of projected 3D object points into a given frame with sub-pixel accuracy.
| frame | The frame in which the projected object points will be painted |
| anyCamera | The camera profile defining the projection from 3D object points to the camera plane |
| world_T_camera | The camera pose transforming camera to world, with default viewing direction towards the negative z-space and y-axis as up vector, must be valid |
| objectPoints | The object points to be projected into the camera frame, defined in world coordinates |
| size | The number of 3D points, with range [0, infinity) |
| color | The color for the object points |
| worker | Optional worker object to distribute the computation |
| tPointSize | The radius of the object points, must be odd with range [1, infinity) |
|
inlinestaticprotected |
Paints a subset of a set of projected 3D object points into a given frame with sub-pixel accuracy.
| frame | The frame in which the projected object points will be painted |
| anyCamera | The camera profile defining the projection between 3D object points and camera plane, must be valid |
| flippedCamera_T_world | The inverted and flipped camera pose from which the 3D object points are observed, with default camera pointing towards the positive z-space with y-axis down, must be valid |
| objectPoints | The object points to be projected into the camera frame |
| color | The color for the object points |
| firstObjectPoint | The first object point to handle |
| numberObjectPoints | The number of object points to handle |
| tPointSize | The radius of the object points, must be odd with range [1, infinity) |
|
inlinestatic |
Paints several paths into a given frame with sub-pixel accuracy.
A path is a chain of connected image points with arbitrary length (start and end points are not connected).
The colors of the paths are determined by interpolation between two color values.
| frame | The frame in which the paths will be painted |
| paths | The individual paths to be painted |
| size | The number of paths, with range [0, infinity) |
| color0 | The first color value, one value per frame channel |
| color1 | The second color value, one value per frame channel |
| factors | The interpolation factors, one factor per path, with range [0, 1] |
| worker | Optional worker object to distribute the computation |
| tSize | The thickness of the paths in pixels, must be odd with range [1, infinity) |
|
inlinestatic |
Paints several paths into a given frame with sub-pixel accuracy.
A path is a chain of connected image points with arbitrary length (start and end points are not connected).
| frame | The frame in which the paths will be painted |
| paths | The individual paths to be painted |
| size | The number of paths, with range [0, infinity) |
| color | The color to be used for painting, one value per frame channel, nullptr to use black |
| worker | Optional worker object to distribute the computation |
| tSize | The thickness of the paths in pixels, must be odd with range [1, infinity) |
|
inlinestaticprotected |
Paints a subset of several paths into a given frame with sub-pixel accuracy.
The colors of the paths are determined by an interpolation between two separate color values.
| frame | The frame in which the paths will be painted |
| paths | The individual paths to be painted |
| color0 | The first color value, one value per frame channel |
| color1 | The second color value, one value per frame channel |
| factors | The interpolation factor, one factor for each path, with range [0, 1] |
| firstPath | The first path to be handled |
| numberPaths | The number of paths to handle |
| tSize | The thickness of the paths in pixels, must be odd with range [1, infinity) |
|
inlinestaticprotected |
Paints a subset of several paths into a given frame with sub-pixel accuracy.
| frame | The frame in which the paths will be painted |
| paths | The individual paths to be painted |
| color | The color to be used to paint the points, one value per frame channel, nullptr to apply black |
| firstPath | The first path to be handled |
| numberPaths | The number of paths to handle |
| tSize | The thickness of the paths in pixels, must be odd with range [1, infinity) |
|
static |
Paints a 3D plane into the frame, further the origin of the plane is painted.
This function determines a worthwhile expansion of the plane best matching with the scene.
| frame | The frame in which the plane is painted |
| world_T_camera | The camera pose from which the 3D object points are observed with default viewing direction towards the negative z-space and y-axis as up vector, transforming camera to world, must be valid |
| camera | The camera profile defining the project, must be valid |
| planeTransformation | The transformation having the origin on the plane and the z-axis parallel to the plane's normal |
| bins | The number of bins in both directions to be painted, with range [1, infinity) |
| foregroundColor | The foreground color of the plane, nullptr to skip the painting with the foreground color |
| backgroundColor | The background color of the plane, nullptr to skip the painting with the background color |
| expansion | Optional resulting plane's expansion in the scene in x-axis and y-axis defined in world coordinates, with range (0, infinity) |
|
static |
Paints a 3D plane into the frame, further the origin of the plane is painted.
| frame | The frame in which the plane is painted |
| flippedCamera_T_world | The camera posed converting world to the flipped camera coordinate system (a camera coordinate system pointing towards the positive z-space), must be valid |
| camera | The camera profile defining the project, must be valid |
| planeTransformation | The transformation having the origin on the plane and the z-axis parallel to the plane's normal |
| expansion | The plane's expansion for the scene in x-axis and y-axis defined in world coordinates, with range (0, infinity) |
| bins | The number of bins in both directions to be painted, with range [1, infinity) |
| foregroundColor | The foreground color of the plane, nullptr to skip the painting with the foreground color |
| backgroundColor | The background color of the plane, nullptr to skip the painting with the background color |
|
inlinestatic |
Paints (projected) object points and image points into a given frame.
| frame | The frame receiving the points |
| world_T_camera | The transformations between camera and the world, must be valid |
| pinholeCamera | The pinhole camera profile defining the projection, with dimension equal to the frame dimension |
| objectPoints | The object points to be painted, defined in world |
| numberObjectPoints | Number of provided object points, with range [0, infinity) |
| imagePoints | Image points to be painted |
| numberImagePoints | Number of provided image points, with range [0, infinity) |
| distortProjectedObjectPoints | True, to apply the distortion parameters of the camera to the projected object points |
| radiusObjectPoints | Radius of the object point paintings in pixels |
| radiusImagePoints | Radius of the image point paintings in pixels |
| colorObjectPoints | Color to be used to paint the object points, one value per frame channel, otherwise white is used |
| colorImagePoints | Color to be used to paint the image points, one value per frame channel, otherwise white is used |
|
static |
Paints a set of image points into a given frame.
| frame | The frame receiving the points |
| imagePoints | Image points to be painted |
| number | The number of provided image points, with range [0, infinity) |
| radius | The radius of the paintings in pixels, with range [0, infinity) |
| colorInner | Inner color to be used, one value per frame channel, otherwise white is used |
| colorOuter | Outer color to be used, one value per frame channel, otherwise black is used |
|
static |
Paints (projected) object points and image points into a given frame.
| frame | The frame receiving the points, must be valid |
| flippedCamera_T_world | The transformation between the world and the flipped camera, must be valid |
| pinholeCamera | The pinhole camera profile defining the projection, with dimension equal to the frame dimension |
| objectPoints | The object points to be painted, defined in world |
| numberObjectPoints | Number of provided object points, with range [0, infinity) |
| imagePoints | Image points to be painted |
| numberImagePoints | Number of provided image points, with range [0, infinity) |
| distortProjectedObjectPoints | True, to apply the distortion parameters of the camera to the projected object points |
| radiusObjectPoints | Radius of the object point paintings in pixels |
| radiusImagePoints | Radius of the image point paintings in pixels |
| colorObjectPoints | Color to be used to paint the object points, one value per frame channel, otherwise white is used |
| colorImagePoints | Color to be used to paint the image points, one value per frame channel, otherwise white is used |
|
inlinestatic |
Paints quads that are located on a 3D plane into a given frame.
| frame | The frame receiving the points |
| world_T_camera | The camera pose from which the 3D object points are observed with default viewing direction towards the negative z-space and y-axis as up vector, transforming camera to world, must be valid |
| camera | The camera profile defining the projection, with dimension equal to the frame dimension |
| quadOrigin | Origin of the upper left quad position, defined in world |
| quadHorizontal | Vector starting at the quad origin and defining the horizontal direction of the quads, defined in world |
| quadVertical | Vector starting at the quad origin and defining the vertical direction of the quads, defined in world |
| horizontalBins | Number of horizontal bins to be painted |
| verticalBins | Number of vertical bins to be painted |
| color | The color to be used to paint the points, one value per frame channel, otherwise black is used |
|
static |
Paints quads that are located on a 3D plane into a given frame.
|
static |
Paints a 2D triangle into a given frame with sub-pixel accuracy.
| frame | The frame receiving the triangle |
| triangle | The triangle to be painted, must be valid |
| color | The color to be used for painting the triangle edges, one value per frame channel, nullptr to use black |
| tSize | The thickness of the triangle edges in pixels, must be odd with range [1, infinity) |
|
inlinestatic |
Paints a (projected) 3D triangle into a given frame.
| frame | The frame in which the triangle will be painted, must be valid |
| flippedCamera_T_world | The transformation transforming world to the flipped camera, the flipped camera points towards the positive z-space with y-axis down, must be valid |
| anyCamera | The camera profile defining the projection, must be valid |
| triangle | The triangle to be painted |
| color | The color to be used to paint the triangle edges, nullptr to use black |
| tSize | The thickness of the triangle outline in pixels, must be odd with range [1, infinity) |
|
static |
Paints a projected 3D triangle into a given frame.
This function is using a triangle clipper allowing to avoid re-projection issues when drawing triangles with camera profiles with strong distortions.
| frame | The frame in which the triangles will be painted, must be valid |
| flippedCamera_T_world | The transformation transforming world to the flipped camera, the flipped camera points towards the positive z-space with y-axis down, must be valid |
| cameraClipper | The camera clipper to be used to project the 3D triangle, must be valid |
| triangle | The 3D triangle to point, must be valid |
| segments | The number of segments each triangle edge will be composed of, with range [1, infinity) |
| color | The color to be used to paint the triangle edges, nullptr to use black |
| tSize | The thickness of the triangle outline in pixels, must be odd with range [1, infinity) |
|
static |
Paints a set of 2D triangles into a given frame with sub-pixel accuracy.
| frame | The frame receiving the triangles |
| triangles | The triangles to be painted |
| color | The color to be used for painting the triangle edges, one value per frame channel, nullptr to use black |
| worker | Optional worker to distribute the computation |
| tSize | The thickness of the triangle edges in pixels, must be odd with range [1, infinity) |
|
static |
Paints (projected) 3D triangles into a given frame.
| frame | The frame in which the triangles will be painted, must be valid |
| flippedCamera_T_world | The transformation transforming world to the flipped camera, the flipped camera points towards the positive z-space with y-axis down, must be valid |
| anyCamera | The camera profile defining the projection, must be valid |
| triangles | The 3D triangles to be painted, defined in world, can be nullptr if 'numberTriangles == 0' |
| numberTriangles | Number of triangles to be painted, with range [0, infinity) |
| color | The color to be used to paint the triangle edges, nullptr to use black |
| worker | Optional worker to distribute the computation |
| tSize | The thickness of the triangle outline in pixels, must be odd with range [1, infinity) |
|
inlinestaticprotected |
Projects and paints a subset of 3D triangles into a given frame with sub-pixel accuracy.
| frame | The frame in which the triangle will be painted, must be valid |
| flippedCamera_T_world | The transformation transforming world to the flipped camera, the flipped camera points towards the positive z-space with y-axis down, must be valid |
| anyCamera | The camera profile defining the projection, must be valid |
| triangles | The triangles to be painted, defined in world, must be valid |
| color | The color to be used to paint the triangle edges, nullptr to use black |
| firstTriangle | The first triangle to be handled |
| numberTriangles | The number of triangle to handle |
| tSize | The thickness of the triangle edges in pixels, must be odd with range [1, infinity) |
|
inlinestaticprotected |
Paints a subset of 2D triangles into a given frame with sub-pixel accuracy.
| frame | The frame receiving the triangles |
| triangles | The triangles to be painted |
| color | The color to be used to paint the triangle points, one value per frame channel, otherwise black is used |
| firstTriangle | The first triangle to be handled |
| numberTriangles | The number of triangle to handle |
| tSize | The thickness of the triangle edges in pixels, must be odd with range [1, infinity) |
|
static |
Paints a (projected) wire-frame cone into a given frame.
| frame | The frame being drawn to, must be valid |
| flippedCamera_T_cone | Inverted and flipped pose of the camera w.r.t the cone |
| pinholeCamera | The pinhole camera profile defining the projection, with dimension equal to the frame dimension |
| cone | The cone to be painted |
| distortProjectedObjectPoints | True, to apply the distortion parameters of the camera to the projected object points |
| worker | Optional worker to distribute the computation |
| color | The color for the drawn lines |
| numCircles | Number of axis-slicing circles to draw along the cone's vertical span, with range [2, infinity) |
| numVerticalLines | Number axis-parallel lines to draw around the cone, with range [0, infinity) |
| numSamples | Number of lines to draw to approximate the projection of each circle, with range [3, infinity) |
|
static |
Paints a (projected) wire-frame cylinder into a given frame.
| frame | The frame being drawn to, must be valid |
| flippedCamera_T_cylinder | Inverted and flipped pose of the camera w.r.t the cylinder |
| pinholeCamera | The pinhole camera profile defining the projection, with dimension equal to the frame dimension |
| cylinder | The cylinder to be painted |
| distortProjectedObjectPoints | True, to apply the distortion parameters of the camera to the projected object points |
| worker | Optional worker to distribute the computation |
| color | The color for the drawn lines |
| numCircles | Number of axis-slicing circles to draw along the cylinder's vertical span, with range [2, infinity) |
| numVerticalLines | Number axis-parallel lines to draw around the cylinder, with range [0, infinity) |
| numSamples | Number of lines to draw to approximate the projection of each circle, with range [3, infinity) |
|
static |
Reads a camera profile from a binary input stream.
| inputStream | The input stream providing the information |
| pinholeCamera | The resulting pinhole camera profile |
|
static |
Reads a database information from a binary input stream.
| inputStream | The input stream providing the information |
| database | The database receiving the information, the given database will be cleared before the information is assigned |
|
static |
Visualizes image point information of a tracking database for a specific pose id.
| database | The database holding the tracking information to be visualized |
| poseId | The id of the pose for which the visualization will be created |
| frame | The frame receiving the visualization of the database |
| colorImagePoints | The color for feature points, one value per frame channel |
| colorImagePointsInstable | The color for instable paths, one value per frame channel |
| colorImagePointsStable | The color for stable paths, one value per frame channel |
| maximalPathLength | The maximal length (number of concurrent frames) of paths of feature points that will be visualized, with range [0, infinity) |
| stablePathLength | The length (number of concurrent frames) of paths so that they count as stable, with range [1, infinity) |
| transformation | The transformation matrix which will be applied to each feature point position before the position is visualized |
| worker | Optional worker to distribute the computation |
|
static |
Writes a camera profile to a binary output stream.
| pinholeCamera | The pinhole camera profile to be written |
| outputStream | The output stream receiving the information |
|
static |
Writes the information of a database to a given output stream as binary information.
| database | The database to be written |
| outputStream | The output stream receiving the information |