我有非常密集的单返回点云收集与地面激光雷达,包括8000多个点,约700平方米。它由噪音点组成,我想把它们移除。我在Python3.6的PDAL管道中使用filters.outlier。
json = """{
"pipeline":[
{
"type":"readers.las",
"filename":"/LASfiles/9A-1B_subset15m.las"
},
{
"type":"filters.outlier",
"method":"radius",
"radius":1.0,
"min_k":4
},
{
"type":"writers.las",
"filename":"/LASfiles/9A-1B_sub15m_denoise.las"
}
]
}"""
import pdal
pipeline = pdal.Pipeline(json)
pipeline.validate()
pipeline.execute()代码运行良好,但创建了与原始云相同的点云,我试图更改半径的值,但得到了相同的结果。如果有人告诉我出了什么问题,我会非常感激的。
发布于 2018-07-17 17:37:51
这个很简单。如果再看一看文档,就会发现下面这个小片段:
值得注意的是,这两种滤波方法只是将7的分类值应用于噪声点(根据LAS规范)。为了完全消除噪声点,用户可以在管道中添加一个距离滤波器,从孤立点滤波器到下游。
尝试在异常值筛选器之后将以下内容添加到管道中。
{
"type":"filters.range",
"limits":"Classification![7:7]"
}这将传递每个点的分类值不等于7(这将表示噪声),并删除所有其他。
https://stackoverflow.com/questions/51376798
复制相似问题