FlowEngine 7.517
Photogrammetry Software Development Kit
Loading...
Searching...
No Matches
FlowEngine::Equirectangular Class Referencefinal

Utility class to generate equirectangular-projection images and decompose them. More...

#include <Equirectangular.h>

Static Public Member Functions

static FLE_DLL Result generateEquirectangularImage (const StereoPointCloudInterface &stereoPointCloud, ConstBuffer< double > pose, Image inOutImage)
 
static FLE_DLL Result decomposeEquirectangularImage (ConstBuffer< double > pose, Image image, double fieldOfView, Buffer< CameraInterface * > inOutCameras, Buffer< Image > inOutBubbleImages=Buffer< Image >())
 

Detailed Description

Utility class to generate equirectangular-projection images and decompose them.

Member Function Documentation

◆ decomposeEquirectangularImage()

FLE_DLL Result FlowEngine::Equirectangular::decomposeEquirectangularImage ( ConstBuffer< double >  pose,
Image  image,
double  fieldOfView,
Buffer< CameraInterface * >  inOutCameras,
Buffer< Image inOutBubbleImages = BufferImage >() 
)
static

Decomposes an equirectangular image.

  • If inOutCameras is specified (i.e. is a buffer of at least 6 valid CameraInterface objects), then this function will create 6 linked cameras paired with a valid CameraCalibration.
  • If outBubbleImages is specified (i.e. is a buffer of a at least 6 Image structures), then the function will copy the bubble images to each Image contained in the buffer. Each Image should have appropriate dimensions: given W = image.width and H = image.height then the expected width and height is: (int) max( W, H ) / 3
    Parameters
    [in]posea 4x4 matrix (row major) describing the position and orientation of the virtual camera w.r.t. the point cloud.
    [in]imagethe equirectangular image to be decomposed.
    [in]fieldOfViewthe field of view of the output decomposed cameras. Sensible values should account for a small overlap to avoid visibile seems between different views. Valid range is [90.0, 120.0] degrees. Use 0.0 to use the default value (92.0 degrees).
    [in,out]inOutCameras(optional) a buffer of at least 6 cameras that will be linked together
    [in,out]inOutBubbleImages(optional) a buffer of at least 6 valid Image that will receive the undistorted bubble view images.
  • Result::Success – if inOutCameras is filled with 6 linked cameras.
  • Result::InvalidArgument
    • if pose is not a valid buffer.
    • if fieldOfView is not in the valid range.
    • if both inOutImage and inOutBubbleImages are not valid buffers.
  • Result::BufferTooSmall
    • if inOutCameras is not at least 6 elements long.
    • if outBubbleImages is a valid buffer but it's not at least 6 elements long or each image is of expected dimensions (see note).

◆ generateEquirectangularImage()

Result FlowEngine::Equirectangular::generateEquirectangularImage ( const StereoPointCloudInterface stereoPointCloud,
ConstBuffer< double >  pose,
Image  inOutImage 
)
static

Generates an equirectangular image with the supplied point cloud.

Parameters
[in]posea 4x4 matrix (row major) describing the position and orientation of the virtual camera w.r.t. the point cloud.
[in]stereoPointClouda valid dense point cloud. Its points (and colors, if present) will be used to generate the equirectangular image.
[in,out]inOutImagean image data, filled with the requested width and height and a buffer big enough to receive the image data.
Returns
One of the following result codes: