Example #1
0
def create_training_data():
    training_data = []
    print("Start loading training_data")
    rotater = create_rotator()
    counter = 0
    for k in range(0, 441):
        cloud = PyntCloud.from_file("B%d.ply" % (k))
        cloud.add_scalar_field("hsv")
        voxelgrid_id = cloud.add_structure("voxelgrid", x_y_z=[128, 128, 128])
        points = cloud.get_sample("voxelgrid_centroids",
                                  voxelgrid_id=voxelgrid_id)
        new_cloud = PyntCloud(points)
        cloud1_test = new_cloud.get_sample(name="points_random", n=1024)
        new_cloud = PyntCloud(cloud1_test)
        xyz_load = np.asarray(new_cloud.points)
        #print(xyz_load)
        training_data.append([xyz_load])
        #new_cloud.to_file("out_file_%d.ply" % (k))
        #for r in range(0,len(rotater)):
        #training_data.append([])
        #for i in range(0,len(xyz_load)):
        #c = np.dot(xyz_load[i],rotater[r])
        #training_data[counter].append([c[0],c[1],c[2]])
        #counter = counter + 1
    print(len(training_data))
    print("data loaded")
    print("shuffle training data")
    training_data = np.asarray(training_data)
    print("getting Trainingdata into the right format")
    training_data = training_data.reshape(441, 3072)
    print(" trainingdata formated")
    return training_data
Example #2
0
def uniform_mesh_sampling(V,
                          F,
                          num_samples=2048,
                          grid_res=64,
                          mesh_samples=10**4):
    X_ = sample_faces(V, F, n_samples=mesh_samples)
    cloud = np_mat_to_pandas(X_)
    cloud = PyntCloud(cloud)
    voxelgrid_id = cloud.add_structure("voxelgrid",
                                       n_x=grid_res,
                                       n_y=grid_res,
                                       n_z=grid_res)
    # new_cloud = cloud.get_sample("voxelgrid_nearest", voxelgrid_id=voxelgrid_id, as_PyntCloud=True)
    new_cloud = cloud.get_sample("voxelgrid_centroids",
                                 voxelgrid_id=voxelgrid_id,
                                 as_PyntCloud=True)
    X = new_cloud.points.as_matrix()
    X = sample_points(X, num_samples)
    return X
            pcd_list.append(jittered)
        points = np.concatenate((pcd_list), axis=0)
    # Normalize coordinates
    centroid = np.mean(points, axis=0)
    points -= centroid
    furthest_distance = np.max(np.sqrt(np.sum(abs(points)**2, axis=-1)))
    points /= furthest_distance
    # Recreate pandas points from normalized points
    dataset = pd.DataFrame({
        'x': points[:, 0],
        'y': points[:, 1],
        'z': points[:, 2]
    })
    norm_point_cloud = PyntCloud(dataset)
    sampled_cloud = norm_point_cloud.get_sample("points_random",
                                                n=NUM_POINT,
                                                as_PyntCloud=True)
    points = sampled_cloud.points[["x", "y", "z"]].values
    sampled_cloud.to_file(
        os.path.join(BASE_DIR, "data", "assets", "test", "norm_" + ply_file))
    #point_cloud = ply_data["vertex"].data
    point_cloud_list = [[row[0], row[1], row[2]] for row in points]
    #result_array[idx] = point_cloud_list
    data_list.append(point_cloud_list)

# top = max([len(sublist) for sublist in data_list])

# Indexes from 'shape_names.txt'
labels_array = np.array(label_list, dtype="uint8")
# for L in data_list:
#     for coords in L:
Example #4
0
x = np.swapaxes(x, 0, 1)
#x = x[np.where(([0, -40] <= x[:, :2]) & (x[:, :2] <= [70, 40]))]
x = x[(x[:, 0] >= 0) & (x[:, 0] <= 70) & (x[:, 1] >= -40) & (x[:, 1] <= 40)]
print(x.shape)

df = pd.DataFrame(x, columns=['x', 'y', 'z'])
print(df.describe())
cloud = PyntCloud(df)

voxelgrid_id = cloud.add_structure("voxelgrid", n_x=512, n_y=448, n_z=32)
voxelgrid = cloud.structures[voxelgrid_id]
density_feature_vector = voxelgrid.get_feature_vector(mode="density")
print(density_feature_vector.shape)

new_cloud = cloud.get_sample("voxelgrid_nearest",
                             n=8,
                             voxelgrid_id=voxelgrid_id,
                             as_PyntCloud=True)
#new_cloud.plot()
print(new_cloud)

e_time = time.time()
print(e_time - s_time)
"""
x_points = x[:, 0]
y_points = x[:, 1]
_, ax = plt.subplots(1, 1, figsize=(7, 8))
ax.scatter(x_points, y_points, s=0.2)
"""

#plt.show()