Skip to content

Commit

Permalink
Add links to classes in README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
RenkeHuang authored Nov 18, 2024
1 parent c5e63ef commit 1978c8b
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ make clean
```

## Background
The primary functionality of this package is implemented in the `offsetter` module.
The primary functionality of this package is implemented in the [offsetter](https://github.com/RenkeHuang/point_utils/blob/main/point_utils/offsetter.py) module.
Its main objective is to augment a three-dimensional point cloud dataset by adding offset points corresponding to a selected subset of existing points.

For example, suppose we select a subset of points labeled "B" (this selection can be performed using data processing techniques such as SQL queries and tagging).
Expand All @@ -98,7 +98,7 @@ Here we give a brief overview of these methods:
#### Local Information Methods
Methods focus on local data characteristics, and rely on the immediate surroundings of the target point to determine the direction of the offset vectors.

- **Nearest-Neighbor via K-D Tree**: Calculate the average displacement vectors from each "B" point to its nearest neighbors and use the opposite direction of this mean vector as the direction of the offset vector for the "B" point.
- **Nearest-Neighbor via K-D Tree**: Calculate the average displacement vectors from each "B" point to its nearest neighbors and use the opposite direction of this mean vector as the direction of the offset vector for the "B" point.

- **Surface Normals via Local Surface Fitting**: Fit a local surface around each "B" point using techniques such as least squares fitting. Compute the surface normal from this fitted surface and use it as the direction for the offset vector.

Expand All @@ -107,11 +107,15 @@ Methods focus on local data characteristics, and rely on the immediate surroundi

#### Global Information Methods
Methods consider the global structure or properties of the entire dataset.
- **Surface Normals via Convex Hull Method**: Construct a Convex Hull for the entire point cloud to determine the global geometric boundaries. Compute the normals of the convex hull to define the direction of the offset vectors.
- **Surface Normals via Convex Hull Method**: Construct a Convex Hull for the entire point cloud to determine the global geometric boundaries. Compute the normals of the convex hull to define the direction of the offset vectors.

- **Radial Expansion**: Calculate the centroid of the entire point cloud. For each B point, computes the vector pointing from the centroid to the point and uses this direction for the offset vector.

- **Principal Component Analysis (PCA)**: Perform PCA on the entire point cloud to identify the principal directions of variance. For each B point, the direction corresponding to the smallest eigenvalue (least variance) can be considered as pointing “away” from the densest part of the data.

- **Voronoi Diagram**: Construct a 3D Voronoi diagram of the entire point cloud. For each "B" point, identify its Voronoi cell and determine the direction towards its farthest vertex, which likely points away from neighboring points.

#### Currently the following three methods are supported:
- Nearest-Neighbor via K-D Tree, implemented in **[KDTreeOffsets](https://github.com/RenkeHuang/point_utils/blob/c5e63ef8e1f9814d2f763a5323391dddd09fdba2/point_utils/offsetter.py#L98-L99) class**
- Convex Hull, implemented in **[ConvexHullOffsets](https://github.com/RenkeHuang/point_utils/blob/c5e63ef8e1f9814d2f763a5323391dddd09fdba2/point_utils/offsetter.py#L153-L154) class**
- Radial Expansion, implemented in **[CentroidOffsets](https://github.com/RenkeHuang/point_utils/blob/c5e63ef8e1f9814d2f763a5323391dddd09fdba2/point_utils/offsetter.py#L201-L202) class**

0 comments on commit 1978c8b

Please sign in to comment.