【三维点云滤波】对三维点云空间数据进行滤波的matlab仿真
MATLAB 进行 仿真 三维 点云 滤波 空间数据
2023-09-11 14:15:33 时间
1.软件版本
MATLAB2021a
2.部分核心代码
clc;
clear;
close all;
warning off;
Im = 120;
In = 401;
%加载保存好的点云数据
load p.mat
%%
%步骤一:NAN点的去除
[R,C] = size(p);
x1 = p(:,1);
y1 = p(:,2);
z1 = p(:,3);
x_ini = reshape(x1,[Im,In]);
y_ini = reshape(y1,[Im,In]);
z_ini = reshape(z1,[Im,In]);
figure(1);
subplot(121);
surf(x_ini,y_ini,z_ini);
axis equal
camlight right;
lighting phong;
shading interp
title('滤波前');
x1(find(isnan(x1) == 1)) = 0;
y1(find(isnan(y1) == 1)) = 0;
z1(find(isnan(z1) == 1)) = 0;
x1 = smooth(x1,2,'moving');
y1 = smooth(y1,2,'moving');
z1 = smooth(z1,2,'moving');
x0 = reshape(x1,[Im,In]);
y0 = reshape(y1,[Im,In]);
z0 = reshape(z1,[Im,In]);
%%
%步骤二:去掉大面积的0像素点区域
for i = 1:In
tmpx(i) = length(find(x0(:,i) == 0));
end
ind = find(tmpx > 0);
x0(:,ind) = [];
y0(:,ind) = [];
z0(:,ind) = [];
%%
%步骤三:数据中,中空的区域的修补,使得曲面平滑
[Im,In] = size(x0);
%矩阵滤波及中值滤波
x0 = func_bu(x0,Im,In);
y0 = func_bu(y0,Im,In);
z0 = func_bu(z0,Im,In);
for i = 1:In
tmpx2(i) = length(find(x0(:,i) == 0));
end
ind2 = find(tmpx2 > 0);
x0(:,ind2) = [];
y0(:,ind2) = [];
z0(:,ind2) = [];
%%
%步骤四:高斯平滑
[Im,In] = size(x0);
x0 = func_smooth(x0,Im,In);
y0 = func_smooth(y0,Im,In);
z0 = func_smooth(z0,Im,In);
%%
%步骤五:三角重建
[Im,In] = size(x0);
figure(1);
subplot(122);
surf(x0,y0,z0);
axis equal
camlight right;
lighting phong;
shading interp
title('滤波后');
3.仿真结论
4.参考文献
A25-10
5.完整源码获得方式
方式1:微信或者QQ联系博主
方式2:订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码
相关文章
- 【MATLAB教程案例99】人脸图像的无线传输通信链路及远程识别系统matlab仿真(上)——通信链路
- 【MATLAB教程案例97】基于GA遗传优化的CNN卷积神经网络最优训练参数搜索matlab仿真
- 【MATLAB教程案例88】通过matlab模拟光的干涉现象
- 【MATLAB教程案例86】通过matlab实现lorenz混沌系统
- 【MATLAB教程案例78】基于GA优化的WSN最大覆盖率matlab仿真——扩展到任意一种优化算法解决WSN覆盖率问题
- 【MATLAB教程案例62】使用matlab实现基于PointNet++网络的点云数据分类仿真分析
- 【MATLAB教程案例57】使用matlab实现RCNN,FastRCNN以及FasterRCNN网络目标检测功能与仿真分析
- 【MATLAB教程案例44】通过matlab学习三维曲面的建模,颜色,透明度,动态变化等——以海浪曲面函数为例
- 【MATLAB教程案例36~42总结】语音信号处理matlab仿真经验和技巧总结
- 【MATLAB教程案例38】语音信号的去噪方法matlab仿真学习——LMS自适应滤波,谱减法去噪滤波及维纳滤波等
- 【MATLAB教程案例31】基于matlab的人脸检测相关算法的仿真与分析——肤色模型与形态学图像处理方法
- 【MATLAB教程案例27】基于matlab的图像配准算法的仿真与分析——sift,surf,kaze等
- 【MATLAB教程案例20】关于优化类算法的改进方向探索及matlab仿真对比分析
- 【MATLAB教程案例15】基于WOA鲸鱼优化算法的函数极值计算matlab仿真及其他应用
- 【MATLAB教程案例11】基于PSO粒子群优化算法的函数极值计算matlab仿真及其他应用
- 【MATLAB教程案例8】基于LS算法的OFDM调制解调系统信道估计和均衡算法的matlab仿真
- 【MATLAB教程案例7】基于Gardner环的定时误差检测matlab仿真
- 【MATLAB教程案例6】基于Costas环的载波同步matlab仿真
- 【FPGA教程案例46】图像案例6——基于FPGA的图像高斯滤波verilog实现,通过MATLAB进行辅助验证
- 利用Matlab进行图像处理
- 【Matlab小问题】# error Must define one of RT, NRT, MATLAB_MEX_FILE, SL_INTERNAL, or FIPXT_SHARED_MODULE
- 如何使用Matlab进行图像处理
- fmri的图像数据在matlab中显示,利用imagesc工具进行显示,自带数据集-by 西南大学xulei教授