[surface] getArea(point cloud segment)

Aperta
#5,735 15 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 4 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
32/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
cpp

Direzione di ricerca

Inizia esaminando i passaggi NormalEstimationOMP e GreedyProjectionTriangulation descritti nell’issue, insieme alla voxelizzazione proposta e al ciclo per il calcolo dell’area dei triangoli. Chiarisci dove debba collocarsi una funzionalità generica per l’area dei segmenti e come debba essere valutata l’alternativa di calcolarla all’interno dell’algoritmo greedy; il lavoro sarà considerato completato quando saranno definiti un ambito concordato e una validazione su segmenti rappresentativi di nuvole di punti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

kind: request status: triage

Is your feature request related to a problem? Please describe.

I am developing segmentation algorithms in which I need to calculate the area of segments to make selections and I think the implementation of area calculation i did works well and can be applied general purpouse, so it could be merged in PCL

Solution

Essentially there are a few steps:
(1) optional voxeling of the segment
(2) NormalEstimationOMP
(3) GreedyProjectionTriangulation
(4) Sum the area of greedy triangles
Loop: area += 0.5 * P.cross(Q).norm();
where P and Q are two vectorial sides of the triangles

Describe alternatives you've considered

one might consider alternative surface mesh/triangulations but this seems to work fine on the samples I tested it
there is a little are overestimate due to the fact that the mesh is not perfectly smooth. the voxeling is aimed at reducing this effect.

the area += loop is done as double

An alternative would be to extract optionally this info directly inside the greedy alg. as it comes available so to minimnize the total processing time

Lingua principale
C++
Stelle
11.2k
Fork
4.7k
Merge medio
5g 8h
PR unite (30g)
10

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di PointCloudLibrary/pcl

Tutte le issue di PointCloudLibrary/pcl

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.