added full pipeline
This commit is contained in:
+5
-25
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user