IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python+vtk 实现激光点云数据可视化学习(2021.7.12) -> 正文阅读

[Python知识库]Python+vtk 实现激光点云数据可视化学习(2021.7.12)

1、激光点云与VTK简介

????????近年来,由于三维激光扫描仪等光学传感器硬件设备的进步,三维激光扫描正在从低精度(厘米级)获取向高精度(毫米级)获取,从几何与强度的采集走向几何与多/高光谱协同采集。相比国外,国内激光扫描硬件起步晚且仍有较大差距。此外,便携式/背包式/无人机为平台的轻小型三维激光扫描装备正蓬勃发展。
????????三维激光扫描技术能够采集三维物体的表面信息,进而可重建三维物体表面,这种测量方式具有非接触精度高快速自动化等特点。随之而来的数据处理软件日益出现三维激光扫描技术得到了快速的发展,
????????在三维点云数据处理软件方面,商业化的软件主要有TerraSolid 公司的TerraSolid、Trimble公 司 的RealWorks、Leica 公 司 的 Cyclone、Bentley公 司 的PointTools、OrbitGT 公 司 的OrbitMobileMapping等,以 及 国 内 科 研 院 所 和公司开发的一些工具软件。三维激光扫描已成为高时空分辨率三维对地观测的一种重要手段。由于激光扫描所获得的数据为坐标点数据(通常包含三维坐标x、y、z)和反射强度信息,采集的三维激光点云数据需要进行可视化显示,经过语义分割后的三维激光扫描点云数据在三维模型重建、自动驾驶与高精度地图、文化遗产数字化保护、工业产品检测、形变监测、智慧城市、森林资源调查、虚拟VR/增强现实AR等方面具有重要的应用价值。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述



????????现有的三维可视化开发工具主要有 OpenGL、DirectX、VTK 等,其中 VTK 是由美国 Kitware 公司负责维护,在医学、能源、地质等领域颇受重用。VTK 在OpenGL 基础上用 C+ + 语言开发而成,采用面向对象设计,并含有对 Python,Java,Tcl 等语言的接口。独一无二的可视化管道设计: VTK 与 OpenGL,OSG 等其他三维可视化开发工具的主要区别就在于VTK 采用管道式设计( Pipeline) 实现三维显示。绘制器对象Renderer、绘制窗口Render Window、交互器对象Interactor、交互方式Interactor Style以及相机对象Camera、光照对象Light共同构成了绘制环境, 其中绘制器对象设置Camera、Light和背景, Render Window指定关联的父窗口, 并在绘制环境创建完成后开始VTK消息循环。VTK开发文档用户指导Python使用VTK三维3D图形绘制入门教程VTK官网实例

VTK编程步骤

2、配置Python环境(Conda+PyCharm+Python3.6+VTK)

????????第一步,电脑首先安装好Conda,打开Anaconda Prompt(Anaconda3)命令行窗口,然后通过输入命令在Conda中创建虚拟环境myenv,之后在myenv虚拟环境中安装Python 3.6后,利用包管理工具pip通过输入pip install 包名来安装所需的外部依赖包numpy、vtk

Anaconda
pip install numpy
pip install vtk

在这里插入图片描述
????????第二步,直接安装PyCharm即可。

PyCharm

3、点云数据(大约60万个点,这里只放了部分数据)

在这里插入图片描述

4、编写Python代码

????????打开PyCharm,新建一个项目并输入项目名称,之后选择Python编译器为所创建虚拟环境myenv下的python.exe,然后在项目中新建python文件,取名为tetris.py,并输入以下代码即可。

import numpy
import vtk
from vtkmodules.util.numpy_support import numpy_to_vtk

if __name__ == '__main__':
    # 读取 txt 文档
    source_data = numpy.loadtxt("Pointdata.txt")

    # 新建 vtkPoints 实例
    points = vtk.vtkPoints()
    # 导入点数据
    points.SetData(numpy_to_vtk(source_data))
    # 新建 vtkPolyData 实例
    polydata = vtk.vtkPolyData()
    # 设置点坐标
    polydata.SetPoints(points)

    # 顶点相关的 filter
    vertex = vtk.vtkVertexGlyphFilter()
    vertex.SetInputData(polydata)

    # mapper 实例
    mapper = vtk.vtkPolyDataMapper()
    # 关联 filter 输出
    mapper.SetInputConnection(vertex.GetOutputPort())

    # actor 实例
    actor = vtk.vtkActor()
    # 关联 mapper
    actor.SetMapper(mapper)
    # 红色点显示
    actor.GetProperty().SetColor(0, 1, 0)

    # Create a render window
    render = vtk.vtkRenderer()
    #colors = vtk.vtkNamedColors()
    # Insert Actor
    render.AddActor(actor)
    render.SetBackground(0, 0, 0)
    #render.SetBackground(colors.GetColor3d('RosyBrown'))
    # Renderer Window
    renderWindows = vtk.vtkRenderWindow()
    renderWindows.AddRenderer(render)
    renderWindows.SetSize(1200, 1200)
    renderWindows.SetWindowName('点云数据')

    # System Event
    iwin_render = vtk.vtkRenderWindowInteractor()
    iwin_render.SetRenderWindow(renderWindows)

    # Style
    iwin_render.SetInteractorStyle(vtk.vtkInteractorStyleMultiTouchCamera())

    iwin_render.Initialize()
    #renderWindows.Render()
    iwin_render.Start()

5、点云可视化运行结果

在这里插入图片描述
????????在PyCharm项目中tetris.py代码的空白处右键选择Run tetris,运行结果如下,可以看到所有的激光点数据,通过鼠标滚轮可实现缩放鼠标左键上下移动实现前后左右翻转
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
????????在人工智能、深度学习等先进技术的驱动下,点云数据的特征描述、语义理解、关系表达、目标语义模型、多维可视化有望实现自动化、智能化的快速发展,同时在测绘地理信息行业中,除了矢量、栅格模型外,激光点云这种新的模型也能够提升地物目标认知与自动化提取和知识化服务的能力。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:25:22  更:2021-07-13 17:26:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 2:16:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码