![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
UniformTSDFVolume implements the classic TSDF volume with uniform voxel grid (Curless and Levoy 1996). More...
#include <UniformTSDFVolume.h>


Public Member Functions | |
| UniformTSDFVolume (double length, int resolution, double sdf_trunc, TSDFVolumeColorType color_type, const Eigen::Vector3d &origin=Eigen::Vector3d::Zero()) | |
| ~UniformTSDFVolume () override | |
| void | Reset () override |
| Function to reset the TSDFVolume. More... | |
| void | Integrate (const geometry::RGBDImage &image, const camera::PinholeCameraIntrinsic &intrinsic, const Eigen::Matrix4d &extrinsic) override |
| Function to integrate an RGB-D image into the volume. More... | |
| std::shared_ptr< ccPointCloud > | ExtractPointCloud () override |
| Function to extract a point cloud with normals. More... | |
| std::shared_ptr< ccMesh > | ExtractTriangleMesh () override |
| Function to extract a triangle mesh, using the marching cubes algorithm. (https://en.wikipedia.org/wiki/Marching_cubes) More... | |
| std::shared_ptr< ccPointCloud > | ExtractVoxelPointCloud () const |
| Debug function to extract the voxel data into a VoxelGrid. More... | |
| std::shared_ptr< geometry::VoxelGrid > | ExtractVoxelGrid () const |
| Debug function to extract the voxel data VoxelGrid. More... | |
| std::vector< Eigen::Vector2d > | ExtractVolumeTSDF () const |
| Debug function to extract the volume TSDF data into a vector array. More... | |
| std::vector< Eigen::Vector3d > | ExtractVolumeColor () const |
| Debug function to extract the volume color data into a vector array. More... | |
| void | InjectVolumeTSDF (const std::vector< Eigen::Vector2d > &sharedvoxels) |
| Debug function to inject voxel TSDF data into the volume. More... | |
| void | InjectVolumeColor (const std::vector< Eigen::Vector3d > &sharedcolors) |
| Debug function to inject voxel Color data into the volume. More... | |
| void | IntegrateWithDepthToCameraDistanceMultiplier (const geometry::RGBDImage &image, const camera::PinholeCameraIntrinsic &intrinsic, const Eigen::Matrix4d &extrinsic, const geometry::Image &depth_to_camera_distance_multiplier) |
| int | IndexOf (int x, int y, int z) const |
| int | IndexOf (const Eigen::Vector3i &xyz) const |
Public Member Functions inherited from cloudViewer::pipelines::integration::TSDFVolume | |
| TSDFVolume (double voxel_length, double sdf_trunc, TSDFVolumeColorType color_type) | |
| Default Constructor. More... | |
| virtual | ~TSDFVolume () |
Public Attributes | |
| std::vector< geometry::TSDFVoxel > | voxels_ |
| Eigen::Vector3d | origin_ |
| double | length_ |
| Total length, where voxel_length = length / resolution. More... | |
| int | resolution_ |
| int | voxel_num_ |
| Number of voxels present. More... | |
Public Attributes inherited from cloudViewer::pipelines::integration::TSDFVolume | |
| double | voxel_length_ |
| Length of the voxel in meters. More... | |
| double | sdf_trunc_ |
| Truncation value for signed distance function (SDF). More... | |
| TSDFVolumeColorType | color_type_ |
| Color type of the TSDF volume. More... | |
UniformTSDFVolume implements the classic TSDF volume with uniform voxel grid (Curless and Levoy 1996).
Definition at line 40 of file UniformTSDFVolume.h.
| cloudViewer::pipelines::integration::UniformTSDFVolume::UniformTSDFVolume | ( | double | length, |
| int | resolution, | ||
| double | sdf_trunc, | ||
| TSDFVolumeColorType | color_type, | ||
| const Eigen::Vector3d & | origin = Eigen::Vector3d::Zero() |
||
| ) |
Definition at line 25 of file UniformTSDFVolume.cpp.
References voxel_num_, and voxels_.
|
override |
Definition at line 39 of file UniformTSDFVolume.cpp.
|
overridevirtual |
Function to extract a point cloud with normals.
Implements cloudViewer::pipelines::integration::TSDFVolume.
Definition at line 88 of file UniformTSDFVolume.cpp.
References cloudViewer::pipelines::integration::TSDFVolume::color_type_, fabs(), cloudViewer::pipelines::integration::Gray32, IndexOf(), origin_, resolution_, cloudViewer::pipelines::integration::RGB8, cloudViewer::pipelines::integration::TSDFVolume::voxel_length_, and voxels_.
|
overridevirtual |
Function to extract a triangle mesh, using the marching cubes algorithm. (https://en.wikipedia.org/wiki/Marching_cubes)
Implements cloudViewer::pipelines::integration::TSDFVolume.
Definition at line 154 of file UniformTSDFVolume.cpp.
References abs(), ccPointCloud::addEigenColor(), cloudViewer::PointCloudTpl< T >::addEigenPoint(), cloudViewer::pipelines::integration::TSDFVolume::color_type_, cloudViewer::pipelines::integration::Gray32, ccPointCloud::hasColors(), IndexOf(), cloudViewer::pipelines::integration::NoColor, normals, origin_, ccPointCloud::reserveTheRGBTable(), resolution_, cloudViewer::pipelines::integration::RGB8, ccObject::setEnabled(), ccObject::setLocked(), ccPointCloud::shrinkToFit(), cloudViewer::PointCloudTpl< T >::size(), ccHObjectCaster::ToPointCloud(), cloudViewer::pipelines::integration::TSDFVolume::voxel_length_, and voxels_.
| std::vector< Eigen::Vector3d > cloudViewer::pipelines::integration::UniformTSDFVolume::ExtractVolumeColor | ( | ) | const |
Debug function to extract the volume color data into a vector array.
Definition at line 370 of file UniformTSDFVolume.cpp.
References IndexOf(), resolution_, voxel_num_, and voxels_.
Referenced by cloudViewer::pipelines::integration::pybind_integration_classes().
| std::vector< Eigen::Vector2d > cloudViewer::pipelines::integration::UniformTSDFVolume::ExtractVolumeTSDF | ( | ) | const |
Debug function to extract the volume TSDF data into a vector array.
Definition at line 344 of file UniformTSDFVolume.cpp.
References IndexOf(), resolution_, voxel_num_, and voxels_.
Referenced by cloudViewer::pipelines::integration::pybind_integration_classes().
| std::shared_ptr< geometry::VoxelGrid > cloudViewer::pipelines::integration::UniformTSDFVolume::ExtractVoxelGrid | ( | ) | const |
Debug function to extract the voxel data VoxelGrid.
Definition at line 296 of file UniformTSDFVolume.cpp.
References color, IndexOf(), origin_, resolution_, cloudViewer::pipelines::integration::TSDFVolume::voxel_length_, and voxels_.
Referenced by cloudViewer::pipelines::integration::pybind_integration_classes().
| std::shared_ptr< ccPointCloud > cloudViewer::pipelines::integration::UniformTSDFVolume::ExtractVoxelPointCloud | ( | ) | const |
Debug function to extract the voxel data into a VoxelGrid.
Definition at line 266 of file UniformTSDFVolume.cpp.
References IndexOf(), origin_, resolution_, cloudViewer::pipelines::integration::TSDFVolume::voxel_length_, and voxels_.
Referenced by cloudViewer::pipelines::integration::pybind_integration_classes().
|
inline |
Definition at line 82 of file UniformTSDFVolume.h.
References IndexOf().
|
inline |
Definition at line 78 of file UniformTSDFVolume.h.
References resolution_.
Referenced by ExtractPointCloud(), ExtractTriangleMesh(), ExtractVolumeColor(), ExtractVolumeTSDF(), ExtractVoxelGrid(), ExtractVoxelPointCloud(), IndexOf(), InjectVolumeColor(), InjectVolumeTSDF(), and IntegrateWithDepthToCameraDistanceMultiplier().
| void cloudViewer::pipelines::integration::UniformTSDFVolume::InjectVolumeColor | ( | const std::vector< Eigen::Vector3d > & | sharedcolors | ) |
Debug function to inject voxel Color data into the volume.
Definition at line 415 of file UniformTSDFVolume.cpp.
References IndexOf(), resolution_, and voxels_.
Referenced by cloudViewer::pipelines::integration::pybind_integration_classes().
| void cloudViewer::pipelines::integration::UniformTSDFVolume::InjectVolumeTSDF | ( | const std::vector< Eigen::Vector2d > & | sharedvoxels | ) |
Debug function to inject voxel TSDF data into the volume.
Definition at line 393 of file UniformTSDFVolume.cpp.
References IndexOf(), resolution_, and voxels_.
Referenced by cloudViewer::pipelines::integration::pybind_integration_classes().
|
overridevirtual |
Function to integrate an RGB-D image into the volume.
Implements cloudViewer::pipelines::integration::TSDFVolume.
Definition at line 43 of file UniformTSDFVolume.cpp.
References cloudViewer::pipelines::integration::TSDFVolume::color_type_, cloudViewer::geometry::Image::CreateDepthToCameraDistanceMultiplierFloatImage(), cloudViewer::pipelines::integration::Gray32, cloudViewer::camera::PinholeCameraIntrinsic::height_, image, IntegrateWithDepthToCameraDistanceMultiplier(), LogError, cloudViewer::pipelines::integration::NoColor, cloudViewer::pipelines::integration::RGB8, and cloudViewer::camera::PinholeCameraIntrinsic::width_.
| void cloudViewer::pipelines::integration::UniformTSDFVolume::IntegrateWithDepthToCameraDistanceMultiplier | ( | const geometry::RGBDImage & | image, |
| const camera::PinholeCameraIntrinsic & | intrinsic, | ||
| const Eigen::Matrix4d & | extrinsic, | ||
| const geometry::Image & | depth_to_camera_distance_multiplier | ||
| ) |
Faster Integrate function that uses depth_to_camera_distance_multiplier precomputed from camera intrinsic
Definition at line 436 of file UniformTSDFVolume.cpp.
References cloudViewer::pipelines::integration::TSDFVolume::color_type_, cloudViewer::camera::PinholeCameraIntrinsic::GetFocalLength(), cloudViewer::camera::PinholeCameraIntrinsic::GetPrincipalPoint(), cloudViewer::pipelines::integration::Gray32, cloudViewer::camera::PinholeCameraIntrinsic::height_, image, IndexOf(), min(), origin_, cloudViewer::geometry::Image::PointerAt(), resolution_, cloudViewer::pipelines::integration::RGB8, cloudViewer::pipelines::integration::TSDFVolume::sdf_trunc_, cloudViewer::pipelines::integration::TSDFVolume::voxel_length_, voxels_, and cloudViewer::camera::PinholeCameraIntrinsic::width_.
Referenced by Integrate().
|
overridevirtual |
Function to reset the TSDFVolume.
Implements cloudViewer::pipelines::integration::TSDFVolume.
Definition at line 41 of file UniformTSDFVolume.cpp.
References voxels_.
| double cloudViewer::pipelines::integration::UniformTSDFVolume::length_ |
Total length, where voxel_length = length / resolution.
Definition at line 90 of file UniformTSDFVolume.h.
Referenced by cloudViewer::pipelines::integration::pybind_integration_classes().
| Eigen::Vector3d cloudViewer::pipelines::integration::UniformTSDFVolume::origin_ |
Definition at line 88 of file UniformTSDFVolume.h.
Referenced by ExtractPointCloud(), ExtractTriangleMesh(), ExtractVoxelGrid(), ExtractVoxelPointCloud(), and IntegrateWithDepthToCameraDistanceMultiplier().
| int cloudViewer::pipelines::integration::UniformTSDFVolume::resolution_ |
Resolution over the total length, where voxel_length = length / resolution.
Definition at line 93 of file UniformTSDFVolume.h.
Referenced by ExtractPointCloud(), ExtractTriangleMesh(), ExtractVolumeColor(), ExtractVolumeTSDF(), ExtractVoxelGrid(), ExtractVoxelPointCloud(), IndexOf(), InjectVolumeColor(), InjectVolumeTSDF(), IntegrateWithDepthToCameraDistanceMultiplier(), and cloudViewer::pipelines::integration::pybind_integration_classes().
| int cloudViewer::pipelines::integration::UniformTSDFVolume::voxel_num_ |
Number of voxels present.
Definition at line 95 of file UniformTSDFVolume.h.
Referenced by ExtractVolumeColor(), ExtractVolumeTSDF(), and UniformTSDFVolume().
| std::vector<geometry::TSDFVoxel> cloudViewer::pipelines::integration::UniformTSDFVolume::voxels_ |
Definition at line 87 of file UniformTSDFVolume.h.
Referenced by ExtractPointCloud(), ExtractTriangleMesh(), ExtractVolumeColor(), ExtractVolumeTSDF(), ExtractVoxelGrid(), ExtractVoxelPointCloud(), InjectVolumeColor(), InjectVolumeTSDF(), IntegrateWithDepthToCameraDistanceMultiplier(), Reset(), and UniformTSDFVolume().