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
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:
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()