added full pipeline

This commit is contained in:
Markus Friedrich
2020-06-26 16:29:24 +02:00
parent 2a7a236b89
commit fc88c687ae
2 changed files with 77 additions and 41 deletions
+5 -25
View File
@@ -1,7 +1,7 @@
import numpy as np
from sklearn.cluster import DBSCAN
import open3d as o3d
#import open3d as o3d
from pyod.models.lof import LOF
@@ -52,6 +52,8 @@ def label2color(labels):
num = labels.shape[0]
colors = np.zeros((num, 3))
print(labels)
minl, maxl = np.min(labels), np.max(labels)
for l in range(minl, maxl + 1):
colors[labels == l, :] = mini_color_table(l)
@@ -189,19 +191,6 @@ def cluster_dbscan(data, selected_indices, eps, min_samples=5, metric='euclidean
return npClusters
def draw_clusters(clusters):
clouds = []
for cluster_idx, cluster in enumerate(clusters):
cloud = o3d.PointCloud()
cloud.points = o3d.Vector3dVector(cluster[:, :3])
cloud.colors = o3d.Vector3dVector(cluster2Color(cluster, cluster_idx))
clouds.append(cloud)
o3d.draw_geometries(clouds)
def write_clusters(path, clusters, type_column=6):
file = open(path, "w")
file.write(str(len(clusters)) + "\n")
@@ -216,7 +205,7 @@ def write_clusters(path, clusters, type_column=6):
return 2
elif t == 1:
return 1
elif t == 3:
elif t == 2:
return 4
return t
@@ -228,15 +217,6 @@ def write_clusters(path, clusters, type_column=6):
np.savetxt(file, cluster[:, :6], header=str(len(cluster)) + ' ' + str(6), comments='')
def draw_sample_data(sample_data, colored_normals=False):
cloud = o3d.PointCloud()
cloud.points = o3d.Vector3dVector(sample_data[:, :3])
cloud.colors = \
o3d.Vector3dVector(label2color(sample_data[:, 6].astype(int)) if not colored_normals else sample_data[:, 3:6])
o3d.draw_geometries([cloud])
def normalize_pointcloud(pc, factor=1.0):
max = pc.max(axis=0)
min = pc.min(axis=0)
@@ -284,7 +264,7 @@ def split_outliers(pc, columns):
def append_onehotencoded_type(data, factor=1.0):
types = data[:, 6].astype(int)
res = np.zeros((len(types), 8))
res = np.zeros((len(types), 3))
res[np.arange(len(types)), types] = factor
return np.column_stack((data, res))