python处理点云数据并生成三维点云模型
1.python代码:
1 import numpy as np
2 import matplotlib.pyplot as plt
3 from mpl_toolkits.mplot3d import Axes3D
4 #f=open('point cloud.txt','r')
5 f=open('11D-zhongxin1-1_RawXYZ_ds_part2.xyz','r')
6 point=f.read()
7 f.close()
8 l1=point.replace('\n',',')
9 l2=l1.split(',')
10 l2.pop()
11 #print(l2)
12 m1=np.array(l2[0:120000])
13 print(len(m1))
14 #m2=m1.reshape(265565,4)
15 m2=m1.reshape(30000,4)
16 print(m2)
17 m3=[]
18 for each in m2:
19 each_line=list(map(lambda x:float(x),each))
20 m3.append(each_line)
21 m4=np.array(m3)
22
23 x=[k[0] for k in m4]
24 y=[k[1] for k in m4]
25 z=[k[2] for k in m4]
26
27 fig=plt.figure(dpi=120)
28 ax=fig.add_subplot(111,projection='3d')
29 plt.title('point cloud')
30 ax.scatter(x,y,z,c='b',marker='.',s=2,linewidth=0,alpha=1,cmap='spectral')
31
32 #ax.set_facecolor((0,0,0))
33 ax.axis('scaled')
34 # ax.xaxis.set_visible(False)
35 # ax.yaxis.set_visible(False)
36 ax.set_xlabel('X Label')
37 ax.set_ylabel('Y Label')
38 ax.set_zlabel('Z Label')
39 plt.show()
2.运行结果如下:
3.点云的数据格式如下(1-15),其中前三列为x,y,z的坐标,我们取用前三列,第四列可以忽略:
658660.61,4231154.24,-13.69,-13.690001
658660.21,4231154.44,-14.12,-14.120000
658660.41,4231154.44,-14.02,-14.025000
658660.61,4231154.44,-14.19,-14.195000
658660.81,4231154.44,-14.13,-14.132500
658661.01,4231154.44,-14.16,-14.160000
658661.21,4231154.44,-13.94,-13.935000
658660.21,4231154.64,-14.07,-14.073333
658660.41,4231154.64,-14.13,-14.127778
658660.61,4231154.64,-14.15,-14.155000
658660.81,4231154.64,-14.06,-14.055000
658661.01,4231154.64,-13.98,-13.977500
658661.21,4231154.64,-13.81,-13.805000
658661.61,4231154.64,-13.94,-13.940000
658660.01,4231154.84,-14.15,-14.150000
python处理点云数据并生成三维点云模型的更多相关文章
- 用python爬取微博数据并生成词云
很早之前写过一篇怎么利用微博数据制作词云图片出来,之前的写得不完整,而且只能使用自己的数据,现在重新整理了一下,任何的微博数据都可以制作出来,放在今天应该比较应景. 一年一度的虐汪节,是继续蹲在角落默 ...
- 点云数据中的三维信息提取pcl
https://www.hanspub.org/journal/PaperInformation.aspx?paperID=24702 https://wenku.baidu.com/view/160 ...
- python+jinja2实现接口数据批量生成工具
在做接口测试的时候,我们经常会遇到一种情况就是要对接口的参数进行各种可能的校验,手动修改很麻烦,尤其是那些接口参数有几十个甚至更多的,有没有一种方法可以批量的对指定参数做生成处理呢. 答案是肯定的! ...
- 第一周:读取XML深度数据并将其重建为三维点云
本周主要任务:学习PCL点云库,掌握利用PCL对点云处理的方法 任务时间:2014年9月1日-2014年9月7日 任务完成情况:完成了读取单幅xml深度数据,并重建三维点云并显示 任务涉及基本方法: ...
- PCL 点云数据操作 OpenCV遍历数据
1.对于点云类型实例cloud,对其第i个点进行赋值操作,使用cloud.point[i].x 和 cloud.point[i].y 和cloud.point[i].z 分别对其XYZ坐标赋值. cl ...
- 点云数据(point cloud) 【转】
转自caimagic的专栏 一:什么是点云数据 点云数据是指在一个三维坐标系统中的一组向量的集合.这些向量通常以X,Y,Z三维坐标的形式表示,而且一般主要用来代表一个物体的外表面形状.不经如此,除(X ...
- python读取三维点云球坐标数据并动态生成三维图像与着色
关键步骤: 1.首先通过读取.txt文本数据并进行一系列字符串处理,提取显示所需要的相关数据矩阵 2.然后利用python的matplotlib库来进行动态三维显示 备注:matplotlib在显示2 ...
- Java爬取B站弹幕 —— Python云图Wordcloud生成弹幕词云
一 . Java爬取B站弹幕 弹幕的存储位置 如何通过B站视频AV号找到弹幕对应的xml文件号 首先爬取视频网页,将对应视频网页源码获得 就可以找到该视频的av号aid=8678034 还有弹幕序号, ...
- Python 实现的、带GUI界面的词云生成器
代码地址如下:http://www.demodashi.com/demo/14233.html 详细说明: "词云"就是数据可视化的一种形式,给出一段文本,根据文本中词语的出现频率 ...
随机推荐
- 关闭PHPStorm 2017.1 中的新功能中的参数提示( Parameter hints )
参数提示( Parameter hints ) 参数提示是显示在方法的参数值前面的文字,帮助你更好的理解语义的具体方法.我们还增加了一个选项来定制你的内联参数提示,以符合你的IDE配色方案. 配置面板 ...
- JavaScript中的indexOf
JavaScript中的indexOf 1.JavaScript中利用indexOf拼接字符串 <%@ page language="java" import="j ...
- ubuntu14.04 64位 安装eclipse出错
1 错误描述 org.eclipse.m2e.logback.configuration: The org.eclipse.m2e.logback.configuration bundle was a ...
- C语言 字符串前加L的意义 如:L“A”
转自:http://c.biancheng.net/cpp/html/1069.html Unicode或者宽字符都没有改变char数据型态在C中的含义.char继续表示1个字节的储存空间,sizeo ...
- 慢慢人生路,学点Jakarta基础-JavaDoc标记
本文对使用Maven工程构建Jenkinsjob时遇到的问题进行一下分析汇总. JavaDoc标记使用问题 一般Maven项目都有配置产生Java DOC,但是在Jenkins里面产生DOC会有一些严 ...
- Java 中文编码分析
一.charAt 与 codePonitAt 我们知道 Java 内部使用的是 utf-16 作为它的 char.String 的字符编码方式,这里我们叫它内部字符集.而 utf-16 是变长编码,一 ...
- Mybatis入门看这一篇就够了
什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...
- 三天来都在写项目;今天开始学习了js
JavaScript 一种脚本语言,他描述了网页的行为:他是和java一种完全不同的语言 JavaScript的输出写法有四种: JavaScript的语言的变量必须以字母.美元符号$ 或者下划线_来 ...
- 【HNOI 2002 】营业额统计(splay)
题面 Description Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营 ...
- [BZOJ1000] A+B Problem
Description Calculate a+b Input Two integer a,b (0<=a,b<=10) Output Output a+b Sample Input 1 ...