我有一个树簇点云数据集,其中一些点云有墙与之相连。我注意到这些连接到墙壁的树的直方图经常在一侧倾斜,并且当它靠近墙壁数据点时曲线变得平坦。我创建了一个方法来删除倾斜数据,但它也会从具有完美数据传播的集群中删除一些数据,当曲线几乎接触到 x 轴时。 这就是我现在做的。
是否有任何其他方法可以消除数据中的偏斜,同时保持集群具有良好的数据分布?
这是我试过的。该代码用于 x 轴,但我在 y 轴上应用相同的方法并合并结果
xlist <- list()
ylist <- list()
i = 1
idx = base::unique(lasThinned$treeID)
il <- length(idx)
while (i<il){
check <- filter_poi(lasThinned,treeID == i)
XMean<-mean(check$X)
Xstd<-sd(check$X)
xz <- (check$X-XMean)/ Xstd
j = 1
xZindex = list()
while (j <= length(xz)){
if (xz[j] < -2 || xz[j] > 2) {
xZindex[[j]] <- j
}
j = j + 1
}
xzList <- xZindex[lengths(xZindex) != 0]
testx <- list()
testy <- list()
for (xidx in xzList){
testx <- append(testx,check$X[xidx])
testy <- append(testy,check$Y[xidx])
}
xlist <- append(xlist,testx)
ylist <- append(ylist,testy)
i = i + 1
}
xaxis <- filter_poi(lasThinned, (!X %in% xlist) & (!Y %in% ylist))