点云数据按高程赋色渲染

一、渲染原理:

首先按照Z轴方向求取所在点云的高程极值,包括高程最大值与最小值,计算高程中间值;然后选取渲染的颜色值,比如红、绿、蓝三种颜色。最后,自上而下,应该为红绿蓝三种颜色渐变的过程,即点云坐标最小处设置为蓝色,中间值设置为绿色,最大值设置为红色。下半部分点云,依次求取各激光点的高程值在中间值与最小值所在区间的比率,然后再蓝色基础上按比率增加绿色;同样,上半部分点云中的各激光点再绿色基础上按比率增加红色。

二、结果展示:

三、源码:

楼主最近想下载个资源,发现自己一个积分都没有,所以也试着上传一些资源,看能不能赚几个积分。需要看源码的朋友可以点这里下载源码。其实这个比较简单了,看懂原理应该没问题。如果你也没有积分,请关注我的公众号回复:源码

微信公众号


 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
要给点高程,可以按照以下步骤进行: 1. 读取点数据并将其转换为matlab中的pointCloud对象。 2. 使用pointCloud对象的.Location属性获取点中所有点的三维坐标。 3. 使用pointCloud对象的.Color属性创建一个与点中所有点一一对应的RGB颜矩阵,初始值都为0。 4. 根据点每个点的高程信息,计算出每个点对应的颜。 5. 将计算出的颜矩阵值给pointCloud对象的.Color属性。 6. 使用pcshow函数显示后的点。 下面是一个示例代码: ```matlab % 读取点数据 ptCloud = pcread('example.pcd'); % 获取点中所有点的三维坐标 xyz = ptCloud.Location; % 创建一个与点中所有点一一对应的RGB颜矩阵,初始值都为0 color = uint8(zeros(size(xyz, 1), 3)); % 计算每个点对应的颜,这里使用了一个简单的颜映射函数 color(:, 1) = uint8(255 * (xyz(:, 3) - min(xyz(:, 3))) / (max(xyz(:, 3)) - min(xyz(:, 3)))); color(:, 2) = uint8(255 * (1 - (xyz(:, 3) - min(xyz(:, 3))) / (max(xyz(:, 3)) - min(xyz(:, 3))))); color(:, 3) = uint8(255 * (1 - (xyz(:, 3) - min(xyz(:, 3))) / (max(xyz(:, 3)) - min(xyz(:, 3))))); % 将计算出的颜矩阵值给pointCloud对象的.Color属性 ptCloud.Color = color; % 显示后的点 pcshow(ptCloud); ``` 在这个示例代码中,我们使用了一个简单的颜映射函数将每个点的高程信息映射到RGB颜空间中,使得高度较高的点显示为蓝,高度较低的点显示为红。你可以根据自己的需要修改这个函数,以实现不同的颜映射方案。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爬虫与地理信息

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值