Using Scanalyze

People often ask us how to use this little gem of a software package to align 3D scans. Well here's the tutorial! While Scanalyze doesn't have some of the beefy tools that a commercial package like RapidForm or Geomagic has, it does what's important, which is align 3D scans. It works great and sometimes we favor it over one of the big packages simply because it's so quick and convient to use. It can be a bit of a chore chore to figure out and use though. The only flaw we've found is that it tends to get unstable with too much geometry actively loaded. This isn't too big of a deal, save often, and unload the geometry if you're not actively using it.

While Scananalyze is free and does a good job, it's often much easier to use a professional software package like Leios Mesh to do the same thing. It's easier to install too.
Do the same task using Leios Mesh.
Order a copy of Leios Mesh.

1) Download and Install Scanalyze

Download scanalyze, and install it according to the instructions on their website.

2) Triangulate your point cloud

Scanalyze doesn't align point clouds, so you'll need to trianguate your point cloud first. Use your favorite scan processing package to do this.

As an alternative mesh_align in the trimesh2 package will align point clouds with no meshing required. This is sometimes perferable, with the downside that mesh_align has no user interface.

3) Get your data in to the PLY data format

If your 3D scanner or scan processing software doesn't native export ply files, just export as an obj. Use mesh_filter program in the trimesh2 package to convert from obj to ply. It's one of the most stable we've used, but there's plenty of programs out there there on the web.

3) Load in the files you want to align

We're going to align three small files, they've been very roughly (draft) triangulated. It doesn't matter because we'll re-triangulate after alignment anyway.

Set it to Render : False Color to true

Once loaded you should get your scans imported but not aligned.

3) Align one object to another

Hide all the meshes but the two you want to align using the mesh control window. Press i to bring up the ICP registration menu. (Or go to Commands : ICP registration)

Sync the meshes or just select the two you want to work with. It helps if you move the two mesh's you want to align reasonably close to each other. With the mesh you have selected change the controls to to moveMesh(m) instead of moveView(v).

Remember the one you have selected is the one that moves, so you want to align one mesh to the other... hit register meshes a few times or increase the interations and register mesh one, and the meshe's should almost be on top of each other.

Once that happens, press register 1 round 100% a few times to finalize things, that and set the absolute (mm) value from 5 to 3 to 1 and finally 0 as it gets progressively closer. If it's not even close, increase the absolute (mm) value higher. You shouldn't need to do this if your scans were reasonably close to each other.

 

4) Align all meshes

Once you have everything aligned, all the pieces should fit with each other. Do a global registration to make sure all pieces align with each other.

5) Merge the mesh

Remember to save your work, the file format is .xf (For you developers, the file is just a text file with a 3D matrix which describes the transform of the object). I don't like flattening that that destroys the mesh. Instead go to the mesh controls and hit CTRL+G to create a mesh group. Now export the mesh out.

5) Re-Triangulate

Scanalyze doesn't do any mesh cleanup, that means you'll now have a lot of mesh overlap and holes, you'll now have to re-triangulate in your 3D scan processing package. Using those .xf files you can import it in to the 3D3Solutions 3DSMax Plugin, UV Project, to correctly re-project your textures even though the mesh has moved around.

Hope you enjoyed our short article. Learn more