Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Opencv_contrib - Surface matching issue

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.

output

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