PointCloudLibrary / PointCloudLibrary/pcl
CropHull Filter missing points and adding extra points
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
When applying crop hull on a 3D concave hull, I get missing points and extra points in the filtered result.
Context
I am using a sphere hull and the point cloud of an arm as input of the algorithm. setCropOutside is
set to true as I want to get the points of the cloud that are inside the hull.
Current Behavior
The resulting filtered cloud has missing points and extra points. On the picture below is the hull made from the sphere point cloud and the arm point cloud with points outside the hull in green and points inside the hull in red.
Below are the files used to reproduce the issue :
- polygon.ply contains the hull information
- test_hand_downsampled_1000_2.obj is the input point cloud we want to test
- expected_filtered_result.obj is the result we wish to obtain (acquired through manual cropping with Blender).
- filtered_result.ply contains the result of the algorithm
I compared the obtained result with the desired result made from cropping the arm point cloud with Blender. As can be seen on the above image, some points that are not supposed to be part of the intersection are still considered to be inside the hull.
Numerically:
- 237 points are expected in the intersection (see expected_filtered_result.obj)
- 236 points are common
- 1 point is missing (237-236)
- there are 42 extra points
- hence 278 points are in resulting point cloud (see filtered_result.ply
NB : Please note there is one minor difference between the expected and given points of the clouds after 3 decimals. For exemple, the point with coordinate (-118.585701, -163.048050, 138.409943) in the expected result is (-118.5857, -163.04803, 138.40997) in obtained result.
To Reproduce
I use PCL 1.8.0 on Windows 10.
@taketwo @kunaltyagi
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the CropHull result with PCL 1.8.0 on Windows 10 using polygon.ply and test_hand_downsampled_1000_2.obj from CropHull.zip. Compare filtered_result.ply with expected_filtered_result.obj, checking the missing and extra points described in the issue. Done means the filtered cloud matches the expected intersection, accounting for the noted small coordinate differences.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-vision
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100