点云格式
行为点云个数,第一列为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