public static double Test8_CubeOutliers_Rotate(ref PointCloudVertices myPCLTarget, ref PointCloudVertices myPCLSource, ref PointCloudVertices myPCLResult) { //myPCLTarget = Vertices.CreateCube_Corners(50); Model myModel = Example3DModels.Cuboid("Cuboid", 20f, 40f, 100, System.Drawing.Color.White, null); myPCLTarget = myModel.PointCloudVertices; myPCLSource = PointCloudVertices.CloneVertices(myPCLTarget); Matrix3d R = new Matrix3d(); R = R.RotationXYZDegrees(30, 30, 30); PointCloudVertices.Rotate(myPCLSource, R); PointCloudVertices.CreateOutliers(myPCLSource, 5); myPCLResult = IterativeClosestPointTransform.Instance.PerformICP(myPCLSource, myPCLTarget); return(IterativeClosestPointTransform.Instance.MeanDistance); }
public static double Test8_CubeOutliers_Rotate(ref List <Vertex> myVerticesTarget, ref List <Vertex> myVerticesSource, ref List <Vertex> myVerticesResult) { //myVerticesTarget = Vertices.CreateCube_Corners(50); Model3D myModel = Example3DModels.Cuboid("Cuboid", 20f, 40f, 100, new Vector3d(1, 1, 1), null); myVerticesTarget = myModel.VertexList; myVerticesSource = VertexUtils.CloneListVertex(myVerticesTarget); Matrix3d R = new Matrix3d(); R = R.Rotation30Degrees(); VertexUtils.RotateVertices(myVerticesSource, R); VertexUtils.CreateOutliers(myVerticesSource, 5); myVerticesResult = IterativeClosestPointTransform.Instance.PerformICP(myVerticesTarget, myVerticesSource); return(IterativeClosestPointTransform.Instance.MeanDistance); }
public static double Test5_CuboidIdentity(ref PointCloudVertices myPCLTarget, ref PointCloudVertices myPCLSource, ref PointCloudVertices myPCLResult) { double cubeSize = 1; double cubeSizeY = 2; int numberOfPoints = 3; Model myModel = Example3DModels.Cuboid("Cuboid", cubeSize, cubeSizeY, numberOfPoints, System.Drawing.Color.White, null); myPCLTarget = myModel.PointCloudVertices; myPCLSource = PointCloudVertices.CloneVertices(myPCLTarget); //Vertices.Translate(myPCLSource, 220, -300, 127); //Vertices.ScaleByFactor(myPCLSource, 0.2); //Matrix3d R = new Matrix3d(); //R = R.RotationXYZDegrees(90, 124, -274); //Vertices.Rotate(myPCLSource, R); myPCLResult = IterativeClosestPointTransform.Instance.PerformICP(myPCLSource, myPCLTarget); return(IterativeClosestPointTransform.Instance.MeanDistance); }