文章目錄
-
- 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)');
結果展示:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP350MVR0T1EkaOBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmL0gjZkJTZ5IDZilDZ1QGN5UWZ4QzYzIjNxEzNjlzM2kzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
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