数据准备
我准备好了打包的数据文件供演示下载,只需要小白式的操作。传送门
文件里集成了处理好的点云文件,如果你想显示曲线,只需要把你的数据批量更换上去即可。
每一个里面包含了以下信息:
- location:不同点的x,y,z三个坐标;
- count:表示每一帧数据里面总共有多少个点;
- color:所有点的颜色默认,便于我们对特殊点特殊显示;
- XYZlimits:点出现的边界,便于我们对显示点画框;
于是我们先初始化一个图框,然后更改图框的显示内容,即可实现动态图框显示
load('.\new_data_point.mat');
pc = pcloud(1).ptCloud
xBound = 40;
yBound = 20;
xlimits = [-xBound, xBound];
ylimits = [-yBound, yBound];
zlimits = pc.ZLimits;
player = pcplayer(xlimits, ylimits, zlimits);
colors = [0 0 1; ... %蓝色
0 1 0; ... % 绿色
1 0 0; ... % 红色
0 0 0]; % 黑色
blueIdx = colors(1,:); %蓝色
greenIdx = colors(2,:);
redIdx = colors(3,:);
blackIdx = colors(4,:);
初始化后的显示如图所示:
接下来循环显示点:
解释一下 前面是对特殊点颜色标签的定义,然后通过自带的view函数画在图框里,在循环结束的时候对k重新赋值。
k=1;
while k>0
% k = 1:length(pcloud)
pc = pcloud(k).ptCloud;
colorLabels = zeros(pc.Count, 3, 'single'); % 创造标签阵列
[h,l]=size(pc.Location);
for num=1:h
if co(num,k)==1
colorLabels(num,:)=blueIdx;
elseif co(num,k)==2
colorLabels(num,:)=redIdx;
else
colorLabels(num,:)=greenIdx;
end
end
for num=1:h
if pc.Location(num,3)<2.2
colorLabels(num,:)=greenIdx;
end
end
view(player, pc.Location, colorLabels);
k=k+1;
if k==length(pcloud)
k=1;
end
end
最终呈现的效果如下:
是可以拖动的,这是我为什么要选择在图窗里画图的原因,可以很3维的显示效果!
雷达识别
编写不易,求个点赞!!!!!!!
“你是谁?”
“一个看帖子的人。”
“看帖子不点赞啊?”
“你点赞吗?”
“当然点了。”
“我也会点。”
“谁会把经验写在帖子里。”
“写在帖子里的那能叫经验贴?”
“上流!”
cheer!!!