|
supereight
|
Helper wrapper to allocate and de-allocate octants in the octree. More...
Namespaces | |
| algorithms | |
| allocator | |
| colours | |
| fetcher | |
| integrator | |
| Helper wrapper to integrate data in the octree. | |
| io | |
| keyops | |
| math | |
| meshing | |
| octantops | |
| preprocessor | |
| propagator | |
| raycaster | |
| str_utils | |
| updater | |
| visitor | |
| yaml | |
Typedefs | |
| using | Value = float |
| using | Status = int |
| template<typename FaceT > | |
| using | Mesh = std::vector< FaceT > |
| Meshes are represented as lists of faces. More... | |
| typedef MeshFace< 3 > | Triangle |
| typedef Mesh< Triangle > | TriangleMesh |
| typedef MeshFace< 4 > | Quad |
| typedef Mesh< Quad > | QuadMesh |
| typedef Data< se::Field::Occupancy, se::Colour::Off, se::Semantics::Off > | OccupancyData |
| typedef Data< se::Field::Occupancy, se::Colour::On, se::Semantics::Off > | OccupancyColData |
| typedef Data< se::Field::Occupancy, se::Colour::Off, se::Semantics::On > | OccupancySemData |
| typedef Data< se::Field::Occupancy, se::Colour::On, se::Semantics::On > | OccupancyColSemData |
| typedef DataConfig< se::Field::Occupancy, se::Colour::Off, se::Semantics::Off > | OccupancyDataConfig |
| typedef DataConfig< se::Field::Occupancy, se::Colour::On, se::Semantics::Off > | OccupancyColDataConfig |
| typedef DataConfig< se::Field::Occupancy, se::Colour::Off, se::Semantics::On > | OccupancySemDataConfig |
| typedef DataConfig< se::Field::Occupancy, se::Colour::On, se::Semantics::On > | OccupancyColSemDataConfig |
| typedef Data< se::Field::TSDF, se::Colour::Off, se::Semantics::Off > | TSDFData |
| typedef Data< se::Field::TSDF, se::Colour::On, se::Semantics::Off > | TSDFColData |
| typedef Data< se::Field::TSDF, se::Colour::Off, se::Semantics::On > | TSDFSemData |
| typedef Data< se::Field::TSDF, se::Colour::On, se::Semantics::On > | TSDFColSemData |
| typedef DataConfig< se::Field::TSDF, se::Colour::Off, se::Semantics::Off > | TSDFDataConfig |
| typedef DataConfig< se::Field::TSDF, se::Colour::On, se::Semantics::Off > | TSDFColDataConfig |
| typedef DataConfig< se::Field::TSDF, se::Colour::Off, se::Semantics::On > | TSDFSemDataConfig |
| typedef DataConfig< se::Field::TSDF, se::Colour::On, se::Semantics::On > | TSDFColSemDataConfig |
| template<se::Field FldT = se::Field::TSDF, se::Colour ColB = se::Colour::Off, se::Semantics SemB = se::Semantics::Off, se::Res ResT = se::Res::Single, int BlockSize = 8> | |
| using | MapD = Map< Data< FldT, ColB, SemB >, ResT, BlockSize > |
| template<se::Res ResT = se::Res::Single, int BlockSize = 8> | |
| using | OccupancyMap = Map< OccupancyData, ResT, BlockSize > |
| template<se::Res ResT = se::Res::Single, int BlockSize = 8> | |
| using | OccupancyColMap = Map< OccupancyColData, ResT, BlockSize > |
| template<se::Res ResT = se::Res::Single, int BlockSize = 8> | |
| using | OccupancySemMap = Map< OccupancySemData, ResT, BlockSize > |
| template<se::Res ResT = se::Res::Single, int BlockSize = 8> | |
| using | OccupancyColSemMap = Map< OccupancyColSemData, ResT, BlockSize > |
| template<se::Res ResT = se::Res::Single, int BlockSize = 8> | |
| using | TSDFMap = Map< TSDFData, ResT, BlockSize > |
| template<se::Res ResT = se::Res::Single, int BlockSize = 8> | |
| using | TSDFColMap = Map< TSDFColData, ResT, BlockSize > |
| template<se::Res ResT = se::Res::Single, int BlockSize = 8> | |
| using | TSDFSemMap = Map< TSDFSemData, ResT, BlockSize > |
| template<se::Res ResT = se::Res::Single, int BlockSize = 8> | |
| using | TSDFColSemMap = Map< TSDFColSemData, ResT, BlockSize > |
| typedef uint64_t | key_t |
| key = 1 bit buffer + 57 bits of morton code + 6 bits of scale information The maxium scale is limited by 57 / 3 = 19 scales More... | |
| typedef uint64_t | code_t |
| The type of the Morton code. More... | |
| typedef uint64_t | scale_t |
| The type of the scale in the morton code. More... | |
| typedef unsigned int | idx_t |
| Child or voxel index type. More... | |
| typedef float | field_t |
| The type of the stored field (e.g. TSDF, ESDF or occupancy) More... | |
| typedef Eigen::Matrix< field_t, 3, 1 > | field_vec_t |
| typedef se::field_t | weight_t |
| The type of the field type weight. More... | |
| typedef float | time_stamp_t |
| The type of the time stamp. More... | |
| typedef uint32_t | rgba_t |
| The type of the colour. More... | |
| typedef short | semantics_t |
| The type of the semantic class. More... | |
Functions | |
| static uint32_t | pack_rgba (const uint8_t r, const uint8_t g, const uint8_t b, const uint8_t a) |
| Pack the individual RGBA channels into a single 32-bit unsigned integer. More... | |
| static uint32_t | pack_rgba (const Eigen::Vector4f &color) |
| Pack a color stored in an Eigen vector into a single 32-bit unsigned integer. More... | |
| static uint32_t | pack_rgba (const Eigen::Vector3f &color) |
| Pack a color stored in an Eigen vector into a single 32-bit unsigned integer. More... | |
| static uint32_t | pack_rgba (const Eigen::Vector4i &color) |
| Pack a color stored in an Eigen vector into a single 32-bit unsigned integer. More... | |
| static uint32_t | pack_rgba (const Eigen::Vector3i &color) |
| Pack a color stored in an Eigen vector into a single 32-bit unsigned integer. More... | |
| static uint8_t | r_from_rgba (const uint32_t rgba) |
| Get the value of the red channel from a 32-bit packed RGBA value. More... | |
| static uint8_t | g_from_rgba (const uint32_t rgba) |
| Get the value of the green channel from a 32-bit packed RGBA value. More... | |
| static uint8_t | b_from_rgba (const uint32_t rgba) |
| Get the value of the blue channel from a 32-bit packed RGBA value. More... | |
| static uint8_t | a_from_rgba (const uint32_t rgba) |
| Get the value of the alpha channel from a 32-bit packed RGBA value. More... | |
| static uint32_t | blend (const uint32_t rgba_1, const uint32_t rgba_2, const float alpha) |
| Blend two RGBA colors based on the value of the blending parameter alpha. More... | |
| static void | rgb_to_rgba (const uint8_t *rgb, uint32_t *rgba, size_t num_pixels) |
| static void | rgba_to_rgb (const uint32_t *rgba, uint8_t *rgb, size_t num_pixels) |
| void | depth_to_rgba (uint32_t *depth_RGBA_image_data, const float *depth_image_data, const Eigen::Vector2i &depth_image_res, const float min_depth, const float max_depth) |
| Convert a depth image to an RGBA image to allow visualizing it. More... | |
| int | save_depth_png (const float *depth_image_data, const Eigen::Vector2i &depth_image_res, const std::string &filename, const float scale=1000.0f) |
| Save a depth image with depth values in metres to a PNG. More... | |
| int | save_depth_png (const uint16_t *depth_image_data, const Eigen::Vector2i &depth_image_res, const std::string &filename) |
| Save a depth image with depth values in millimetres to a PNG. More... | |
| int | load_depth_png (float **depth_image_data, Eigen::Vector2i &depth_image_res, const std::string &filename, const float inverse_scale=1.0f/1000.0f) |
| Load a PNG depth image into a buffer with depth values in metres. More... | |
| int | load_depth_png (uint16_t **depth_image_data, Eigen::Vector2i &depth_image_res, const std::string &filename) |
| Load a PNG depth image into a buffer with depth values in millimetres. More... | |
| int | save_depth_pgm (const float *depth_image_data, const Eigen::Vector2i &depth_image_res, const std::string &filename, const float scale=1000.0f) |
| Save a depth image with depth values in metres to a P2 PGM. More... | |
| int | save_depth_pgm (const uint16_t *depth_image_data, const Eigen::Vector2i &depth_image_res, const std::string &filename) |
| Save a depth image with depth values in millimetres to a P2 PGM. More... | |
| int | load_depth_pgm (float **depth_image_data, Eigen::Vector2i &depth_image_res, const std::string &filename, const float inverse_scale=1.0f/1000.0f) |
| Load a P2 PGM depth image into a buffer with depth values in metres. More... | |
| int | load_depth_pgm (uint16_t **depth_image_data, Eigen::Vector2i &depth_image_res, const std::string &filename) |
| Load a P2 PGM depth image into a buffer with depth values in millimeters. More... | |
| static Eigen::Vector2i | round_pixel (const Eigen::Vector2f &pixel_f) |
| static void | convert_to_output_rgba_img (const se::Image< uint32_t > &input_rgba_img, uint32_t *output_rgba_img_data) |
| static void | convert_to_output_depth_img (const se::Image< float > &input_depth_img, uint32_t *output_depth_img_data) |
| static void | convert_to_output_depth_img (const se::Image< float > &input_depth_img, const float min_depth, const float max_depth, uint32_t *output_depth_img_data) |
| static Eigen::Vector3f | get_sample_coord (const Eigen::Vector3i &octant_coord, const int octant_size) |
| compute the sample coordinates for a given octant coordinate More... | |
| template<typename ConfigT > | |
| float | compute_three_sigma (const se::field_t depth_value, const float sigma_min, const float sigma_max, const ConfigT config) |
| Compute the estimated uncertainty boundary for a given depth measurement. More... | |
| template<typename ConfigT > | |
| float | compute_tau (const se::field_t depth_value, const float tau_min, const float tau_max, const ConfigT config) |
| Compute the estimated wall thickness tau for a given depth measurement. More... | |
| template<typename OctreeT > | |
| QuadMesh | octree_structure_mesh (OctreeT &octree) |
| Extract the octree structure as a quadrilateral mesh. More... | |
| std::ostream & | operator<< (std::ostream &os, const FieldDataConfig< se::Field::Occupancy > &c) |
| std::ostream & | operator<< (std::ostream &os, const FieldDataConfig< se::Field::TSDF > &c) |
| template<se::Colour ColB> | |
| std::ostream & | operator<< (std::ostream &os, const ColourDataConfig< ColB > &) |
| std::ostream & | operator<< (std::ostream &os, const ColourDataConfig< se::Colour::On > &c) |
| template<se::Semantics SemB> | |
| std::ostream & | operator<< (std::ostream &os, const SemanticDataConfig< SemB > &) |
| std::ostream & | operator<< (std::ostream &os, const SemanticDataConfig< se::Semantics::On > &c) |
| template<se::Field FldT, se::Colour ColB, se::Semantics SemB> | |
| std::ostream & | operator<< (std::ostream &os, const DataConfig< FldT, ColB, SemB > &c) |
| template<se::Field FldT, se::Colour ColB, se::Semantics SemB> | |
| void | set_invalid (Data< FldT, ColB, SemB > &data) |
| template<se::Colour ColB, se::Semantics SemB> | |
| void | set_invalid (Data< se::Field::TSDF, ColB, SemB > &data) |
| template<se::Colour ColB, se::Semantics SemB> | |
| void | set_invalid (Data< se::Field::Occupancy, ColB, SemB > &data) |
| template<se::Field FldT, se::Colour ColB, se::Semantics SemB> | |
| bool | is_valid (const Data< FldT, ColB, SemB > &data) |
| template<se::Colour ColB, se::Semantics SemB> | |
| bool | is_valid (const Data< se::Field::TSDF, ColB, SemB > &data) |
| template<se::Colour ColB, se::Semantics SemB> | |
| bool | is_valid (const Data< se::Field::Occupancy, ColB, SemB > &data) |
| template<se::Field FldT, se::Colour ColB, se::Semantics SemB> | |
| bool | is_invalid (const Data< FldT, ColB, SemB > &data) |
| template<se::Colour ColB, se::Semantics SemB> | |
| bool | is_invalid (const Data< se::Field::TSDF, ColB, SemB > &data) |
| template<se::Colour ColB, se::Semantics SemB> | |
| bool | is_invalid (const Data< se::Field::Occupancy, ColB, SemB > &data) |
| template<se::Field FldT, se::Colour ColB, se::Semantics SemB> | |
| float | get_field (const Data< FldT, ColB, SemB > data) |
| template<se::Colour ColB, se::Semantics SemB> | |
| float | get_field (const Data< se::Field::TSDF, ColB, SemB > data) |
| template<se::Colour ColB, se::Semantics SemB> | |
| float | get_field (const Data< se::Field::Occupancy, ColB, SemB > data) |
| template<se::Field FldT, se::Colour ColB, se::Semantics SemB> | |
| float | is_inside (const Data< FldT, ColB, SemB > &data) |
| template<se::Colour ColB, se::Semantics SemB> | |
| float | is_inside (const Data< se::Field::TSDF, ColB, SemB > &data) |
| template<se::Colour ColB, se::Semantics SemB> | |
| float | is_inside (const Data< se::Field::Occupancy, ColB, SemB > &data) |
| std::ostream & | operator<< (std::ostream &os, const MapConfig &c) |
| template<typename NodeT > | |
| void | get_child_idx (const Eigen::Vector3i &octant_coord, NodeT *node_ptr, unsigned int &child_idx) |
| Get the child idx for a given child coordinate and pointer to the parent node. More... | |
| std::ostream & | operator<< (std::ostream &os, const OusterLidarConfig &c) |
| std::ostream & | operator<< (std::ostream &os, const PinholeCameraConfig &c) |
| std::ostream & | operator<< (std::ostream &os, const TrackerConfig &c) |
| static Eigen::Matrix< float, 6, 6 > | makeJTJ (const Eigen::Matrix< float, 1, 21 > &v) |
| static Eigen::Matrix< float, 6, 1 > | solve (const Eigen::Matrix< float, 1, 27 > &vals) |
| std::ostream & | operator<< (std::ostream &os, const AppConfig &c) |
| template<typename DataConfigT , typename SensorConfigT > | |
| std::ostream & | operator<< (std::ostream &os, const Config< DataConfigT, SensorConfigT > &c) |
| cv::Mat | montage (int montage_width, int montage_height, const std::vector< cv::Mat > &images, const std::vector< std::string > &labels) |
| Create a montage of several images and overlay labels. More... | |
| Reader * | create_reader (const se::ReaderConfig &config) |
| Create the appropriate reader instance based on the configuration. More... | |
| ReaderType | string_to_reader_type (const std::string &s) |
| std::string | reader_type_to_string (ReaderType t) |
| std::ostream & | operator<< (std::ostream &os, const ReaderConfig &c) |
| std::ostream & | operator<< (std::ostream &os, const ReaderStatus &s) |
Variables | |
| PerfStats | perfstats |
| static const se::field_t | dflt_tsdf = 1.f |
| static const se::field_t | dflt_occupancy = 0.f |
| static const se::weight_t | dflt_weight = 0 |
| static const se::time_stamp_t | dflt_time_stamp = -1.f |
| static const se::rgba_t | dflt_rgba = 0xFFFFFFFF |
| static const se::semantics_t | dflt_semantics = 0 |
| constexpr uint64_t | CODE_MASK [] |
| #define NUM_DIM 3 uint64_t MASK[64]; MASK[0] = 0x1c0000000000000; More... | |
| constexpr uint64_t | SCALE_MASK = 0x1F |
| 11 111 More... | |
| static Eigen::Vector3f | sample_offset_frac = Eigen::Vector3f::Constant(0.5f) |
| constexpr float | e_delta = 0.1f |
Helper wrapper to allocate and de-allocate octants in the octree.
Helper wrapper to traverse the octree.
The actual allocation and deallocation of memory is still only handled by the octree class.
All functions take a const octree references and as no manipulation of the octree is done.
| using se::Value = typedef float |
| using se::Status = typedef int |
| using se::Mesh = typedef std::vector<FaceT> |
Meshes are represented as lists of faces.
| typedef MeshFace<3> se::Triangle |
| typedef Mesh<Triangle> se::TriangleMesh |
| typedef Mesh<Quad> se::QuadMesh |
| typedef DataConfig<se::Field::Occupancy, se::Colour::Off, se::Semantics::Off> se::OccupancyDataConfig |
| typedef DataConfig<se::Field::Occupancy, se::Colour::On, se::Semantics::Off> se::OccupancyColDataConfig |
| typedef DataConfig<se::Field::Occupancy, se::Colour::Off, se::Semantics::On> se::OccupancySemDataConfig |
| typedef DataConfig<se::Field::Occupancy, se::Colour::On, se::Semantics::On> se::OccupancyColSemDataConfig |
| using se::MapD = typedef Map<Data<FldT, ColB, SemB>, ResT, BlockSize> |
| using se::OccupancyMap = typedef Map<OccupancyData, ResT, BlockSize> |
| using se::OccupancyColMap = typedef Map<OccupancyColData, ResT, BlockSize> |
| using se::OccupancySemMap = typedef Map<OccupancySemData, ResT, BlockSize> |
| using se::OccupancyColSemMap = typedef Map<OccupancyColSemData, ResT, BlockSize> |
| using se::TSDFMap = typedef Map<TSDFData, ResT, BlockSize> |
| using se::TSDFColMap = typedef Map<TSDFColData, ResT, BlockSize> |
| using se::TSDFSemMap = typedef Map<TSDFSemData, ResT, BlockSize> |
| using se::TSDFColSemMap = typedef Map<TSDFColSemData, ResT, BlockSize> |
| typedef uint64_t se::key_t |
key = 1 bit buffer + 57 bits of morton code + 6 bits of scale information The maxium scale is limited by 57 / 3 = 19 scales
The tree cannot allocate any depth further than 19 allowing a map size = 524288 * map resolution That is a maximum map size of 1 x 1 x 1 km^3 at 2 mm resolutionThe type of the Key i.e. code | scale
| typedef uint64_t se::code_t |
The type of the Morton code.
| typedef uint64_t se::scale_t |
The type of the scale in the morton code.
| typedef unsigned int se::idx_t |
Child or voxel index type.
| typedef float se::field_t |
The type of the stored field (e.g. TSDF, ESDF or occupancy)
| typedef Eigen::Matrix<field_t, 3, 1> se::field_vec_t |
| typedef se::field_t se::weight_t |
The type of the field type weight.
| typedef float se::time_stamp_t |
The type of the time stamp.
| typedef uint32_t se::rgba_t |
The type of the colour.
| typedef short se::semantics_t |
The type of the semantic class.
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
| Enumerator | |
|---|---|
| OPENNI | Use the se::OpenNIReader. |
| RAW | Use the se::RAWReader. |
| TUM | Use the se::TUMReader. |
| INTERIORNET | Use the se::InteriorNetReader. |
| NEWERCOLLEGE | Use the se::NewerCollegeReader. |
| UNKNOWN | |
|
strong |
The result of trying to read a depth/RGB image or a pose.
| Enumerator | |
|---|---|
| ok | Data read successfully. |
| skip | Temporary data read error. Further reads might succeed. Typically used to indicate an invalid image or pose. |
| eof | End of dataset reached. |
| error | Fatal data read error. No further read should be attempted. Typically used to indicate that the dataset could not be read at all or no camera was found. |
|
inlinestatic |
Pack the individual RGBA channels into a single 32-bit unsigned integer.
The uint32_t is stored in little-endian order in all common CPUs so the alpha channel is stored in the MSB and the red channel in the LSB. Red: bits 0-7 Green: bits 8-15 Blue: bits 16-23 Alpha: bits 24-31
| [in] | r | The value of the red channel. |
| [in] | g | The value of the green channel. |
| [in] | b | The value of the blue channel. |
| [in] | a | The value of the alpha channel. |
|
inlinestatic |
Pack a color stored in an Eigen vector into a single 32-bit unsigned integer.
It is assumed that the R, G, B and A channels are stored in the x, y, z and w members respectively. Their values are assumed to be in the range [0, 1].
| [in] | color | The input color as an Eigen Vector. |
|
inlinestatic |
Pack a color stored in an Eigen vector into a single 32-bit unsigned integer.
It is assumed that the R, G and B channels are stored in the x, y and z members respectively. Their values are assumed to be in the range [0, 1]. The alpha channel is assumed to be completely opaque, e.g. 1.
| [in] | color | The input color as an Eigen Vector. |
|
inlinestatic |
Pack a color stored in an Eigen vector into a single 32-bit unsigned integer.
It is assumed that the R, G, B and A channels are stored in the x, y, z and w members respectively. Their values are assumed to be in the range [0x00, 0xFF].
| [in] | color | The input color as an Eigen Vector. |
|
inlinestatic |
Pack a color stored in an Eigen vector into a single 32-bit unsigned integer.
It is assumed that the R, G and B channels are stored in the x, y and z members respectively. Their values are assumed to be in the range [0x00, 0xFF]. The alpha channel is assumed to be completely opaque, e.g. 0xFF.
| [in] | color | The input color as an Eigen Vector. |
|
inlinestatic |
Get the value of the red channel from a 32-bit packed RGBA value.
| [in] | rgba | The 32-bit packed RGBA value. |
|
inlinestatic |
Get the value of the green channel from a 32-bit packed RGBA value.
| [in] | rgba | The 32-bit packed RGBA value. |
|
inlinestatic |
Get the value of the blue channel from a 32-bit packed RGBA value.
| [in] | rgba | The 32-bit packed RGBA value. |
|
inlinestatic |
Get the value of the alpha channel from a 32-bit packed RGBA value.
| [in] | rgba | The 32-bit packed RGBA value. |
|
inlinestatic |
Blend two RGBA colors based on the value of the blending parameter alpha.
Returns a color alpha * rgba_1 + (1 - alpha) * rgba_2. The values of alpha are assumed to be in the range [0, 1].
| [in] | rgba_1 | A 32-bit packed RGBA value. |
| [in] | rgba_2 | A 32-bit packed RGBA value. |
| [in] | alpha | The value of the blending parameter. |
|
inlinestatic |
|
inlinestatic |
| void se::depth_to_rgba | ( | uint32_t * | depth_RGBA_image_data, |
| const float * | depth_image_data, | ||
| const Eigen::Vector2i & | depth_image_res, | ||
| const float | min_depth, | ||
| const float | max_depth | ||
| ) |
Convert a depth image to an RGBA image to allow visualizing it.
The depth image is scaled using the minimum and maximum depth values to increase contrast.
| [in] | depth_RGBA_image_data | Pointer to the ouput RGBA image data. |
| [in] | depth_image_data | Pointer to the input depth image data. |
| [in] | depth_image_res | Resolution of the depth image in pixels (width and height). |
| [in] | min_depth | The minimum possible depth value. |
| [in] | max_depth | The maximum possible depth value. |
| int se::save_depth_png | ( | const float * | depth_image_data, |
| const Eigen::Vector2i & | depth_image_res, | ||
| const std::string & | filename, | ||
| const float | scale = 1000.0f |
||
| ) |
Save a depth image with depth values in metres to a PNG.
The data is saved in a 16-bit image with the depth values scaled by scale.
| [in] | depth_image_data | Pointer to the float image data. |
| [in] | depth_image_res | Resolution of the depth image in pixels (width and height). |
| [in] | filename | The name of the PNG file to create. |
| [in] | scale | The number each float depth value is multiplied with before being converted to a uint16_t. By default the resulting PNG contains depth values in millimetres. |
| int se::save_depth_png | ( | const uint16_t * | depth_image_data, |
| const Eigen::Vector2i & | depth_image_res, | ||
| const std::string & | filename | ||
| ) |
Save a depth image with depth values in millimetres to a PNG.
| [in] | depth_image_data | Pointer to the 16-bit image data. |
| [in] | depth_image_res | Resolution of the depth image in pixels (width and height). |
| [in] | filename | The name of the PNG file to create. |
| int se::load_depth_png | ( | float ** | depth_image_data, |
| Eigen::Vector2i & | depth_image_res, | ||
| const std::string & | filename, | ||
| const float | inverse_scale = 1.0f/1000.0f |
||
| ) |
Load a PNG depth image into a buffer with depth values in metres.
| [in] | depth_image_data | Pointer to the loaded float image data. |
| [in] | depth_image_res | Resolution of the depth image in pixels (width and height). |
| [in] | filename | The name of the PNG file to load. |
| [in] | inverse_scale | The number each uint16_t depth value is multiplied with in order to convert it to a float value in metres. By default the resulting PNG is assumed to contain depth values in millimetres. |
delete[] *depth_image_data must be called to free the memory. width * height * sizeof(float) bytes are allocated. | int se::load_depth_png | ( | uint16_t ** | depth_image_data, |
| Eigen::Vector2i & | depth_image_res, | ||
| const std::string & | filename | ||
| ) |
Load a PNG depth image into a buffer with depth values in millimetres.
| [in] | depth_image_data | Pointer to the loaded 16-bit image data. |
| [in] | depth_image_res | Resolution of the depth image in pixels (width and height). |
| [in] | filename | The name of the PNG file to load. |
delete[] *depth_image_data must be called to free the memory. width * height * sizeof(uint16_t) bytes are allocated. | int se::save_depth_pgm | ( | const float * | depth_image_data, |
| const Eigen::Vector2i & | depth_image_res, | ||
| const std::string & | filename, | ||
| const float | scale = 1000.0f |
||
| ) |
Save a depth image with depth values in metres to a P2 PGM.
The data is saved in a 16-bit image with the depth values scaled by scale.
| [in] | depth_image_data | Pointer to the float image data. |
| [in] | depth_image_res | Resolution of the depth image in pixels (width and height). |
| [in] | filename | The name of the PGM file to create. |
| [in] | scale | The number each float depth value is multiplied with before being converted to a uint16_t. By default the resulting PNG contains depth values in millimetres. |
| int se::save_depth_pgm | ( | const uint16_t * | depth_image_data, |
| const Eigen::Vector2i & | depth_image_res, | ||
| const std::string & | filename | ||
| ) |
Save a depth image with depth values in millimetres to a P2 PGM.
| [in] | depth_image_data | Pointer to the 16-bit image data. |
| [in] | depth_image_res | Resolution of the depth image in pixels (width and height). |
| [in] | filename | The name of the PGM file to create. |
| int se::load_depth_pgm | ( | float ** | depth_image_data, |
| Eigen::Vector2i & | depth_image_res, | ||
| const std::string & | filename, | ||
| const float | inverse_scale = 1.0f/1000.0f |
||
| ) |
Load a P2 PGM depth image into a buffer with depth values in metres.
| [in] | depth_image_data | Pointer to the loaded float image data. |
| [in] | depth_image_res | Resolution of the depth image in pixels (width and height). |
| [in] | filename | The name of the PGM file to load. |
| [in] | inverse_scale | The number each uint16_t depth value is multiplied with in order to convert it to a float value in metres. By default the resulting PNG is assumed to contain depth values in millimetres. |
delete[] *depth_image_data must be called to free the memory. width * height * sizeof(float) bytes are allocated. | int se::load_depth_pgm | ( | uint16_t ** | depth_image_data, |
| Eigen::Vector2i & | depth_image_res, | ||
| const std::string & | filename | ||
| ) |
Load a P2 PGM depth image into a buffer with depth values in millimeters.
| [in] | depth_image_data | Pointer to the loaded 16-bit image data. |
| [in] | depth_image_res | Resolution of the depth image in pixels (width and height). |
| [in] | filename | The name of the PGM file to load. |
delete[] *depth_image_data must be called to free the memory. width * height * sizeof(uint16_t) bytes are allocated.
|
inlinestatic |
|
static |
|
static |
|
static |
|
inlinestatic |
compute the sample coordinates for a given octant coordinate
| octant_coord | The octant coordinates |
| octant_size | The size of the octant |
| sample_offset_frac | The offset fraction of the sample point to the octant corner, i.e. (0,0,0) for octant corner and (0.5, 0.5, 0.5) for octant centre |
|
inline |
Compute the estimated uncertainty boundary for a given depth measurement.
| [in] | depth_value | The measured depth of the depth image. |
|
inline |
Compute the estimated wall thickness tau for a given depth measurement.
| [in] | depth_value | The measured depth of the depth image. |
| QuadMesh se::octree_structure_mesh | ( | OctreeT & | octree | ) |
Extract the octree structure as a quadrilateral mesh.
| OctreeT |
| octree | The octree to extract the structure from. |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const FieldDataConfig< se::Field::Occupancy > & | c | ||
| ) |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const FieldDataConfig< se::Field::TSDF > & | c | ||
| ) |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const ColourDataConfig< ColB > & | |||
| ) |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const ColourDataConfig< se::Colour::On > & | c | ||
| ) |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const SemanticDataConfig< SemB > & | |||
| ) |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const SemanticDataConfig< se::Semantics::On > & | c | ||
| ) |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const DataConfig< FldT, ColB, SemB > & | c | ||
| ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const MapConfig & | c | ||
| ) |
|
inline |
Get the child idx for a given child coordinate and pointer to the parent node.
| NodeT |
| [in] | child_coord | The voxel coordinates of the child |
| [in] | parent_ptr | The pointer to the parent node |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const OusterLidarConfig & | c | ||
| ) |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const PinholeCameraConfig & | c | ||
| ) |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const TrackerConfig & | c | ||
| ) |
|
inlinestatic |
|
inlinestatic |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const AppConfig & | c | ||
| ) |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const Config< DataConfigT, SensorConfigT > & | c | ||
| ) |
| cv::Mat se::montage | ( | int | montage_width, |
| int | montage_height, | ||
| const std::vector< cv::Mat > & | images, | ||
| const std::vector< std::string > & | labels | ||
| ) |
Create a montage of several images and overlay labels.
The montage image is filled with images in row-major order. If fewer than montage_width * montage_height images are supplied then the montage image will have some transparent regions. If fewer labels than images are provided then the last images won't have a label.
For montage_width = 3, montage_height = 2, 5 images and 3 labels the following montage will be created
CV_8UC4.| [in] | montage_width | The width of the montage image in images. |
| [in] | montage_height | The height of the montage image in images. |
| [in] | images | The images to montage. |
| [in] | labels | The labels corresponding to the images to montage. |
| Reader* se::create_reader | ( | const se::ReaderConfig & | config | ) |
Create the appropriate reader instance based on the configuration.
| [in] | config | The pipeline configuration. |
| ReaderType se::string_to_reader_type | ( | const std::string & | s | ) |
| std::string se::reader_type_to_string | ( | ReaderType | t | ) |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const ReaderConfig & | c | ||
| ) |
| std::ostream& se::operator<< | ( | std::ostream & | os, |
| const ReaderStatus & | s | ||
| ) |
| PerfStats se::perfstats |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
| constexpr uint64_t se::CODE_MASK[] |
#define NUM_DIM 3 uint64_t MASK[64]; MASK[0] = 0x1c0000000000000;
for (int i = 1; i < 19; ++i) { MASK[i] = MASK[i-1] | (MASK[0] >> (i*3)); }
for (int i = 18; i >= 0; –i) { std::bitset<64> b(MASK[i]); std::cout << "0x" << std::hex << b.to_ullong() << "," << std::endl; }
| constexpr uint64_t se::SCALE_MASK = 0x1F |
11 111
|
inlinestatic |
| constexpr float se::e_delta = 0.1f |
1.8.13