天天看點

MATLAB點雲處理(十二):歐式聚類分割(pcsegdist)

文章目錄

    • 1 歐式聚類分割函數 pcsegdist
    • 2 代碼實作
    • 3 輸出參數 labels
    • 4 MATLAB點雲處理進階(一):歐式聚類分割❤️獨立視窗顯示每一聚類結果❤️儲存聚類點雲

1 歐式聚類分割函數 pcsegdist

pcsegdist

— 基于歐式距離實作點雲分割。

MATLAB提供了2種重載方式

将點雲分割為多個聚類,不同聚類的點之間的最小歐幾裡德距離為minDistance
将點雲分割為多個聚類,不同聚類的點之間的最小歐幾裡德距離為minDistance,同時傳回聚類個數numClusters,要求numClusters為正整數

2 代碼實作

無組織點雲的歐式聚類分割

代碼:

clc;
clear;

% 加載點雲
ptCloud_in = pcread('trees.pcd');

% 最小聚類歐式距離
minDist = 1.0;

% 執行歐式聚類分割
[labels,numClusters] = pcsegdist(ptCloud_in,minDist);

% 顯示分割結果
pcshow(ptCloud_in.Location,labels);
colormap(hsv(numClusters));
title('歐式聚類分割');
xlabel('X(m)');
ylabel('Y(m)');
zlabel('Z(m)');
           

結果展示:

MATLAB點雲處理(十二):歐式聚類分割(pcsegdist)

3 輸出參數 labels

labels

— Cluster labels

聚類标簽,作為以下内容之一傳回。

  • 如果點雲ptCloud将點位置存儲為無組織的M×3矩陣,則标簽是M×1向量。
  • 如果點雲ptCloud将點位置存儲為有組織的M-by-N-by-3數組,則标簽是M-by-N矩陣。

點雲中的每個點都有一個聚類标簽,由标簽中相應的元素指定。每個标簽的值是一個從0到有效聚類數numClusters的整數。值0是為無效點,例如具有Inf或NaN坐标的點。

4 MATLAB點雲處理進階(一):歐式聚類分割❤️獨立視窗顯示每一聚類結果❤️儲存聚類點雲

請點選這裡

相關連結

https://ww2.mathworks.cn/help/vision/ref/pcsegdist.html#d123e189157