python 点云处理 速度_python读取点云文件-Go语言中文社区

本文展示了如何使用Python进行3D点云数据的读取和可视化。通过`readXYZfile`函数从文件中按行读取点云坐标,并转换为浮点数。之后使用`displayPoint`函数利用matplotlib的Axes3D模块创建三维散点图展示点云,同时解决中文显示问题。
摘要由CSDN通过智能技术生成

最近要用到激光点云的处理,先用python做点云的可视化吧。

# -*-coding:utf-8-*-

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

def readXYZfile(filename, Separator):

data = [[], [], []]

f = open(filename, 'r')

line = f.readline()

num = 0

while line: # 按行读入点云

c, d, e = line.split(Separator)

data[0].append(c) # X坐标

data[1].append(d) # Y坐标

data[2].append(e) # Z坐标

num = num + 1

line = f.readline()

f.close()

# string型转float型

x = [float(data[0]) for data[0] in data[0]]

z = [float(data[1]) for data[1] in data[1]]

y = [float(data[2]) for data[2] in data[2]]

print("读入点的个数为:{}个。".format(num))

point = [x, y, z]

return point

# 三维离散点图显示点云

def displayPoint(data, title):

# 解决中文显示问题

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

# 点数量太多不予显示

while len(data[0]) > 20000:

print("点太多了!")

exit()

# 散点图参数设置

fig = plt.figure()

ax = Axes3D(fig)

ax.set_title(title)

ax.scatter3D(data[0], data[1], data[2], c='r', marker='.')

ax.set_xlabel('x')

ax.set_ylabel('y')

ax.set_zlabel('z')

plt.show()

if __name__ == "__main__":

data = readXYZfile("b.txt", ' ')

displayPoint(data, "模型")

经过测试代码通顺

c35928399c5b839dc5928b76ac20e802.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值