Просчет новой функции «pcsegdist» в Matlab R2018b - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь протестировать новую функцию " pcsegdist " в Matlab R2018b.Тем не менее, результат равен неправильно для облака точек сегмента в кластеры на основе евклидова расстояния

Пример: я тестирую с точками данных 3D - 1797 точек (см. Прикрепленный файл test.txt).Отмечено, что наименьшее расстояние между 2 соседними точками составляет 0,3736

tic
clear;clc;filename = 'test.txt'; load('test.txt');P = test(:,1:3);%get data=coordinate(x,y,z) from set of data "column" at (all row & column 1,2,3)
ptCloud = pointCloud(P);
minDistance = 0.71;%this value should less than the smallest 3D distance between 2 clusters
[labels,numClusters] = pcsegdist(ptCloud,minDistance);%numClusters: the number of Cluster
%labels: is the kx1 matrix. This is index of each voxel in each cluster
toc
%% Generate the cell_cluster
cell_cluster={};x=P(:,1);y=P(:,2);z=P(:,3);
for i=1:numClusters
    cluster_i=[x(labels==i),y(labels==i),z(labels==i)];%call x,y,z coord of all points which is belong the same cluster
    cell_cluster{end+1} = cluster_i;%this is (1xk)cell. where k=number of cluster
end
figure;Plot_cell(cell_cluster);view(3);% plot result cluster(using function to plot)

enter image description here Но когда я проверяю с помощью ручного метода (наземные данные истинности), результат должен выглядеть следующим образомfigure: enter image description here enter image description here Таким образом, я задаюсь вопросом о результате новой функции "pcsegdist" в Matlab R2018b, или я неправильно понимаю или я где-то ошибаюсь? введите ссылкуописание здесь

...