Ask Your Question

Opencv_contrib - Surface matching issue

asked 2020-10-15 05:46:15 -0500

8rainfog gravatar image

Hi everyone,

I have an issue with using surface matching module. Now the example with parasaurolophus_6700.ply and rs1_normals.ply works just fine, but I am working with pointclouds and dont have normals in my generated ply files. Now there is a function what generates these normals for you (computeNormalsPC3d), but im not sure it produces the results I expect.

I tried many different combinations, but none of the results work. I wanted to test this function on the example itself and the results were as bad as you can expect.

After loading the rs1_normals.ply file into cv::Mat I then performed normal computation overwriting the normals inside original file. At first outptu window showed okay-ish results, but when I imported results into meshlab - the orientation was way off.


MeshLab preview of results

The white mesh is the parasaurolophus, the dense green point cloud is the rs1_normals.ply with new normals and the point clound on the right is the result.

If I pass the original rs1_normals into match, result fits nice.

In my original work, I used structured light to get the model's point cloud; the physical measurements work and the point cloud is as accurate as you can be. Now, since normals play a major role when using surface matching module, I am kinda stuck on how to proceed.

Is there an alternative way of getting results I want here? Thanks

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2020-10-27 08:46:17 -0500

8rainfog gravatar image

updated 2020-10-27 08:48:15 -0500

Found a workaround inside virtual environment (with local scales) using virtrual measurements and dynamically calculating normals.

edit flag offensive delete link more
Login/Signup to Answer

Question Tools

1 follower


Asked: 2020-10-15 05:41:47 -0500

Seen: 37 times

Last updated: Oct 27