Geometry from 2D point cloud with MATLAB -


i have unorganized point cloud , want compare ideal cad geometry , profile measurement of object. example, have cad data of ideal object , have point cloud this;

point cloud

how can compare these 2 data? know cad file, point on cad data belongs line or radius(arc), how can derive radius error of arc or length error of line?

i tried organize data knnsearch results not satisfying.so, tried draw line starting 1 point ( lets point 1) , want go next closest point ( lets point 2). if closest neighbour of point 2 point 1, go second closest point of point 2. algorithm seems me results not satisfying also. connection lines went 1 edge other.

i thought that, may should convert cad data point cloud , have compare each point of measurement closest point on cad point cloud. know points belong line , point belong arc , can calculate mean error line or arc. end points of lines or arcs trouble think. comparison results @ these points have large error think.

on other hand, cad geometry , measurements not convex , covered always. non-convex geometries can measured. example, can see measurements of inverted v shape lack of points. worst case;

worst case

if there errors on geometry estimation when measurements not enough, acceptable me.

cpu load important criteria me. there 10.000 points , want complete filterings , geometry matchings in 20 ms i7 processors.

are there robust solution aim?

ok, i'm answering question. matlab has built-in functions computational geometry.

boundary function of module has solved problem partially. can use non-convex geometries. convex geometries, i'm calculating center point of geometry simple avaraging of points. then, i'm sorting points atan2 function.

but can't figure out how can find geometries. 1 way using cad data , iterate described geometries in cad data minimize least square error between point cloud. other way is, creating arc , lines points directly. dont way faster , more robust.


Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -