data structures - Finding specific shapes in point clouds quickly -


i've got point cloud, , detect occurrences of patterns of points in code.

let's have 1000 points in 3d space, , want detect instances of 3 points form 'l' shape each segment of l has specific length. point cloud may not have exact matches, may close (i.e. in point cloud, length of segment of 'l' may longer/shorter ideal)

my initial idea this:

  1. record distance between points in shape trying detect
  2. create empty 'potential shape'
  3. for each point in our potential shape, examine points at/near distances found in part 1)
  4. if find point, add our potential shape, , repeat part 3) until have points. check angles between points verify shape indeed correct. if not correct, go on next point , start again

the problem approach has terrible worst case running time. ideally, have kind of data structure speed queries 'find points between distancemin , distancemax away given point. can point me useful data structures might help.

i thinking of putting points in octree speed access time.

any other advice on how improve running time? heuristics speed things up?

note: shapes i'm trying find variable. not 'l'. tried looking @ hough transforms, seem useful detecting specific predetermined shapes lines/circles.

in pcl library there's sample consensus module, quoting directly docs:

holds sample consensus (sac) methods ransac , models planes , cylinders. these can combined freely in order detect specific models , paramters in point clouds.

maybe create shapes combining primitives , search them in cloud?.


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

android - layout with fragment and framelayout replaced by another fragment and framelayout -