PointCloudLibrary / PointCloudLibrary/pcl

SupervoxelClustering: Improvement of Supervoxels point cloud data format processing

Open
#2,949 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

status: stale
Dominant language
C++
Stars
11.1k
Forks
4.7k
Avg merge
4d 10h
Merged PRs (30d)
6

Description

Your Environment

  • PCL Version:master branch

Context

https://github.com/PointCloudLibrary/pcl/blob/89ce7c60718ace9489d153e8b23f450fde121110/segmentation/include/pcl/segmentation/supervoxel_clustering.h#L328-L336

Expected Behavior

Add or change a static helper function
  • \ brief static helper function, return point cloud of labeled normal input voxel
  • \ param [in] Supervoxel cluster map in supervoxel_clusters
  • \ Back to super-voxel PointXYZLNormals cloud

Current Behavior

https://github.com/PointCloudLibrary/pcl/blob/89ce7c60718ace9489d153e8b23f450fde121110/examples/segmentation/example_supervoxels.cpp#L317-L319

In order to facilitate the processing of the above three point cloud data, the association is generated by the following three point clouds with labels.

PointLCloudT::Ptr refined_labeled_voxel_cloud
PointLNCloudT::Ptr refined_sv_l_normal_cloud
PointLCloudT::Ptr refined_full_labeled_cloud

Possible Solution

A ideas how to implement the addition or change

https://github.com/PointCloudLibrary/pcl/blob/89ce7c60718ace9489d153e8b23f450fde121110/segmentation/include/pcl/segmentation/supervoxel_clustering.h#L328-L336

Add the following function declaration at the end of the above

static pcl::PointCloudpcl::PointXYZLNormal::Ptr
makeSupervoxelXYZLNormalCloud(std::map<uint32_t, typename Supervoxel::Ptr> &supervoxel_clusters);

https://github.com/PointCloudLibrary/pcl/blob/89ce7c60718ace9489d153e8b23f450fde121110/segmentation/include/pcl/segmentation/impl/supervoxel_clustering.hpp#L609-L623

Add the following function definition at the end of the above

template pcl::PointCloudpcl::PointXYZLNormal::Ptr
pcl::SupervoxelClustering::makeSupervoxelXYZLNormalCloud(std::map<uint32_t, typename Supervoxel::Ptr > &supervoxel_clusters)
{
***
}

https://github.com/PointCloudLibrary/pcl/blob/89ce7c60718ace9489d153e8b23f450fde121110/examples/segmentation/example_supervoxels.cpp#L20-L29

Add the following types at the end of the above

typedef pcl::PointXYZLNormal PointLNT;
typedef pcl::PointCloud PointLNCloudT;

https://github.com/PointCloudLibrary/pcl/blob/89ce7c60718ace9489d153e8b23f450fde121110/examples/segmentation/example_supervoxels.cpp#L317-L320

Add the following to generate a labeled normal point cloud at the end of the above

PointLNCloudT::Ptr refined_sv_l_normal_cloud = pcl::SupervoxelClustering::makeSupervoxelXYZLNormalCloud(refined_supervoxel_clusters);

There may be some other additions or changes, such as the following

https://github.com/PointCloudLibrary/pcl/blob/89ce7c60718ace9489d153e8b23f450fde121110/segmentation/include/pcl/segmentation/supervoxel_clustering.h#L89-L100

Thanks!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading segmentation/include/pcl/segmentation/supervoxel_clustering.h and its implementation in segmentation/include/pcl/segmentation/impl/supervoxel_clustering.hpp, then inspect the referenced section of examples/segmentation/example_supervoxels.cpp. Done means adding the requested labeled normal-cloud helper and the example type definitions and call, with behavior matching the existing supervoxel cluster data.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-vision
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.