Finding the symmetry plane is not something I can think of, but if you provide a plane suggestion here is how I would process the data:
1. Loop through the point cloud and determine on what side of the plane the point is lying.
Make 2 indices vectors corresponding to each side of the plane.
Fo2. r each point of one side, estimate the mirror point:
- Find the length of the distance point/plane (perpendicular to the plane)
- Translate the point on the plane normal axis two times the previous distance
3. Search for the nearest neighbor (using KdTree for example etc.) between the mirrored point and the other set of indices.
4. Compute the distance between the mirror point and the nearest neighbor.
Do that for all points and you should get a good idea of how symmetric your point cloud is.