Open3D (C++ API)
Data Structures | Typedefs | Functions
open3d::geometry Namespace Reference

Data Structures

class  Geometry
 
class  Geometry2D
 
class  Geometry3D
 
class  HalfEdgeTriangleMesh
 
class  Image
 
class  KDTreeFlann
 
class  KDTreeSearchParam
 
class  KDTreeSearchParamHybrid
 
class  KDTreeSearchParamKNN
 
class  KDTreeSearchParamRadius
 
class  LineSet
 
class  Octree
 
class  OctreeColorLeafNode
 
class  OctreeInternalNode
 
class  OctreeLeafNode
 
class  OctreeNode
 
class  OctreeNodeInfo
 
class  PointCloud
 
class  Quadric
 
class  RGBDImage
 
class  TriangleMesh
 
class  TSDFVoxel
 
class  TSDFVoxelGrid
 
class  Voxel
 
class  VoxelGrid
 

Typedefs

typedef std::vector< std::shared_ptr< Image > > ImagePyramid
 Typedef and functions for ImagePyramid. More...
 
typedef std::vector< std::shared_ptr< RGBDImage > > RGBDImagePyramid
 Typedef and functions for RGBDImagePyramid. More...
 

Functions

std::shared_ptr< PointCloudSelectDownSample (const PointCloud &input, const std::vector< size_t > &indices, bool invert)
 
std::shared_ptr< TriangleMeshSelectDownSample (const TriangleMesh &input, const std::vector< size_t > &indices)
 
std::shared_ptr< PointCloudVoxelDownSample (const PointCloud &input, double voxel_size)
 
std::tuple< std::shared_ptr< PointCloud >, Eigen::MatrixXi > VoxelDownSampleAndTrace (const PointCloud &input, double voxel_size, const Eigen::Vector3d &min_bound, const Eigen::Vector3d &max_bound, bool approximate_class)
 
std::shared_ptr< PointCloudUniformDownSample (const PointCloud &input, size_t every_k_points)
 
std::shared_ptr< PointCloudCropPointCloud (const PointCloud &input, const Eigen::Vector3d &min_bound, const Eigen::Vector3d &max_bound)
 
std::tuple< std::shared_ptr< PointCloud >, std::vector< size_t > > RemoveRadiusOutliers (const PointCloud &input, size_t nb_points, double search_radius)
 
std::tuple< std::shared_ptr< PointCloud >, std::vector< size_t > > RemoveStatisticalOutliers (const PointCloud &input, size_t nb_neighbors, double std_ratio)
 
std::shared_ptr< TriangleMeshCropTriangleMesh (const TriangleMesh &input, const Eigen::Vector3d &min_bound, const Eigen::Vector3d &max_bound)
 
bool EstimateNormals (PointCloud &cloud, const KDTreeSearchParam &search_param)
 
bool OrientNormalsToAlignWithDirection (PointCloud &cloud, const Eigen::Vector3d &orientation_reference)
 
bool OrientNormalsTowardsCameraLocation (PointCloud &cloud, const Eigen::Vector3d &camera_location)
 
std::shared_ptr< HalfEdgeTriangleMeshCreateHalfEdgeMeshFromMesh (const TriangleMesh &mesh)
 
template<typename T >
T * PointerAt (const Image &image, int u, int v)
 Function to access the raw data of a single-channel Image. More...
 
template float * PointerAt< float > (const Image &image, int u, int v)
 
template int * PointerAt< int > (const Image &image, int u, int v)
 
template uint8_t * PointerAt< uint8_t > (const Image &image, int u, int v)
 
template uint16_t * PointerAt< uint16_t > (const Image &image, int u, int v)
 
template<typename T >
T * PointerAt (const Image &image, int u, int v, int ch)
 Function to access the raw data of a multi-channel Image. More...
 
template float * PointerAt< float > (const Image &image, int u, int v, int ch)
 
template int * PointerAt< int > (const Image &image, int u, int v, int ch)
 
template uint8_t * PointerAt< uint8_t > (const Image &image, int u, int v, int ch)
 
template uint16_t * PointerAt< uint16_t > (const Image &image, int u, int v, int ch)
 
std::shared_ptr< ImageConvertDepthToFloatImage (const Image &depth, double depth_scale, double depth_trunc)
 
void ClipIntensityImage (Image &input, double min, double max)
 
void LinearTransformImage (Image &input, double scale, double offset)
 
std::shared_ptr< ImageDownsampleImage (const Image &input)
 Function to 2x image downsample using simple 2x2 averaging. More...
 
std::shared_ptr< ImageFilterHorizontalImage (const Image &input, const std::vector< double > &kernel)
 
std::shared_ptr< ImageFilterImage (const Image &input, Image::FilterType type)
 Function to filter image with pre-defined filtering type. More...
 
ImagePyramid FilterImagePyramid (const ImagePyramid &input, Image::FilterType type)
 Function to filter image pyramid. More...
 
std::shared_ptr< ImageFilterImage (const Image &input, const std::vector< double > &dx, const std::vector< double > &dy)
 Function to filter image with arbitrary dx, dy separable filters. More...
 
std::shared_ptr< ImageFlipImage (const Image &input)
 
std::shared_ptr< ImageDilateImage (const Image &input, int half_kernel_size=1)
 Function to dilate 8bit mask map. More...
 
std::shared_ptr< ImageCreateDepthBoundaryMask (const Image &depth_image_input, double depth_threshold_for_discontinuity_check=0.1, int half_dilation_kernel_size_for_discontinuity_map=3)
 Function to create a depthmap boundary mask from depth image. More...
 
std::shared_ptr< ImageCreateDepthToCameraDistanceMultiplierFloatImage (const camera::PinholeCameraIntrinsic &intrinsic)
 
std::shared_ptr< ImageCreateFloatImageFromImage (const Image &image, Image::ColorToIntensityConversionType type=Image::ColorToIntensityConversionType::Weighted)
 Return a gray scaled float type image. More...
 
template<typename T >
std::shared_ptr< ImageCreateImageFromFloatImage (const Image &input)
 
ImagePyramid CreateImagePyramid (const Image &image, size_t num_of_levels, bool with_gaussian_filter=true)
 Function to create image pyramid. More...
 
template std::shared_ptr< ImageCreateImageFromFloatImage< uint8_t > (const Image &input)
 
template std::shared_ptr< ImageCreateImageFromFloatImage< uint16_t > (const Image &input)
 
bool IntersectingAABBAABB (const Eigen::Vector3d &min0, const Eigen::Vector3d &max0, const Eigen::Vector3d &min1, const Eigen::Vector3d &max1)
 
bool IntersectingTriangleTriangle3d (const Eigen::Vector3d &p0, const Eigen::Vector3d &p1, const Eigen::Vector3d &p2, const Eigen::Vector3d &q0, const Eigen::Vector3d &q1, const Eigen::Vector3d &q2)
 
template int KDTreeFlann::Search< Eigen::Vector3d > (const Eigen::Vector3d &query, const KDTreeSearchParam &param, std::vector< int > &indices, std::vector< double > &distance2) const
 
template int KDTreeFlann::SearchKNN< Eigen::Vector3d > (const Eigen::Vector3d &query, int knn, std::vector< int > &indices, std::vector< double > &distance2) const
 
template int KDTreeFlann::SearchRadius< Eigen::Vector3d > (const Eigen::Vector3d &query, double radius, std::vector< int > &indices, std::vector< double > &distance2) const
 
template int KDTreeFlann::SearchHybrid< Eigen::Vector3d > (const Eigen::Vector3d &query, double radius, int max_nn, std::vector< int > &indices, std::vector< double > &distance2) const
 
template int KDTreeFlann::Search< Eigen::VectorXd > (const Eigen::VectorXd &query, const KDTreeSearchParam &param, std::vector< int > &indices, std::vector< double > &distance2) const
 
template int KDTreeFlann::SearchKNN< Eigen::VectorXd > (const Eigen::VectorXd &query, int knn, std::vector< int > &indices, std::vector< double > &distance2) const
 
template int KDTreeFlann::SearchRadius< Eigen::VectorXd > (const Eigen::VectorXd &query, double radius, std::vector< int > &indices, std::vector< double > &distance2) const
 
template int KDTreeFlann::SearchHybrid< Eigen::VectorXd > (const Eigen::VectorXd &query, double radius, int max_nn, std::vector< int > &indices, std::vector< double > &distance2) const
 
std::shared_ptr< LineSetCreateLineSetFromPointCloudCorrespondences (const PointCloud &cloud0, const PointCloud &cloud1, const std::vector< std::pair< int, int >> &correspondences)
 
std::shared_ptr< LineSetCreateLineSetFromTriangleMesh (const TriangleMesh &mesh)
 
std::vector< double > ComputePointCloudToPointCloudDistance (const PointCloud &source, const PointCloud &target)
 
std::tuple< Eigen::Vector3d, Eigen::Matrix3d > ComputePointCloudMeanAndCovariance (const PointCloud &input)
 
std::vector< double > ComputePointCloudMahalanobisDistance (const PointCloud &input)
 
std::vector< double > ComputePointCloudNearestNeighborDistance (const PointCloud &input)
 
std::shared_ptr< TriangleMeshComputePointCloudConvexHull (const PointCloud &input)
 Function that computes the convex hull of the point cloud using qhull. More...
 
std::shared_ptr< PointCloudCreatePointCloudFromDepthImage (const Image &depth, const camera::PinholeCameraIntrinsic &intrinsic, const Eigen::Matrix4d &extrinsic=Eigen::Matrix4d::Identity(), double depth_scale=1000.0, double depth_trunc=1000.0, int stride=1)
 
std::shared_ptr< PointCloudCreatePointCloudFromRGBDImage (const RGBDImage &image, const camera::PinholeCameraIntrinsic &intrinsic, const Eigen::Matrix4d &extrinsic=Eigen::Matrix4d::Identity())
 
std::shared_ptr< TriangleMeshComputeConvexHull (const std::vector< Eigen::Vector3d > &points)
 
RGBDImagePyramid FilterRGBDImagePyramid (const RGBDImagePyramid &rgbd_image_pyramid, Image::FilterType type)
 
RGBDImagePyramid CreateRGBDImagePyramid (const RGBDImage &rgbd_image, size_t num_of_levels, bool with_gaussian_filter_for_color, bool with_gaussian_filter_for_depth)
 
std::shared_ptr< RGBDImageCreateRGBDImageFromColorAndDepth (const Image &color, const Image &depth, double depth_scale=1000.0, double depth_trunc=3.0, bool convert_rgb_to_intensity=true)
 Factory function to create an RGBD Image from color and depth Images. More...
 
std::shared_ptr< RGBDImageCreateRGBDImageFromRedwoodFormat (const Image &color, const Image &depth, bool convert_rgb_to_intensity=true)
 Factory function to create an RGBD Image from Redwood dataset. More...
 
std::shared_ptr< RGBDImageCreateRGBDImageFromTUMFormat (const Image &color, const Image &depth, bool convert_rgb_to_intensity=true)
 Factory function to create an RGBD Image from TUM dataset. More...
 
std::shared_ptr< RGBDImageCreateRGBDImageFromSUNFormat (const Image &color, const Image &depth, bool convert_rgb_to_intensity=true)
 Factory function to create an RGBD Image from SUN3D dataset. More...
 
std::shared_ptr< RGBDImageCreateRGBDImageFromNYUFormat (const Image &color, const Image &depth, bool convert_rgb_to_intensity=true)
 Factory function to create an RGBD Image from NYU dataset. More...
 
std::shared_ptr< PointCloudSamplePointsUniformly (const TriangleMesh &input, size_t number_of_points, std::vector< double > &triangle_areas, double surface_area)
 
std::shared_ptr< PointCloudSamplePointsUniformly (const TriangleMesh &input, size_t number_of_points)
 Function to sample. More...
 
std::shared_ptr< PointCloudSamplePointsPoissonDisk (const TriangleMesh &input, size_t number_of_points, double init_factor, const std::shared_ptr< PointCloud > pcl_init)
 
template<typename F >
bool OrientTriangleHelper (const std::vector< Eigen::Vector3i > &triangles, F &swap)
 
double ComputeTriangleArea (const Eigen::Vector3d &p0, const Eigen::Vector3d &p1, const Eigen::Vector3d &p2)
 Function that computes the area of a mesh triangle. More...
 
Eigen::Vector4d ComputeTrianglePlane (const Eigen::Vector3d &p0, const Eigen::Vector3d &p1, const Eigen::Vector3d &p2)
 
std::shared_ptr< TriangleMeshComputeMeshConvexHull (const TriangleMesh &mesh)
 Function that computes the convex hull of the triangle mesh using qhull. More...
 
std::shared_ptr< TriangleMeshSubdivideMidpoint (const TriangleMesh &input, int number_of_iterations)
 
std::shared_ptr< TriangleMeshSubdivideLoop (const TriangleMesh &input, int number_of_iterations)
 
std::shared_ptr< TriangleMeshSimplifyVertexClustering (const TriangleMesh &input, double voxel_size, TriangleMesh::SimplificationContraction contraction=TriangleMesh::SimplificationContraction::Average)
 
std::shared_ptr< TriangleMeshSimplifyQuadricDecimation (const TriangleMesh &input, int target_number_of_triangles)
 
std::shared_ptr< TriangleMeshCreateMeshTetrahedron (double radius=1.0)
 
std::shared_ptr< TriangleMeshCreateMeshOctahedron (double radius=1.0)
 
std::shared_ptr< TriangleMeshCreateMeshIcosahedron (double radius=1.0)
 
std::shared_ptr< TriangleMeshCreateMeshBox (double width=1.0, double height=1.0, double depth=1.0)
 
std::shared_ptr< TriangleMeshCreateMeshSphere (double radius=1.0, int resolution=20)
 
std::shared_ptr< TriangleMeshCreateMeshCylinder (double radius=1.0, double height=2.0, int resolution=20, int split=4)
 
std::shared_ptr< TriangleMeshCreateMeshCone (double radius=1.0, double height=2.0, int resolution=20, int split=1)
 
std::shared_ptr< TriangleMeshCreateMeshTorus (double torus_radius=1.0, double tube_radius=0.5, int radial_resolution=30, int tubular_resolution=20)
 
std::shared_ptr< TriangleMeshCreateMeshArrow (double cylinder_radius=1.0, double cone_radius=1.5, double cylinder_height=5.0, double cone_height=4.0, int resolution=20, int cylinder_split=4, int cone_split=1)
 
std::shared_ptr< TriangleMeshCreateMeshCoordinateFrame (double size=1.0, const Eigen::Vector3d &origin=Eigen::Vector3d(0.0, 0.0, 0.0))
 
std::shared_ptr< TriangleMeshCreateMeshMoebius (int length_split=70, int width_split=15, int twists=1, double radius=1, double flatness=1, double width=1, double scale=1)
 
std::shared_ptr< VoxelGridCreateSurfaceVoxelGridFromPointCloud (const PointCloud &input, double voxel_size)
 

Typedef Documentation

◆ ImagePyramid

typedef std::vector<std::shared_ptr<Image> > open3d::geometry::ImagePyramid

Typedef and functions for ImagePyramid.

◆ RGBDImagePyramid

typedef std::vector<std::shared_ptr<RGBDImage> > open3d::geometry::RGBDImagePyramid

Typedef and functions for RGBDImagePyramid.

Function Documentation

◆ ClipIntensityImage()

void open3d::geometry::ClipIntensityImage ( Image input,
double  min = 0.0,
double  max = 1.0 
)

Function to clipping pixel intensities min is lower bound max is upper bound

◆ ComputeConvexHull()

std::shared_ptr< TriangleMesh > open3d::geometry::ComputeConvexHull ( const std::vector< Eigen::Vector3d > &  points)

◆ ComputeMeshConvexHull()

std::shared_ptr< TriangleMesh > open3d::geometry::ComputeMeshConvexHull ( const TriangleMesh mesh)

Function that computes the convex hull of the triangle mesh using qhull.

◆ ComputePointCloudConvexHull()

std::shared_ptr< TriangleMesh > open3d::geometry::ComputePointCloudConvexHull ( const PointCloud input)

Function that computes the convex hull of the point cloud using qhull.

◆ ComputePointCloudMahalanobisDistance()

std::vector< double > open3d::geometry::ComputePointCloudMahalanobisDistance ( const PointCloud input)

Function to compute the Mahalanobis distance for points in an

Parameters
inputpoint cloud https://en.wikipedia.org/wiki/Mahalanobis_distance

◆ ComputePointCloudMeanAndCovariance()

std::tuple< Eigen::Vector3d, Eigen::Matrix3d > open3d::geometry::ComputePointCloudMeanAndCovariance ( const PointCloud input)

Function to compute the mean and covariance matrix of an

Parameters
inputpoint cloud

◆ ComputePointCloudNearestNeighborDistance()

std::vector< double > open3d::geometry::ComputePointCloudNearestNeighborDistance ( const PointCloud input)

Function to compute the distance from a point to its nearest neighbor in the

Parameters
inputpoint cloud

◆ ComputePointCloudToPointCloudDistance()

std::vector< double > open3d::geometry::ComputePointCloudToPointCloudDistance ( const PointCloud source,
const PointCloud target 
)

Function to compute the point to point distances between point clouds

Parameters
sourceis the first point cloud.
targetis the second point cloud.
Returns
the output distance. It has the same size as the number of points in
Parameters
source

◆ ComputeTriangleArea()

double open3d::geometry::ComputeTriangleArea ( const Eigen::Vector3d &  p0,
const Eigen::Vector3d &  p1,
const Eigen::Vector3d &  p2 
)

Function that computes the area of a mesh triangle.

◆ ComputeTrianglePlane()

Eigen::Vector4d open3d::geometry::ComputeTrianglePlane ( const Eigen::Vector3d &  p0,
const Eigen::Vector3d &  p1,
const Eigen::Vector3d &  p2 
)

Function that computes the plane equation from the three points. If the three points are co-linear, then this function returns the invalid plane (0, 0, 0, 0).

◆ ConvertDepthToFloatImage()

std::shared_ptr< Image > open3d::geometry::ConvertDepthToFloatImage ( const Image depth,
double  depth_scale,
double  depth_trunc 
)

◆ CreateDepthBoundaryMask()

std::shared_ptr< Image > open3d::geometry::CreateDepthBoundaryMask ( const Image depth_image_input,
double  depth_threshold_for_discontinuity_check,
int  half_dilation_kernel_size_for_discontinuity_map 
)

Function to create a depthmap boundary mask from depth image.

◆ CreateDepthToCameraDistanceMultiplierFloatImage()

std::shared_ptr< Image > open3d::geometry::CreateDepthToCameraDistanceMultiplierFloatImage ( const camera::PinholeCameraIntrinsic intrinsic)

Factory function to create a float image composed of multipliers that convert depth values into camera distances (ImageFactory.cpp) The multiplier function M(u,v) is defined as: M(u, v) = sqrt(1 + ((u - cx) / fx) ^ 2 + ((v - cy) / fy) ^ 2) This function is used as a convenient function for performance optimization in volumetric integration (see Core/Integration/TSDFVolume.h).

◆ CreateFloatImageFromImage()

std::shared_ptr< Image > open3d::geometry::CreateFloatImageFromImage ( const Image image,
Image::ColorToIntensityConversionType  type = Image::ColorToIntensityConversionType::Weighted 
)

Return a gray scaled float type image.

◆ CreateHalfEdgeMeshFromMesh()

std::shared_ptr< HalfEdgeTriangleMesh > open3d::geometry::CreateHalfEdgeMeshFromMesh ( const TriangleMesh mesh)

◆ CreateImageFromFloatImage()

template<typename T >
std::shared_ptr< Image > open3d::geometry::CreateImageFromFloatImage ( const Image input)

Function to change data types of image crafted for specific usage such as single channel float image -> 8-bit RGB or 16-bit depth image

◆ CreateImageFromFloatImage< uint16_t >()

template std::shared_ptr<Image> open3d::geometry::CreateImageFromFloatImage< uint16_t > ( const Image input)

◆ CreateImageFromFloatImage< uint8_t >()

template std::shared_ptr<Image> open3d::geometry::CreateImageFromFloatImage< uint8_t > ( const Image input)

◆ CreateImagePyramid()

ImagePyramid open3d::geometry::CreateImagePyramid ( const Image image,
size_t  num_of_levels,
bool  with_gaussian_filter = true 
)

Function to create image pyramid.

◆ CreateLineSetFromPointCloudCorrespondences()

std::shared_ptr< LineSet > open3d::geometry::CreateLineSetFromPointCloudCorrespondences ( const PointCloud cloud0,
const PointCloud cloud1,
const std::vector< std::pair< int, int >> &  correspondences 
)

Factory function to create a LineSet from two PointClouds (

Parameters
cloud0

◆ CreateLineSetFromTriangleMesh()

std::shared_ptr< LineSet > open3d::geometry::CreateLineSetFromTriangleMesh ( const TriangleMesh mesh)

Factory function to create a LineSet from edges of a triangle mesh

Parameters
mesh.

◆ CreateMeshArrow()

std::shared_ptr< TriangleMesh > open3d::geometry::CreateMeshArrow ( double  cylinder_radius = 1.0,
double  cone_radius = 1.5,
double  cylinder_height = 5.0,
double  cone_height = 4.0,
int  resolution = 20,
int  cylinder_split = 4,
int  cone_split = 1 
)

Factory function to create an arrow mesh (TriangleMeshFactory.cpp) The axis of the cone with

Parameters
cone_radiuswill be along the z-axis. The cylinder with
cylinder_radiusis from (0, 0, 0) to (0, 0, cylinder_height), and the cone is from (0, 0, cylinder_height) to (0, 0, cylinder_height + cone_height). The cone will be split into
resolutionsegments. The
cylinder_heightwill be split into
cylinder_splitsegments. The
cone_heightwill be split into
cone_splitsegments.

◆ CreateMeshBox()

std::shared_ptr< TriangleMesh > open3d::geometry::CreateMeshBox ( double  width = 1.0,
double  height = 1.0,
double  depth = 1.0 
)

Factory function to create a box mesh (TriangleMeshFactory.cpp) The left bottom corner on the front will be placed at (0, 0, 0). The

Parameters
widthis x-directional length, and
heightand
depthare y- and z-directional lengths respectively.

◆ CreateMeshCone()

std::shared_ptr< TriangleMesh > open3d::geometry::CreateMeshCone ( double  radius = 1.0,
double  height = 2.0,
int  resolution = 20,
int  split = 1 
)

Factory function to create a cone mesh (TriangleMeshFactory.cpp) The axis of the cone will be from (0, 0, 0) to (0, 0,

Parameters
height).The circle with
radiuswill be split into
resolutionsegments. The height will be split into
splitsegments.

◆ CreateMeshCoordinateFrame()

std::shared_ptr< TriangleMesh > open3d::geometry::CreateMeshCoordinateFrame ( double  size = 1.0,
const Eigen::Vector3d &  origin = Eigen::Vector3d(0.0, 0.0, 0.0) 
)

Factory function to create a coordinate frame mesh (TriangleMeshFactory.cpp) The coordinate frame will be centered at

Parameters
originThe x, y, z axis will be rendered as red, green, and blue arrows respectively.
sizeis the length of the axes.

◆ CreateMeshCylinder()

std::shared_ptr< TriangleMesh > open3d::geometry::CreateMeshCylinder ( double  radius = 1.0,
double  height = 2.0,
int  resolution = 20,
int  split = 4 
)

Factory function to create a cylinder mesh (TriangleMeshFactory.cpp) The axis of the cylinder will be from (0, 0, -height/2) to (0, 0, height/2). The circle with

Parameters
radiuswill be split into
resolutionsegments. The
heightwill be split into
splitsegments.

◆ CreateMeshIcosahedron()

std::shared_ptr< TriangleMesh > open3d::geometry::CreateMeshIcosahedron ( double  radius = 1.0)

Factory function to create a icosahedron mesh (trianglemeshfactory.cpp). the mesh centroid will be at (0,0,0) and

Parameters
radiusdefines the distance from the center to the mesh vertices.

◆ CreateMeshMoebius()

std::shared_ptr< TriangleMesh > open3d::geometry::CreateMeshMoebius ( int  length_split = 70,
int  width_split = 15,
int  twists = 1,
double  radius = 1,
double  flatness = 1,
double  width = 1,
double  scale = 1 
)

Factory function to create a Moebius strip.

Parameters
length_splitdefines the number of segments along the Moebius strip,
width_splitdefines the number of segments along the width of the Moebius strip,
twistsdefines the number of twists of the strip,
radiusdefines the radius of the Moebius strip,
flatnesscontrols the height of the strip,
widthcontrols the width of the Moebius strip and
scaleis used to scale the entire Moebius strip.

◆ CreateMeshOctahedron()

std::shared_ptr< TriangleMesh > open3d::geometry::CreateMeshOctahedron ( double  radius = 1.0)

Factory function to create a octahedron mesh (trianglemeshfactory.cpp). the mesh centroid will be at (0,0,0) and

Parameters
radiusdefines the distance from the center to the mesh vertices.

◆ CreateMeshSphere()

std::shared_ptr< TriangleMesh > open3d::geometry::CreateMeshSphere ( double  radius = 1.0,
int  resolution = 20 
)

Factory function to create a sphere mesh (TriangleMeshFactory.cpp) The sphere with

Parameters
radiuswill be centered at (0, 0, 0). Its axis is aligned with z-axis. The longitudes will be split into
resolutionsegments. The latitudes will be split into
resolution* 2 segments.

◆ CreateMeshTetrahedron()

std::shared_ptr< TriangleMesh > open3d::geometry::CreateMeshTetrahedron ( double  radius = 1.0)

Factory function to create a tetrahedron mesh (trianglemeshfactory.cpp). the mesh centroid will be at (0,0,0) and

Parameters
radiusdefines the distance from the center to the mesh vertices.

◆ CreateMeshTorus()

std::shared_ptr< TriangleMesh > open3d::geometry::CreateMeshTorus ( double  torus_radius = 1.0,
double  tube_radius = 0.5,
int  radial_resolution = 30,
int  tubular_resolution = 20 
)

Factory function to create a torus mesh (TriangleMeshFactory.cpp) The torus will be centered at (0, 0, 0) and a radius of

Parameters
torus_radius.The tube of the torus will have a radius of
tube_radius.The number of segments in radial and tubular direction are
radial_resolutionand
tubular_resolutionrespectively.

◆ CreatePointCloudFromDepthImage()

std::shared_ptr< PointCloud > open3d::geometry::CreatePointCloudFromDepthImage ( const Image depth,
const camera::PinholeCameraIntrinsic intrinsic,
const Eigen::Matrix4d &  extrinsic = Eigen::Matrix4d::Identity(),
double  depth_scale = 1000.0,
double  depth_trunc = 1000.0,
int  stride = 1 
)

Factory function to create a pointcloud from a depth image and a camera model (PointCloudFactory.cpp) The input depth image can be either a float image, or a uint16_t image. In the latter case, the depth is scaled by 1 / depth_scale, and truncated at depth_trunc distance. The depth image is also sampled with stride, in order to support (fast) coarse point cloud extraction. Return an empty pointcloud if the conversion fails.

◆ CreatePointCloudFromRGBDImage()

std::shared_ptr< PointCloud > open3d::geometry::CreatePointCloudFromRGBDImage ( const RGBDImage image,
const camera::PinholeCameraIntrinsic intrinsic,
const Eigen::Matrix4d &  extrinsic = Eigen::Matrix4d::Identity() 
)

Factory function to create a pointcloud from an RGB-D image and a camera model (PointCloudFactory.cpp) Return an empty pointcloud if the conversion fails.

◆ CreateRGBDImageFromColorAndDepth()

std::shared_ptr< RGBDImage > open3d::geometry::CreateRGBDImageFromColorAndDepth ( const Image color,
const Image depth,
double  depth_scale = 1000.0,
double  depth_trunc = 3.0,
bool  convert_rgb_to_intensity = true 
)

Factory function to create an RGBD Image from color and depth Images.

◆ CreateRGBDImageFromNYUFormat()

std::shared_ptr< RGBDImage > open3d::geometry::CreateRGBDImageFromNYUFormat ( const Image color,
const Image depth,
bool  convert_rgb_to_intensity = true 
)

Factory function to create an RGBD Image from NYU dataset.

Reference: http://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html.

◆ CreateRGBDImageFromRedwoodFormat()

std::shared_ptr< RGBDImage > open3d::geometry::CreateRGBDImageFromRedwoodFormat ( const Image color,
const Image depth,
bool  convert_rgb_to_intensity 
)

Factory function to create an RGBD Image from Redwood dataset.

Reference: http://redwood-data.org/indoor/ File format: http://redwood-data.org/indoor/dataset.html

◆ CreateRGBDImageFromSUNFormat()

std::shared_ptr< RGBDImage > open3d::geometry::CreateRGBDImageFromSUNFormat ( const Image color,
const Image depth,
bool  convert_rgb_to_intensity 
)

Factory function to create an RGBD Image from SUN3D dataset.

Reference: http://sun3d.cs.princeton.edu/ File format: https://github.com/PrincetonVision/SUN3DCppReader

◆ CreateRGBDImageFromTUMFormat()

std::shared_ptr< RGBDImage > open3d::geometry::CreateRGBDImageFromTUMFormat ( const Image color,
const Image depth,
bool  convert_rgb_to_intensity 
)

Factory function to create an RGBD Image from TUM dataset.

Reference: http://vision.in.tum.de/data/datasets/rgbd-dataset File format: http://vision.in.tum.de/data/datasets/rgbd-dataset/file_formats

◆ CreateRGBDImagePyramid()

RGBDImagePyramid open3d::geometry::CreateRGBDImagePyramid ( const RGBDImage rgbd_image,
size_t  num_of_levels,
bool  with_gaussian_filter_for_color,
bool  with_gaussian_filter_for_depth 
)

◆ CreateSurfaceVoxelGridFromPointCloud()

std::shared_ptr< VoxelGrid > open3d::geometry::CreateSurfaceVoxelGridFromPointCloud ( const PointCloud input,
double  voxel_size 
)

◆ CropPointCloud()

std::shared_ptr< PointCloud > open3d::geometry::CropPointCloud ( const PointCloud input,
const Eigen::Vector3d &  min_bound,
const Eigen::Vector3d &  max_bound 
)

Function to crop

Parameters
inputpointcloud into output pointcloud All points with coordinates less than
min_boundor larger than
max_boundare clipped.

◆ CropTriangleMesh()

std::shared_ptr< TriangleMesh > open3d::geometry::CropTriangleMesh ( const TriangleMesh input,
const Eigen::Vector3d &  min_bound,
const Eigen::Vector3d &  max_bound 
)

Function to crop

Parameters
inputtringlemesh into output tringlemesh All points with coordinates less than
min_boundor larger than
max_boundare clipped.

◆ DilateImage()

std::shared_ptr< Image > open3d::geometry::DilateImage ( const Image input,
int  half_kernel_size 
)

Function to dilate 8bit mask map.

◆ DownsampleImage()

std::shared_ptr< Image > open3d::geometry::DownsampleImage ( const Image input)

Function to 2x image downsample using simple 2x2 averaging.

◆ EstimateNormals()

bool open3d::geometry::EstimateNormals ( PointCloud cloud,
const KDTreeSearchParam search_param = KDTreeSearchParamKNN() 
)

Function to compute the normals of a point cloud

Parameters
cloudis the input point cloud. It also stores the output normals. Normals are oriented with respect to the input point cloud if normals exist in the input.
search_paramThe KDTree search parameters

◆ FilterHorizontalImage()

std::shared_ptr< Image > open3d::geometry::FilterHorizontalImage ( const Image input,
const std::vector< double > &  kernel 
)

◆ FilterImage() [1/2]

std::shared_ptr< Image > open3d::geometry::FilterImage ( const Image input,
Image::FilterType  type 
)

Function to filter image with pre-defined filtering type.

◆ FilterImage() [2/2]

std::shared_ptr< Image > open3d::geometry::FilterImage ( const Image input,
const std::vector< double > &  dx,
const std::vector< double > &  dy 
)

Function to filter image with arbitrary dx, dy separable filters.

◆ FilterImagePyramid()

ImagePyramid open3d::geometry::FilterImagePyramid ( const ImagePyramid input,
Image::FilterType  type 
)

Function to filter image pyramid.

◆ FilterRGBDImagePyramid()

RGBDImagePyramid open3d::geometry::FilterRGBDImagePyramid ( const RGBDImagePyramid rgbd_image_pyramid,
Image::FilterType  type 
)

◆ FlipImage()

std::shared_ptr< Image > open3d::geometry::FlipImage ( const Image input)

◆ IntersectingAABBAABB()

bool open3d::geometry::IntersectingAABBAABB ( const Eigen::Vector3d &  min0,
const Eigen::Vector3d &  max0,
const Eigen::Vector3d &  min1,
const Eigen::Vector3d &  max1 
)

◆ IntersectingTriangleTriangle3d()

bool open3d::geometry::IntersectingTriangleTriangle3d ( const Eigen::Vector3d &  p0,
const Eigen::Vector3d &  p1,
const Eigen::Vector3d &  p2,
const Eigen::Vector3d &  q0,
const Eigen::Vector3d &  q1,
const Eigen::Vector3d &  q2 
)

◆ KDTreeFlann::Search< Eigen::Vector3d >()

template int open3d::geometry::KDTreeFlann::Search< Eigen::Vector3d > ( const Eigen::Vector3d &  query,
const KDTreeSearchParam param,
std::vector< int > &  indices,
std::vector< double > &  distance2 
) const

◆ KDTreeFlann::Search< Eigen::VectorXd >()

template int open3d::geometry::KDTreeFlann::Search< Eigen::VectorXd > ( const Eigen::VectorXd &  query,
const KDTreeSearchParam param,
std::vector< int > &  indices,
std::vector< double > &  distance2 
) const

◆ KDTreeFlann::SearchHybrid< Eigen::Vector3d >()

template int open3d::geometry::KDTreeFlann::SearchHybrid< Eigen::Vector3d > ( const Eigen::Vector3d &  query,
double  radius,
int  max_nn,
std::vector< int > &  indices,
std::vector< double > &  distance2 
) const

◆ KDTreeFlann::SearchHybrid< Eigen::VectorXd >()

template int open3d::geometry::KDTreeFlann::SearchHybrid< Eigen::VectorXd > ( const Eigen::VectorXd &  query,
double  radius,
int  max_nn,
std::vector< int > &  indices,
std::vector< double > &  distance2 
) const

◆ KDTreeFlann::SearchKNN< Eigen::Vector3d >()

template int open3d::geometry::KDTreeFlann::SearchKNN< Eigen::Vector3d > ( const Eigen::Vector3d &  query,
int  knn,
std::vector< int > &  indices,
std::vector< double > &  distance2 
) const

◆ KDTreeFlann::SearchKNN< Eigen::VectorXd >()

template int open3d::geometry::KDTreeFlann::SearchKNN< Eigen::VectorXd > ( const Eigen::VectorXd &  query,
int  knn,
std::vector< int > &  indices,
std::vector< double > &  distance2 
) const

◆ KDTreeFlann::SearchRadius< Eigen::Vector3d >()

template int open3d::geometry::KDTreeFlann::SearchRadius< Eigen::Vector3d > ( const Eigen::Vector3d &  query,
double  radius,
std::vector< int > &  indices,
std::vector< double > &  distance2 
) const

◆ KDTreeFlann::SearchRadius< Eigen::VectorXd >()

template int open3d::geometry::KDTreeFlann::SearchRadius< Eigen::VectorXd > ( const Eigen::VectorXd &  query,
double  radius,
std::vector< int > &  indices,
std::vector< double > &  distance2 
) const

◆ LinearTransformImage()

void open3d::geometry::LinearTransformImage ( Image input,
double  scale = 1.0,
double  offset = 0.0 
)

Function to linearly transform pixel intensities image_new = scale * image + offset

◆ OrientNormalsToAlignWithDirection()

bool open3d::geometry::OrientNormalsToAlignWithDirection ( PointCloud cloud,
const Eigen::Vector3d &  orientation_reference = Eigen::Vector3d(0.0, 0.0, 1.0) 
)

Function to orient the normals of a point cloud

Parameters
cloudis the input point cloud. It must have normals. Normals are oriented with respect to
orientation_reference

◆ OrientNormalsTowardsCameraLocation()

bool open3d::geometry::OrientNormalsTowardsCameraLocation ( PointCloud cloud,
const Eigen::Vector3d &  camera_location = Eigen::Vector3d::Zero() 
)

Function to orient the normals of a point cloud

Parameters
cloudis the input point cloud. It also stores the output normals. Normals are oriented with towards
camera_location

◆ OrientTriangleHelper()

template<typename F >
bool open3d::geometry::OrientTriangleHelper ( const std::vector< Eigen::Vector3i > &  triangles,
F &  swap 
)

◆ PointerAt() [1/2]

template<typename T >
T * open3d::geometry::PointerAt ( const Image image,
int  u,
int  v 
)

Function to access the raw data of a single-channel Image.

◆ PointerAt() [2/2]

template<typename T >
T * open3d::geometry::PointerAt ( const Image image,
int  u,
int  v,
int  ch 
)

Function to access the raw data of a multi-channel Image.

◆ PointerAt< float >() [1/2]

template float* open3d::geometry::PointerAt< float > ( const Image image,
int  u,
int  v 
)

◆ PointerAt< float >() [2/2]

template float* open3d::geometry::PointerAt< float > ( const Image image,
int  u,
int  v,
int  ch 
)

◆ PointerAt< int >() [1/2]

template int* open3d::geometry::PointerAt< int > ( const Image image,
int  u,
int  v 
)

◆ PointerAt< int >() [2/2]

template int* open3d::geometry::PointerAt< int > ( const Image image,
int  u,
int  v,
int  ch 
)

◆ PointerAt< uint16_t >() [1/2]

template uint16_t* open3d::geometry::PointerAt< uint16_t > ( const Image image,
int  u,
int  v 
)

◆ PointerAt< uint16_t >() [2/2]

template uint16_t* open3d::geometry::PointerAt< uint16_t > ( const Image image,
int  u,
int  v,
int  ch 
)

◆ PointerAt< uint8_t >() [1/2]

template uint8_t* open3d::geometry::PointerAt< uint8_t > ( const Image image,
int  u,
int  v 
)

◆ PointerAt< uint8_t >() [2/2]

template uint8_t* open3d::geometry::PointerAt< uint8_t > ( const Image image,
int  u,
int  v,
int  ch 
)

◆ RemoveRadiusOutliers()

std::tuple< std::shared_ptr< PointCloud >, std::vector< size_t > > open3d::geometry::RemoveRadiusOutliers ( const PointCloud input,
size_t  nb_points,
double  search_radius 
)

Function to remove points that have less than

Parameters
nb_pointsin a sphere of radius
search_radius

◆ RemoveStatisticalOutliers()

std::tuple< std::shared_ptr< PointCloud >, std::vector< size_t > > open3d::geometry::RemoveStatisticalOutliers ( const PointCloud input,
size_t  nb_neighbors,
double  std_ratio 
)

Function to remove points that are further away from their

Parameters
nb_neighborneighbors in average.

◆ SamplePointsPoissonDisk()

std::shared_ptr< PointCloud > open3d::geometry::SamplePointsPoissonDisk ( const TriangleMesh input,
size_t  number_of_points,
double  init_factor = 5,
const std::shared_ptr< PointCloud pcl_init = nullptr 
)

Function to sample

Parameters
number_of_pointspoints (blue noise). Based on the method presented in Yuksel, "Sample Elimination for Generating Poisson Disk Sample Sets", EUROGRAPHICS, 2015 The PointCloud
pcl_initis used for sample elimination if given, otherwise a PointCloud is first uniformly sampled with
init_number_of_pointsx
number_of_pointsnumber of points.

◆ SamplePointsUniformly() [1/2]

std::shared_ptr<PointCloud> open3d::geometry::SamplePointsUniformly ( const TriangleMesh input,
size_t  number_of_points,
std::vector< double > &  triangle_areas,
double  surface_area 
)

◆ SamplePointsUniformly() [2/2]

std::shared_ptr< PointCloud > open3d::geometry::SamplePointsUniformly ( const TriangleMesh input,
size_t  number_of_points 
)

Function to sample.

Parameters
number_of_pointspoints uniformly from the mesh

◆ SelectDownSample() [1/2]

std::shared_ptr< PointCloud > open3d::geometry::SelectDownSample ( const PointCloud input,
const std::vector< size_t > &  indices,
bool  invert = false 
)

Function to select points from

Parameters
inputpointcloud into
Returns
output pointcloud Points with indices in
Parameters
indicesare selected.

◆ SelectDownSample() [2/2]

std::shared_ptr< TriangleMesh > open3d::geometry::SelectDownSample ( const TriangleMesh input,
const std::vector< size_t > &  indices 
)

Function to select points from

Parameters
inputTriangleMesh into
Returns
output TriangleMesh Vertices with indices in
Parameters
indicesare selected.

◆ SimplifyQuadricDecimation()

std::shared_ptr< TriangleMesh > open3d::geometry::SimplifyQuadricDecimation ( const TriangleMesh input,
int  target_number_of_triangles 
)

Function to simplify mesh using Quadric Error Metric Decimation by Garland and Heckbert.

◆ SimplifyVertexClustering()

std::shared_ptr< TriangleMesh > open3d::geometry::SimplifyVertexClustering ( const TriangleMesh input,
double  voxel_size,
TriangleMesh::SimplificationContraction  contraction = TriangleMesh::SimplificationContraction::Average 
)

Function to simplify mesh using Vertex Clustering. The result can be a non-manifold mesh.

◆ SubdivideLoop()

std::shared_ptr< TriangleMesh > open3d::geometry::SubdivideLoop ( const TriangleMesh input,
int  number_of_iterations 
)

Function to subdivide triangle mesh using Loop's scheme. Cf. Charles T. Loop, "Smooth subdivision surfaces based on triangles", 1987. Each triangle is subdivided into four triangles per iteration.

◆ SubdivideMidpoint()

std::shared_ptr< TriangleMesh > open3d::geometry::SubdivideMidpoint ( const TriangleMesh input,
int  number_of_iterations 
)

Function to subdivide triangle mesh using the simple midpoint algorithm. Each triangle is subdivided into four triangles per iteration and the new vertices lie on the midpoint of the triangle edges.

◆ UniformDownSample()

std::shared_ptr< PointCloud > open3d::geometry::UniformDownSample ( const PointCloud input,
size_t  every_k_points 
)

Function to downsample

Parameters
inputpointcloud into output pointcloud uniformly
every_k_pointsindicates the sample rate.

◆ VoxelDownSample()

std::shared_ptr< PointCloud > open3d::geometry::VoxelDownSample ( const PointCloud input,
double  voxel_size 
)

Function to downsample

Parameters
inputpointcloud into output pointcloud with a voxel
voxel_sizedefines the resolution of the voxel grid, smaller value leads to denser output point cloud. Normals and colors are averaged if they exist.

◆ VoxelDownSampleAndTrace()

std::tuple< std::shared_ptr< PointCloud >, Eigen::MatrixXi > open3d::geometry::VoxelDownSampleAndTrace ( const PointCloud input,
double  voxel_size,
const Eigen::Vector3d &  min_bound,
const Eigen::Vector3d &  max_bound,
bool  approximate_class = false 
)

Function to downsample using VoxelDownSample, but specialized for Surface convolution project. Experimental function.