用MATLAB 绘制三维点云图,并且鼠标点击点云显示X,Y,Z和V速度

点云格式

        行为点云个数,第一列为X,第二列为Y,第三列为Z,第四列为V, 第五列为R, 第六列为SNR, 第七列为点云簇标记,用MATLAB plot绘制三维点云图,并且鼠标点击点云显示X,Y,Z和V速度信息

显示效果

        程序默认只显示X,Y,Z,不方便分析数据,想要自定义增加显示其他数据,比如这里增加显示速度V

 绘制点云程序

     点云为X1

scatter3(X1(idxX2,1),X1(idxX2,2),X1(idxX2,3),25,(X1(idxX2,4)),'filled');
c = colorbar;
c.Label.String = 'velocity (m/s)';
c.Label.String = 'estSNR(dB)';
grid on;
                        
xlim([-10 10])
ylim([-5 15])
zlim([-5 5])
xlabel('X (m)')
ylabel('y (m)')
zlabel('Z (m)')
view([-9 15])
title(['3D point cloud',num2mstr(frameIdx),'帧']);

鼠标点击显示自定义数据功能

这里将点云X1,传递给鼠标点击回调函数。

将这段程序放在绘制点云程序后面即可。

% 添加数据提示功能
dcm_obj = datacursormode(gcf);
set(dcm_obj,'UpdateFcn',{@myupdatefcn,X1})

 鼠标点击回调函数

 增加其他显示,在txt中添加即可。

% 鼠标点击回调函数
function txt = myupdatefcn(~, event_obj, data)
% Get the point indices
idx = get(event_obj, 'DataIndex');

% Get the point coordinates and velocity
x = data(idx, 1);
y = data(idx, 2);
z = data(idx, 3);
v = data(idx, 4);

% Format the output text
txt = {['X: ',num2str(x)], ['Y: ',num2str(y)], ['Z: ',num2str(z)], ...
    ['V: ', num2str(v)]};
end

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值