简单的点云坡度滤波

编程入门 行业动态 更新时间:2024-10-22 19:35:27

简单的点云<a href=https://www.elefans.com/category/jswz/34/1212865.html style=坡度滤波"/>

简单的点云坡度滤波

8月的时候去了野外调查,一直没有时间更新博客,最近回到了学校,写了matlab中实现一种简单的坡度滤波算法,由于本人比较懒,以后的每个博客都尽量减少说明。

此外,其他的滤波:布料滤波(CSF)、简单形态学滤波、经验模态分解滤波的资源链接已经放在了

2021-8-13的博客中了。

2021-8-13-点云地面点识别-matlab示列与免费资源共享_~追风筝的猫的博客-CSDN博客

本文用到的示列数据可以在链接中下载到。

坡度滤波

 原理:坡度滤波算法中,把点云按照一定大小的格网进行划分,每个格网具有一定的坡度阈值,每个格网的点高程值减去格网中最低的高程值,然后除以它与最低点的距离得到坡度值。当坡度值超过这个阈值时,则被认定为非地面点;低于阈值则被认定为地面点。

算法步骤:

①设置格网大小(size,s),设置坡度阈值(threshold,t),计算格网的数量。

②顺序循环格网,寻找每个格网的最低点,然后格网内其他的点根据公式计算坡度值,假设最低点为min_p。

③每个格网循环每个点,用坡度值和坡度阈值t做比较,区分地面点和非地面点。

④循环结束,输出结果

MATLAB2019b-坡度滤波实现

clear % 加载点云数据,格式为txt,importdata可以打开
% load也可以打开
a = importdata("sample.txt");
% a为n*3的点云,仅仅包含了点云的xyz值% 设置格网大小,单位:米(m)
s = 5;
% 设置坡度阈值,单位:米(m)
t = 0.5;
% 设置地面点索引
gp = zeros(length(a(:,1)),1);% 计算格网数量
xcount = ceil((max(a(:,1))-min(a(:,1)))/s);
ycount = ceil((max(a(:,2))-min(a(:,2)))/s);tic
% 循环格网,按照先循环x再y的顺序进行
for j = 1:ycount% 格网的最低y值limity1 = (j-1) * s + min(a(:,2));% 格网的最高y值limity2 = j * s + min(a(:,2));% 寻找max_y和min_y之间的点b = a(a(:,2)>=limity1 & a(:,2)<limity2,:);% 索引在范围内的点idx1 = find(a(:,2)>=limity1 & a(:,2)<limity2);for i = 1:xcount% 格网的最低x值limitx1 = (i-1) * s + min(a(:,1));% 格网的最高x值limitx2 = i * s + min(a(:,1));% 寻找格网中的点c = b(b(:,1)>=limitx1 & b(:,1)<limitx2,:);% 索引格网内的点idx2 = find(b(:,1)>=limitx1 & b(:,1)<limitx2);idx3 = idx1(idx2);% 高程最小的点temp = c(c(:,3)==min(c(:,3)),:);if length(temp) > 1temp = temp(1,:);end% 计算坡度值 slopevaule = (c(:,3)-temp(:,3))./ sqrt((c(:,1)-temp(:,1)).^2+(c(:,2)-temp(:,2)).^2);% 索引满足要求的点idx4 = find(slopevaule > t);idx = idx3(idx4);gp(idx,:) = 1;end
end
tocpcshow(a,gp)

示列数据显示如下:

 滤波结果如下:其中地面点是紫色,非地面点黄色高亮显示

 

非地面点显示如下:

地面点显示如下:

看起来不比CSF滤波效果差,运行时间1.38秒,还不错。 

function资源已经上传,可以根据需要下载,在博主的主页。

更多推荐

简单的点云坡度滤波

本文发布于:2024-02-06 22:23:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1751466.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:坡度   简单

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!