Good morning,
I've been trying to use CloudCompare to calculate the volume loss of a part before and after being used. To do this I've 3D scanned it before and after and imported both point clouds into the software, then I've used ICP to align them and it did a pretty good job, however since the used part is a bit lower than the new one, when it optimizes for RMS it shifts it up.
Is there a way that I can have the software only focus on the top part of the geometry, (the circle on top), since this part of the geometry doesn't wear.
I've attached a few images to make it easier to understand.
Thanks in advance for any help you can offer
Calculating volume loss between new and used 3d scans
-
- Posts: 3
- Joined: Thu Jun 24, 2021 2:00 pm
Calculating volume loss between new and used 3d scans
- Attachments
-
- volume.JPG (45.01 KiB) Viewed 3886 times
-
- used side.JPG (59.26 KiB) Viewed 3886 times
-
- old.JPG (81.3 KiB) Viewed 3886 times
-
- New.JPG (78.33 KiB) Viewed 3886 times
-
- new side.JPG (63.68 KiB) Viewed 3886 times
-
- Posts: 187
- Joined: Tue Mar 05, 2019 3:59 pm
Re: Calculating volume loss between new and used 3d scans
So you will want to experiment with the research settings tab for ICP
If you already have the tops near aligned and know what axis they are on you can restrict translation along that axis, like if the circle you want lined up is in the XY plane you could turn of the Z translation.
Another option is add a scalar field for weights, and give a higher weight to the circle region, easiest way I can think to do this would be to add a SF to the entire cloud and set it to say 0.5, and then segment the cloud into different areas that you want to change weights for, then just set all SF values on points within the segmented clouds to the desired weight, then recombine the segmented clouds back into a single cloud to pass to ICP
If you already have the tops near aligned and know what axis they are on you can restrict translation along that axis, like if the circle you want lined up is in the XY plane you could turn of the Z translation.
Another option is add a scalar field for weights, and give a higher weight to the circle region, easiest way I can think to do this would be to add a SF to the entire cloud and set it to say 0.5, and then segment the cloud into different areas that you want to change weights for, then just set all SF values on points within the segmented clouds to the desired weight, then recombine the segmented clouds back into a single cloud to pass to ICP
-
- Posts: 3
- Joined: Thu Jun 24, 2021 2:00 pm
Re: Calculating volume loss between new and used 3d scans
Thanks for your help, aligning the top circles manually by restricting movement seems like a straightforward approach. Currently the "used" part rests slightly above the other one.
There's only one issue that maybe you can help me resolve too. After the point clouds came out of the scanner is the coordinate system is crooked, not sure if that's an issue with the scanner which I might have to resolve. But for the scans that I've already done, is there a way that I can have CC automatically detect this circle primitive for both scans, move the origin there and rotate the axis so that Z is perpendicular to the plane?
Thanks again!
There's only one issue that maybe you can help me resolve too. After the point clouds came out of the scanner is the coordinate system is crooked, not sure if that's an issue with the scanner which I might have to resolve. But for the scans that I've already done, is there a way that I can have CC automatically detect this circle primitive for both scans, move the origin there and rotate the axis so that Z is perpendicular to the plane?
Thanks again!
- Attachments
-
- axis.png (3.64 KiB) Viewed 3846 times
Re: Calculating volume loss between new and used 3d scans
Sadly CC can't do that kind of things... You can only use the 'level' tool (https://www.cloudcompare.org/doc/wiki/i ... itle=Level) if you have a reference flat surface in both scans (you 'level' the 2 clouds, and then you can fine tune the rotation about the normal to that plane manually, or with ICP).
Just one point regarding your first question: normally to get a nice registration despite the fact that the 2 shapes are not exactly the same, you should reduce the main 'overlap' parameter (so that the non overlapping parts are ignored).
Just one point regarding your first question: normally to get a nice registration despite the fact that the 2 shapes are not exactly the same, you should reduce the main 'overlap' parameter (so that the non overlapping parts are ignored).
Daniel, CloudCompare admin
-
- Posts: 3
- Joined: Thu Jun 24, 2021 2:00 pm
Re: Calculating volume loss between new and used 3d scans
Reducing the "overlap" to 80% has actually helped quite a bit, what I'm thinking that might also help is if I delete the bottom part of the scan which is irrelevant to the process and then continue tweaking the overlap parameter.
I was able to, by selecting three points of the top surface, re align ('level') the coordinate system. Although this method isn't perfect I think it will be repeatable enough for what I'm trying to achieve.
Now that I have both scans on the same coordinate system, is there a way that I can delete the bottom part of both scans so that the algorithm only focuses on aligning the top part?
Thanks again for everyone's help.
I was able to, by selecting three points of the top surface, re align ('level') the coordinate system. Although this method isn't perfect I think it will be repeatable enough for what I'm trying to achieve.
Now that I have both scans on the same coordinate system, is there a way that I can delete the bottom part of both scans so that the algorithm only focuses on aligning the top part?
Thanks again for everyone's help.
- Attachments
-
- to delete.JPG (74.97 KiB) Viewed 3806 times
-
- aligned.JPG (63.78 KiB) Viewed 3806 times
-
- unaligned.JPG (65.94 KiB) Viewed 3806 times
-
- Posts: 187
- Joined: Tue Mar 05, 2019 3:59 pm
Re: Calculating volume loss between new and used 3d scans
Well if you know the coordinate system you could export the coordinate to SF
and then filter by SF valueRe: Calculating volume loss between new and used 3d scans
Or if you mean 'manually', you can also use the 'Cross section' tool.
Daniel, CloudCompare admin